搭建自己的金融数据源和量化分析平台(一):系统架构设计

0x00 前言

由于某得的数据实在是太贵,某花顺免费版又不提供专业的数据分析工具,Tushare也开始收费,因此决定基于python和MySQL搭建一个自己的金融数据库。期望做到仅依靠交易所、巨潮资讯网等官方的公开数据实现,尽量不依靠某花顺、某财、某浪等第三方网站的金融数据。

0x01 需求分析

由于我不做量化交易,只做宏观经济分析和企业基本面分析,顺便做一点量化选股,因此现阶段的需求如下:
1.基于沪深交易所公开数据读取股票列表并存储到本地数据库,形成离线股票列表,并能定期自动化更新;
2.基于沪深交易所公开数据读取股票详细信息如总股本、流通股本、所属省份、所属行业、英文全名等数据补全股票列表的内容,并定期更新;
3.尽量基于沪深交易所公开数据读取每日开盘价、收盘价存储到本地数据库,并定期更新;
4.尽量基于沪深交易所公开数据读取上市公司财报并保存到本地,同时自动化解析pdf格式的财报,从其中提取三大报表等数据存储到本地数据库;
5.根据三大报表计算ROE、应收存货率、流动比率、速动比率、净现比等指标并存储到本地数据库;
5.提供数据和指标查询接口便于后续开发量化选股模型;
6.后续陆续增加北交所、港交所数据支持;
7.后续增加纽交所、纳斯达克交易所数据支持;
8.后续陆续基于国家统计局、人民银行公开数据增加人口、社融、Lpr、M1M2、GDP、PMI、CPI、房价等数据支持
以上数据不包含分时和高频交易数据,因为我不做量化交易。

0x02 系统架构设计

数据库选择

测算数据量:5000家上市公司,数据量最大的应该就是三大报表的数据库表,设计成每张报表一张表(若数据量再大还可以按沪深交易所拆表),拉取解析近5年的数据,则5000X5X4=单表10万条数据,因此MySQL数据库足以支撑这个数据量。
故目前设计的数据库表结构如下:
在这里插入图片描述
stock_a、stock_h、stock_u三个数据库分别代表A股、港股、美股数据库,未来还会增加economy_zh、economy_us等宏观经济数据库和中美期货、债券数据库,便于做海外宏观分析。
目前stock_h和stock_u还没做,只规划了stock_a的表结构如下:
在这里插入图片描述

系统架构设计

系统架构大致采用MVC设计模式采用Python3.8进行搭建和编写:分为爬虫模块(负责爬取沪深京港美几家市场和统计局、人民银行等机构的公开数据)、持久化模块(提供连接MySQL数据库和增删改查数据库的功能)、量化模型(调用持久化模块的数据接口进行量化分析)、控制模块(调用持久化模块和爬虫模块完成金融数据定时更新任务)和工具模块(提供pdf解析、自定义异常等通用功能),没有日志模块,我又不是做商业产品,不需要日志。
其中爬虫模块别按照交易所和爬取对象的不同分为上交所、深交所、北交所、港交所、纽交所、纳斯达克交易所、国家统计局、人民银行等爬虫。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/49958.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Python3 多线程中的线程睡眠技巧

各类学习教程下载合集 ​​https://pan.quark.cn/s/874c74e8040e​​ 在现代编程中,多线程是一种重要的工具,可以帮助我们实现并发和并行处理,从而提高程序的效率。在 Python 中,通过 ​​threading​​ 模块,我们可…

绿联UGOS Pro系统虚拟机部署Windows 11详细教程(跳账户登录,安装内存驱动)

绿联UGOS Pro系统虚拟机部署Windows 11详细教程(跳账户登录,安装内存驱动) 哈喽小伙伴们好,我是Stark-C~ 自从绿联更新UGOS Pro系统之后,简直犹如脱胎换骨般,为大家带来了前所未有的全新体验,…

基于单片机控制的红外热释电家庭防盗报警器硬件系统设计

【摘要】 随着社会的发展和人们安全意识的提高,传统的家庭防盗系统不能适应现代生活中多变的环境。本文设计开发的红外热释电家庭防盗报警器能改善传统防盗系统结构复杂,计算繁琐、价格昂贵、监控盲区等缺陷,主要由单片机模块、复位电路模块、…

js抓取短信验证码发送

油猴(Tampermonkey)是一个流行的浏览器扩展,它允许用户在浏览器中运行自定义的JavaScript脚本。下面是一个简单的示例脚本,用于收集网站上发送短信验证码的API请求,并以JSON格式存储这些信息。请注意,这个脚本需要根据实际网站的API请求进行调整,因为不同的网站可能有不…

在vue中优雅地异步引入(懒加载)腾讯地图API

背景 接到一个需求需要在网站首页显示使用腾讯地图展示公司所在地。一开始我直接全局引入了腾讯地图js,结果发现在用户打开登陆页面的时候首页比较缓慢,为了提高用户登陆的加载效率,需要优化为异步引入。 思路 根据官网的示例,…

探究Python函数不同类型参数异同

