当前位置: 首页 > news >正文

量化系统难题1_复权后的日k数据_已解决

关于做量化系统遇到的数据获取难题,爬虫与反爬虫,前复权后的数据增量更新。

缘起

我想做到在每次收盘后获取一次全市场数据,然后从里面执行选股策略,从而获取买点。先不说选股策略,首先我需要把全市场数据获取下来。

这次确实有点难解决了,由于我没有券商的接口,也就无法从券商处获得数据,也就是说我得用爬虫/现有的数据库获得数据。

难题

tushare是存储在他们的专门的服务器中,获取起来效率很高,缺点是需要钱💰,虽然我可以通过高校认证之后获取积分去拿数据,但是没有别的办法的时候我才会选择这个办法。

然后是常见的爬虫类方法,有akshare,mootdx,efinance等。

目前我使用的是akshare,支持东财,新浪财经,腾讯财经,而最近东财因为太多人做高频量化,东财就升级了反爬,基本爬10个股票信息就爬不了了,除了东财之外的数据源爬取效率很低,刚才跑了一会程序,发现新浪源爬多了也爬不了了,我不太懂爬虫,也没什么办法😭。

anti-crawler-wall

配图就不配图了,简单来说全部爬完一轮要3个小时_

mootdx是从通达信获取数据,作者已经有段时间没更新了,目前官网也停了,mootdx的优点是效率高,速度快,缺点是没复权,没复权的数据用来回测的话会很麻烦,就算是选股时也会出现问题。

最后是efinance,不过我没用过不好评价。也不知道有没有其他的数据源,之前也在网上看到过很多专门提供数据的数据提供商,不过都要钱,和我做这个项目的初衷不太符合,而且提供的其他服务确实我都不太需要。

计划

  1. 单线程跑爬虫都能被封,多线程跑那更不用说了,也许可以通过单线程+间隔随机时间爬取数据?
  2. 三种数据获取方式轮流调用,或者多线程+时间间隔,但是有个问题,就是不知道不同数据源获取的数据准确与否,以及这个方式实现比较复杂
  3. 再找找其他方案,但是其他方案存不存在就不好说了,可以从linuxdo,github这几个项目的issue里面找找,也可以问问ai

后记

如标题所说,这也只是难题1,还有难题2难题3难题。。。还没写上来,之前没做过这么大的项目,确实对自己的技术有很大提升。不管做不做得出来,先做着吧,发现问题解决问题的过程是很有意思的~

后续1

按计划走了一遍,12基本行不通,除非我自己爬虫相关技术升级了_,但是按3走倒是有了不错的结果。

解决方法一

在github的mootdx中的issues中,看到了很多人对mootdx库的讨论,本身mootdx是支持前复权数据的,但是因为mootdx实现上有点问题导致前复权计算出错了,可以看这个fix: 修复复权计算问题 by longguzzz · Pull Request #135 · mootdx/mootdx,按这个修改mootdx库的话,就可以做到获取复权后的数据了,而且印象中mootdx库数据获取效率很高,是个不错的解决方案。问题是每个配置我的系统的人,都需要去修改mootdx的库,这太麻烦了。

解决方法二

在akshare和efinance的issues里面有很多人讨论爬不了数据了之后该何去何从,于是看见一篇这样的文章:我是如何应对使用 efinance 被限流 · Micro-sheep/efinance · Discussion #226,从里面看到了个陌生面孔:baostock,于是我就去看了看baostock是何方神圣,于是找到了它的说明文档:www.baostock.com,按照里面样例测试了下,确实不要钱(2025-12-03),短期内符合我的要求。问题是未来如果收费后就麻烦了,又得重新配置。

解决办法三

直接氪金启动tushare,一劳永逸,老牌库的含金量与优势啊。

思路

短时间来说,可以先用baostock做替代品,长期来看,很多人做的系统选择tushare或者选择券商通道的数据,这都是不错的选择。爬虫类数据源短期内可能还是比较难用了。

data-source-comparison

后续2

一般来说,我还是更希望使用不泄露个人信息的方法(不用注册的方法)来做一个项目,所以才会优先考虑akshare这类爬虫类数据源,考虑到baostock以后可能会引入收费,思来想去我还是不打算用这个。个人最后计划还是使用tushare,120积分可以获得日线接口,但是要填写个人信息(不过没有验证_),属于是偷懒了。ps:后续3:这个接口也没复权,无敌了,又回到了起点。

