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

news2024/12/23 13:34:13

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.coloradmin.cn/o/1953617.html

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

相关文章

Java中线程池的基本使用

参考这个课程,讲的非常详细 27.线程池使用步骤总结_哔哩哔哩_bilibili 应用场景 商品秒杀 文件上传 订票系统 自定义线程池(让我们了解底层逻辑的) 构造方法 饱和机制 就是我们的队列饱和后我们该怎么处理 是拒绝这个任务还是啥…

API 技术开发分享:连接电商平台数据获取的桥梁

在当今数字化的时代,API(Application Programming Interface,应用程序编程接口)技术成为了实现不同系统之间通信和数据交换的关键。它就像是一座无形的桥梁,使得各种应用能够相互协作,共享资源,…

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

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

第三届人工智能、物联网和云计算技术国际会议(AIoTC 2024,9月13-15)

第三届人工智能、物联网与云计算技术国际会议(AIoTC 2024)将于2024年9月13日-15日在中国武汉举行。 本次会议由华中师范大学伍伦贡联合研究院与南京大学联合主办、江苏省大数据区块链与智能信息专委会承办、江苏省概率统计学会、江苏省应用统计学会、Sir Forum、南京理工大学、…

docker笔记6-数据卷

docker笔记6-数据卷 一、初识dockerfile1.1 编写镜像1.2 构建镜像1.3 运行镜像 二、案例2.1 多个容器共享数据2.2 多个mysql数据共享 一、初识dockerfile 之前的内容中,我们都是通过pull的方式拉取别人写好的镜像,那么通过编写dockerfile,我…

Linux系统编程:传输层(补充)

1. 用UDP实现可靠传输 在前面介绍了UDP是一种不可靠的面向数据包的传输协议。那么如何实现UDP的可靠传输呢? 其实就是在应用层自己实现像TCP一样的可靠性机制:引入序列号、引入确认应答、超时重传、流量控制、拥塞控制等机制。 2. listen系统接口 在…

四向穿梭车价格战进入下半场,杀入单台10万区间~

导语 大家好,我是社长,老K。专注分享智能制造和智能仓储物流等内容。 近年来,仓储自动化设备市场蓬勃发展,其中四向穿梭车作为新兴明星产品,正在引领一场仓储革命。 数据显示,2023年中国托盘四向穿梭车销量…

初学Mybatis之 Lombok 篇

idea 安装 Lombok 插件&#xff1a; File->Settings->Plugins->搜索 lombok 下载 在项目中导入 lombok 的 jar 包&#xff1a; <dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><version>1.…

麦田物语第十五天

系列文章目录 麦田物语第十五天 文章目录 系列文章目录一、构建游戏的时间系统二、时间系统 UI 制作总结 一、构建游戏的时间系统 在该游戏中我们要构建年月日天时分秒等时间的概念&#xff0c;从而实现季节的更替&#xff0c;昼夜的更替等&#xff08;不同的季节可以播种不同…

机器学习课程学习周报五

机器学习课程学习周报五 文章目录 机器学习课程学习周报五摘要Abstract一、机器学习部分1.1 向量序列作为模型输入1.1.1 文字的向量表达1.1.2 语音的向量表达 1.2 自注意力机制原理1.2.1 自注意力机制理论1.2.2 矩阵运算自注意力机制 1.3 多头自注意力1.4 位置编码1.5 截断自注…

Nginx中WebSocket配置说明

查看 laravel 的 swool扩展文档时遇到不懂的&#xff0c;问了文心一言 https://gitee.com/resourcesplus/laravel-s/#%E5%90%AF%E7%94%A8websocket%E6%9C%8D%E5%8A%A1%E5%99%A8 nginx语法中 upstream 和 proxy_pass 用法

Linux--Socket编程UDP

前文&#xff1a;Socket套接字编程 UDP协议特点 无连接&#xff1a;UDP在发送数据之前不需要建立连接&#xff0c;减少了开销和发送数据之前的时延。尽最大努力交付&#xff1a;UDP不保证可靠交付&#xff0c;主机不需要维持复杂的连接状态表。面向报文&#xff1a;UDP对应用层…

PTPD 在 QNX 系统上的授时精度验证与误差排查

文章目录 0. 引言1.关键函数实现2. 验证策略与结果3. 授时误差的排查与解决3. 授时误差的排查与解决4. 结论 0. 引言 PTPD是一种时间同步的开源实现&#xff0c;在不同操作系统上的表现可能存在显著差异。 本文通过在QNX系统上运行PTPD&#xff0c;针对其授时精度进行详细验证…

MySQL:增删改查、临时表、授权相关示例

目录 概念 数据完整性 主键 数据类型 精确数字 近似数字 字符串 二进制字符串 日期和时间 MySQL常用语句示例 SQL结构化查询语言 显示所有数据库 显示所有表 查看指定表的结构 查询指定表的所有列 创建一个数据库 创建表和列 插入数据记录 查询数据记录 修…

游泳馆押金原路退回源码解析

<dl class"list "><dd class"address-wrapper dd-padding"><div class"address-container"><cyberdiv style"color:#f0efed;font-size:14px;float:right;position:absolute;right:10px;top: 2px;">●●●<…

正点原子imx6ull-mini-linux字符驱动模板(0)

1&#xff1a;驱动模块的加载和卸载 module_init(xxx_init); //注册模块加载函数 module_exit(xxx_exit); //注册模块卸载函数 1.1&#xff1a;新建一个用于存放linux驱动的目录,当然这个目录位置没有要求。创建要加载的模块chrbase.c cd ~/linux/drivers makdir linux_driv…

【安卓】Android Studio简易计算器(实现加减乘除,整数小数运算,正数负数运算)

目录 前言 运算效果 一、创建一个新的项目 二、编写xml文件&#xff08;计算器显示页面&#xff09; 三、实现Java运算逻辑 ​编辑 完整代码 xml文件代码&#xff1a; Java文件代码&#xff1a; 注&#xff1a; 前言 随着移动互联网的普及&#xff0c;手机应用程序已…

fetchApi === 入门篇

目录 fetch 基本认知 fetch 如何使用 Response对象&#xff08;了解&#xff09; 常见属性 常见方法 fetch 配置参数 fetch发送post请求 fetch 函数封装 fetch 实战 - 图书管理案例 渲染功能 添加功能 删除数据 完整代码 fetch 基本认知 思考&#xff1a; 以前开发…

PCIe总线-Linux内核PCIe软件框架分析(十一)

1.简介 Linux内核PCIe软件框架如下图所示&#xff0c;按照PCIe的模式&#xff0c;可分为RC和EP软件框架。RC的软件框架分为五层&#xff0c;第一层为RC Controller Driver&#xff0c;和RC Controller硬件直接交互&#xff0c;不同的RC Controller&#xff0c;其驱动实现也不相…

永结无间Ⅰ--基于 LLM 的 AGI

在过去几周&#xff0c;传奇人物 Francois Chollet 发起的ARC 挑战引起了不小的轰动。这项挑战让很多 AI 研究人员感到困惑&#xff0c;它表明了所有 AI 系统都存在泛化能力不足的问题。ARC 上上一次 SOTA AI 的准确率约为 34%&#xff0c;而在同一挑战中&#xff0c;Mechanica…