1 问题 本文主要探究Python中函数的不同类型的参数的异同。具体来说,将分析位置参数、关键字参数、默认参数和可变参数的定义、使用方式及其在函数调用中的差异,将有关参数的知识整合重构。 2 方法 查阅相关资料,初步找到找到了位置参数、关键…

MyCat 分片

更多内容,前往IT-BLOG 如今随着互联网的发展,数据的量级也是呈指数的增长,从GB到TB到PB。对数据的各种操作也是愈加的困难,传统的关系性数据库已经无法满足快速查询与插入数据的需求。这个时候NoSQL的出现暂时解决了这一危机。它…

BACnet物联网关BL103:Modbus协议转BACnet/MSTP

随着物联网技术在楼宇自动化与暖通控制系统中的迅猛发展,构建一种既经济高效又高度可靠的协议转换物联网关成为了不可或缺的核心硬件组件。在此背景下,我们钡铼特别推荐一款主流的BAS(楼宇自动化系统)与BACnet物联网关——BL103&a…

C#实现深度优先搜索(Depth-First Search,DFS)算法

深度优先搜索(DFS)是一种图搜索算法,它尽可能深入一个分支,然后回溯并探索其他分支。以下是使用C#实现DFS的代码示例: using System; using System.Collections.Generic;class Graph {private int V; // 顶点的数量pr…

数据库表的行列转换(行转列,列转行)

目录 前言 行转列 创建测试表 score1 插入测试数据 需求与通用SQL写法 列转行 创建测试表 score2 插入测试数据 需求与通用SQL写法 前言 在工作中,多多少少都会遇到一些数据展示的需求,开发一个接口,从数据库中查询数据返回页面展示…

HTML开发小技巧:根据用户浏览器的分辨率调整控件的大小

在Html页面开发中,我们通常会用Style进行控件的宽度高度进行控件的格式设置,如果直接设置像素的话,无法根据用户的浏览器进行宽高的适配,所以我们要做到根据实际使用的浏览器进行控件大小的自动调整,以下是几种控件自动…

【目标检测】Yolo5基本使用

前言 默认安装好所有配置,只是基于Yolo5项目文件开始介绍的。基于配置好的PyCharm进行讲解配置。写下的只是些基本内容,方便以后回忆用。避免配置好Yolo5的环境,拉取好Yolo5项目后,不知道该如何下手。如果有时间,我还是…

30 列表常用方法——append()、insert()、extend()

append()、insert()、extend() 这 3 个方法都可以用于向列表对象中添加元素。 ① append() 用于向列表尾部追加一个元素。 ② insert() 用于向列表任意指定位置插入一个元素。 ③ extend() 用于将另一个列表中的所有元素追加至当前列表的尾部。 这 3 个方法都属于原地操作&…

【第二天】计算机网络 HTTP请求报文和响应报文是什么样的 HTTP请求方式有哪些 GET请求和POST请求的区别

HTTP请求报文和响应报文是什么样的? 我去,以前都没怎么研究过这个。 客户端发送一个请求给服务器,服务器根据请求报文中的信息进行处理,并将处理结果放到响应报文中返回给客户端。 URL HTTP使用URL (Uniform Resource Locator&…

解释 Spring 框架的核心模块(如 IoC 容器、AOP )及其工作原理。描述如何使用 Spring Boot 快速搭建一个 RESTful Web服务?

Spring框架是一个广泛使用的Java企业级应用程序开发框架,它提供了一系列的模块来帮助开发者构建健壮、可测试、可维护的应用程序。 其中,最核心的模块包括IoC容器和AOP(Aspect Oriented Programming,面向切面编程)。 …

从0开始搭建vue + flask 旅游景点数据分析系统(二):搭建基础框架

这一期目标是把系统的布局给搭建起来,采用一个非常简单的后端管理风格,可以参考官方的页面 https://element.eleme.cn/#/zh-CN/component/container 下面我们开始搭建,首先,安装一下vue-router,element-ui npm insta…

css 作业 2

文章目录 前言第四题第五题第六题第七题第八题第九题第十题(子标签) 前言 昨天写了前面三次作业,今天把剩下的七个作业写完 第四题 http://127.0.0.1:5500/index1.html,就用这个网址查看代码在网页的展示效果 代码评测过不了&…

650Kg大载重双旋翼无人直升机技术详解

大载重双旋翼无人直升机,作为现代航空技术的杰出代表,其设计巧妙融合了高效能、高稳定性与灵活性。该机采用经典的双旋翼布局,有效解决了传统单旋翼直升机尾桨产生的复杂气动力问题,极大提升了飞行稳定性和安全性。机体结构采用轻…

网页突然被恶意跳转或无法打开?DNS污染怎么解决?

前言 在网上冲浪时,我们时常会遭遇DNS污染这一区域性攻击,几乎无人能幸免。受影响时:尝试访问正规网站可能会被错误导向赌博、色情或其他恶意站点。 1.我们为什么需要DNS 当我们想要访问一个网站时,就像拨打朋友的电话号码一样…

C语言之.*(链表,循环链表,队列,循环队列)

C语言之.*(链表,循环链表,队列,循环队列)的应用