最后总结下吧,这些数据源各自的优势和劣势:

  1. akshare/efinance,老牌爬虫类数据源,优点在于把爬虫搞好了的话(issues里面说代理池什么的,我不是很懂),获取高频数据也可以有很高效率,缺点在于最近它所支持的数据源基本都升级了反爬,直接用来爬日线数据的话,东财数据源爬不了,其他两个数据源要做好爬3个小时的准备,efinance我没用过,不过看issues里面和akshare基本一样。
  2. mootdx,也是爬虫类的数据源,针对通达信做的,优点是爬日线效率很高,大概10分钟就能搞定全市场数据爬取,缺点是作者很久很久没更新了,而且官网也无法访问了。它目前的前复权(后复权我没用过不清楚)数据有问题,原因是复权计算出错了,按照上文github的链接里面的方法修改应该就能搞定。
  3. 通达信本身,通达信提供全市场日线数据的下载渠道,爱折腾的话这也是一个很不错的数据源。
  4. 各个券商的量化接口,我没用过不评价,看网上别人的使用来说,日线数据绰绰有余,但是实时数据可能有延迟。
  5. tushare,也是老牌数据源,但是它走的是注册付费制的道路,优点很明显,数据质量有保障,氪金足够的话高频量化也支持,缺点就是要钱。
  6. baostock之类的比较小众的数据源,优点是前面的优点,缺点是小众不主流。这类数据源就见仁见智了。

研究了这么久,本来只是打算简单的做个量化系统,结果要变成股票数据市场调研了,不得不说高频率低延迟获取效率高且优值的数据一直是人们所追求的,而对于我这种只想找日线数据的人来说这些东西没啥作用。

后续3

一个天才般的想法出现在我的脑海,等会我再写下。时隔几天后,我终于来说明我天才般的想法是什么了,简单来说就是将数据分为除权因子和未复权数据存储,在调用时计算复权后数据就行。然后由于未复权数据比较容易获得的同时,还可以实现增量更新,复权因子可以通过爬取获得,但是这里面就涉及了复权计算的问题。

后续4

由于直接解决了,所以后续3中的方法我也没用了,解决方法其实非常简单,简单到没边了:用akshare多线程爬新浪数据源就行了。

没想到新浪没阻止我猛爬数据,我非常感动。

至于增量更新,分时数据,其他市场数据,etf数据,这些问题交给之后的我吧,现在的我最需要的是把程序跑起来_

final-run-data

本文配图使用 Avilia Blog Illustrations 流程生成。

http://www.gsyq.cn/news/1436408.html

相关文章:

  • 2026年4月PE钢带波纹管实力厂家推荐,PE穿线管/MPP电力管/PVC排水管,PE钢带波纹管源头厂家口碑推荐 - 品牌推荐师
  • Xenia Canary高级配置指南:5个核心技巧深度优化Xbox 360游戏模拟体验
  • 论文通关利器!常用的AI写作辅助网站,成稿速度破纪录
  • 人民中路万家乐维修老店 咸阳专业热水器售后服务中心 - GrowthUME
  • 基于PIR与ISD1820的120dB可定制语音报警系统设计与实现
  • Windows Cleaner:一款智能实用的Windows系统优化工具
  • 免费解锁Wand专业版:3分钟快速指南与手机远程控制教程
  • 量化系统难题2_结构
  • 基于Arduino的多传感器空气质量监测站DIY全攻略
  • 2026西安大克重金条回收哪家最安全?本地7家门店实测,唐王珠宝大盘直收当面秒结 - 西安闲转记
  • 【紧急预警】Gemini 2.5.2补丁已悄然上线!3个高危breaking change正在影响金融/医疗类LLM流水线
  • Windows 10 彻底卸载 OneDrive 的终极指南:释放系统资源与隐私保护
  • 深度解析开源自动化工具:BetterNCM安装器实战指南
  • FinalBurn Neo终极教程:如何在5分钟内搭建完美的街机模拟环境
  • 2026 北京漏水检测 2大靠谱商家优选-精准定位测漏-全城上门检测服务-口碑公司推荐 - GrowthUME
  • 别再只问哪个AI模型更强了,2026年真正拉开差距的是向量引擎
  • 创业团队如何建立客户成功体系
  • IDEA帮我写代码,我只需要按Tab
  • Skills 最大的价值,不是你想的那个
  • 如何从零构建高仿12306系统:SpringBoot3+Java17分布式架构实战指南
  • 20252806 2025-2026-2 《网络攻防实践》第十周作业
  • Keyviz:5分钟学会实时键鼠可视化,让你的操作透明化
  • DIY电动背部按摩器:用直流减速电机与偏心轮原理自制放松神器
  • P13981 数列分块入门 6
  • AI Agent Harness Engineering 任务优先级排序算法:让智能体学会高效时间管理
  • 算术平均值与几何平均值 - ace-
  • 实测过的AI提示词方法论和新赛道总结
  • Arduino互动南瓜:超声波传感器与伺服电机的创意制作
  • 基于Arduino与LM741的心电图采集系统:从模拟电路到心率检测
  • 别再只用history()了!用get_fundamentals()给你的量化策略加点‘基本面’佐料