五模块架构 · 双模型交叉验证 · 全流程开源
从数据采集到盯盘预警的完整闭环 · 2026年6月
事情要从三个月前说起.
那天晚上我在GitHub上闲逛,无意间看到一个叫TradingAgents的项目.点进去一看,星标数7万多.再一看架构——好家伙,把整个华尔街投研团队拆成了八个AI Agent,分析师出报告、研究员辩论、交易员下单、风控审核,一条流水线全自动跑.
我当时的第一反应不是"这东西好厉害",而是"这思路怎么跟我自己偷偷搞的那个系统这么像".
我花了一年多,用下班后的时间,一行一行码出来的那个东西.
既然想法撞车了,说明这个大方向是对的.既然是对的,藏着掖着干嘛?
于是我把代码整理了一下,写了文档,录了Demo视频,在GitHub上点了那个"Make Public"的按钮.
说实话,按下那个按钮之前我犹豫了整整两天.倒不是因为什么"核心策略怕泄露"——我的策略说穿了就那几个经典形态加上量价配合.我怕的是代码写得不够好,被人笑话.
后来想通了.代码写得再烂,也比藏着不给人看强.闭门造车三年不如开源出去让人骂三天,因为骂你的人会顺便告诉你哪里写得不好.
这篇文章,就是这个系统的"诞生记".也是我对自己这三年折腾的一个交代.
一、这个东西到底能干什么
先别急着看代码.先说清楚它能做什么,不能做什么.
简单讲,这是一个不替你下单、但帮你把下单前所有准备工作都干完的AI股票分析系统.
它由五个模块组成,每个模块管一摊事:
数据模块. 自动从多个数据源拉行情、财报、公告、新闻.覆盖A股全市场五千多只票,每天收盘后自动更新.你不用再手动从同花顺导出数据,不用再一个一个翻公告,不用再对着Wind的界面发呆.这个模块把"找数据"这件事直接消灭了.
分析模块. 这是整个系统的大脑.它用两个大模型协同工作:DeepSeek负责技术分析和代码逻辑,通义千问负责财报解读和长文本分析.每只票两个模型各自出一份分析报告,然后交叉对比.两份报告一致的地方重点看,不一致的地方标记出来人工复核.
筛选模块. 把分析模块的输出整理成候选池.按照你自己设定的策略参数——可以是技术形态、基本面指标、资金流向、或者三者的任意组合——做初步排序.五分钟之内从全市场筛到一个十几只的精选池.
回测模块. 一个策略好不好,历史数据上跑一跑就知道了.这个模块基于Backtrader做了二次封装,你在筛选模块里看到的每一套策略参数,点一下就能跑过去半年、一年或者任意时间段的历史回测.胜率、盈亏比、最大回撤、夏普比率全部可视化出来.如果回测数据不好看,别急着上实盘——先调参数.
盯盘模块. 这是我自己用得最多的一个.把精选池里的票设好关键价位,Python脚本每三十秒轮询一次行情接口.价格突破关键位自动在通达信里弹窗报警——注意,是"报警",不是"下单".它只告诉你"发生什么了",不会替你按买卖按钮.
这五个模块串起来,就是一条完整的"盘前研究→盘后筛选→盘中盯盘"的流水线.
![]()
AI炒股分析系统五模块架构图(数据采集→AI分析→智能筛选→历史回测→盯盘预警)
当然,它不是什么"圣杯".有些票形态走得特别好,AI给了高分,结果第二天大跌.有些票AI觉得一般,但我自己翻了翻K线和基本面觉得还行,手动买了反而赚了.系统和人各有各的判断,最终决策——我一直强调这一点——必须是你自己来做.
二、我为什么不用现成的,非要自己造
肯定有人会问:市面上那么多开源AI炒股项目——TradingAgents 7万多星,AI Hedge Fund 5万多星——你干嘛不直接用,非要自己造一个?
这个问题特别好.答案分两半.
第一半是:那些项目确实好,但不适合A股.
TradingAgents和AI Hedge Fund我全都部署过、实测过.它们的问题出在哪里?数据源.这两个项目的主力数据接口都是美股的数据——Yahoo Finance、Polygon、Finnhub.你用它们分析A股,要么数据根本拿不到,要么数据质量惨不忍睹.
A股有自己的数据生态.Tushare、AKShare、通达信本地数据、东方财富的公开接口——这些东西跟美股的接口完全不兼容.你要想在TradingAgents上跑A股,光改数据层就要改几千行代码.而且很多A股特有的数据维度——比如龙虎榜、北向资金、融资融券余额——这些美股项目里根本没有对应字段.
不是他们做得不好,是A股和美股是两种游戏.
第二半是:我用别人的系统,永远不知道自己"不知道什么".
这是我这一年多最深的一个体会.
你用别人的开源系统,点开就是能跑的状态,提示词写好了,Agent调好了,策略模板给好了.你不需要思考"数据为什么要这样清洗"、"分析维度为什么要这样选"、"为什么Bull Agent先于Bear Agent发言会影响辩论结果".
这些"为什么",恰恰是整个系统里最有价值的know-how.
自己从零搭建一遍,你被迫面对每一个架构决策、每一个模块边界、每一个接口定义.做一遍,比看一百篇教程都管用.这也是为什么我把系统开源出去——你如果只是拿来用,获得的是一个工具.你如果愿意读源码、改参数、甚至推翻我的架构重新来,获得的就是能力.
三、架构拆解:五个模块是怎么串在一起的
这一节可能会有点技术,但我尽量讲得简单.就算你不会编程,看完你也能理解这套系统的骨架长什么样.
数据层:三个来源,一个出口
A股数据源的选择是个挺烦人的事情——没有哪一个单一来源能覆盖所有需求.
我的方案是:三个来源互补.
Tushare负责基本面数据——财务指标、估值数据、行业分类.这些数据Tushare的质量最好,更新也最及时.AKShare负责行情数据——日K线、分钟线、实时快照.它的行情接口比Tushare稳定,免费额度也更大.东方财富的公开接口负责资金流向和龙虎榜——这两个维度是A股特有的,前面两个数据源都覆盖不了.
三个来源的数据拉下来之后,用一个统一的清洗脚本做规范化——格式统一、字段对齐、异常值剔除、停牌标记.清洗完之后存到本地SQLite数据库里,其他模块统一从这个数据库读.
这样做的好处是:数据层和上层模块完全解耦.哪天Tushare收费了或者AKShare接口变了,你只需要改数据层的代码,上面四个模块一行都不用动.
分析层:双模型交叉验证
这是整个系统里我被问到最多的一个设计决策:为什么要用两个模型?
事情是这样的.我在早期版本里只用了DeepSeek一个模型.但很快发现一个问题:DeepSeek在财报解读上容易"跳读"——一份几十页的年报摘要,它有时候只读了前面几段就开始下结论,后面关键的风险提示和应收账款细节反而漏掉了.
这个不是DeepSeek的问题,是单一模型的天生局限.任何大模型都有自己擅长和不擅长的领域,你把所有分析任务都交给同一个模型,它一定在某些维度上会"偷懒".
后来我试了一个方案:让DeepSeek和通义千问各自出一份独立报告,然后做交叉对比.DeepSeek主攻技术分析和策略逻辑,通义千问主攻财报解读和行业对比.
效果出乎意料地好.因为两个模型的训练数据和推理风格不同,它们的分析结论经常在细节上有差异.这些差异点反而成了最有价值的信息——一个模型注意到了另一个模型忽略的东西.
比如有一次分析某消费股,DeepSeek给了"买入"建议,理由是技术形态突破.通义千问给了"观望",理由是三季报里有一笔大额应收账款没有充分计提减值.我手动去翻了三季报原文——通义千问说的是对的.这个票后来跌了15%.
如果没有两个模型的交叉验证,我大概率会跟着DeepSeek的信号买进去.
回测层:不经过历史检验的策略都是赌博
很多人对量化回测有一个误解:看到回测曲线一路向上就觉得策略稳了.但真正的坑在于过拟合——你调了一堆参数让它完美拟合了过去一年的数据,然后实盘一跑就崩了.
我的回测模块做了三个反过拟合的设计:
一个是参数稳健性测试.不用单独一组参数跑回测,而是让参数在一个合理范围内波动,看策略对参数变化的敏感程度.如果参数稍微变一点收益率就跳水,说明过拟合了——这个策略不可靠.
一个是分段回测.把历史数据切成三段,两段用于优化参数,剩下那段用于验证.验证段的样本是模型没"见过"的,结果更能反映真实表现.
一个是基准对比.不只是看绝对收益,还要跟买入持有的基准策略对比.如果你的策略费了半天劲,收益率跟直接买沪深300ETF差不多,那你不如直接买ETF——又省心又省手续费.
这三个设计不新鲜,业内做量化的都在用.但大部分开源系统没有做 —— 因为实现起来确实麻烦.我咬着牙把这些全做了,因为我自己吃过大亏:2019年那会儿我用一个没过拟合检测的策略实盘,两个月亏了三十多个点.那种感觉我不想让别人再经历一次.
盯盘层:AI的眼睛,人的手指
这个模块是整个系统的"最后一公里".从数据采集到AI分析到回测验证,前面辛苦了一大圈,如果盘中盯不住关键价位,可能一笔交易就把之前的盈利全吐回去了.
盯盘模块的逻辑很朴素:从盘后筛选出来的精选池里,给每只票设两个关键价位 —— 一个"突破价"(向上突破这个价位触发关注提醒),一个"止损价"(向下跌破这个价位触发止损提醒).Python脚本每三十秒轮询一次行情接口,检测到价格触达就调用系统通知弹窗.
这里有一个很多人问的细节:为什么是"弹窗提醒"而不是"自动下单"?不是技术上做不到,是不该做.
自动下单这条线是监管的红线,也是我自己给系统划的硬边界.这个系统从设计之初就定了一条原则:AI负责看和想,人负责做决定.它能告诉你"这只票突破了关键压力位",但不能替你按买入键.因为按下去那一刻的风险,只有你一个人承担.
四、开源之后发生的事,比我预想的有意思得多
系统开源出去到现在大概两个月,GitHub上攒了三千多颗星,不多不少.
但真正让我觉得有意思的不是数字,是社区里发生的几件事.
有一个做量化的研究生,用我的数据层替换了他自己项目里写得一塌糊涂的数据管道.他在Issue里留言说:"你的数据清洗脚本比我导师给的框架清晰十倍."——这句话我截屏保存了,就为了下次自我怀疑的时候看一眼.
有一个深圳的程序员,把我整个回测模块用Rust重写了一版,性能提升了好几倍.他提了一个PR过来,四百多行改动,注释写得比我还认真.那个PR我merge的时候手都在抖——不是紧张,是被这种纯粹的技术热情感染到了.
还有人在我的Agent编排逻辑基础上,加了"辩论回合数"这个参数.原来是Bull和Bear各说一轮就汇总裁决,他改成可以设定N轮辩论,让两个Agent在互相反驳中不断深入.这个东西他自己跑了之后发现,辩论两轮以上的信号胜率确实比一轮高——因为浅层的反对意见被对方驳回去之后,留下来的都是更扎实的论点.
这就是开源的魅力:你种下一棵树,然后看着别人在树上搭树屋、挂秋千、种兰花.你永远不知道你的代码会在谁手里长出什么来.
![]()
双模型交叉验证机制(DeepSeek技术分析 + 通义千问财报解读 → 交叉对比 → 综合报告)
五、你要不要也试试?给你一个启动指南
如果你看到这里,觉得"我也想来一套",以下是最短路径:
第一步:环境准备. Python 3.10以上,装好Tushare和AKShare(用来拉数据),装好Backtrader(用来跑回测).三个库装完,你的基础环境就齐了.五分钟.
第二步:申请API. DeepSeek的API去deepseek.com申请,通义千问的去阿里云申请.两个都有免费额度,够你做测试用.申请到之后把API Key填进配置文件里.
第三步:拉数据. 先跑数据层的脚本,把A股全市场基础数据拉到本地.第一次拉全量数据需要半小时左右,后面每日增量更新就很快了,三五分钟.
第四步:跑分析. 选几只你熟悉的票做小白鼠,让系统跑一轮完整分析.看看AI出的报告跟你的主观判断有没有差异.差异点就是你能学到东西的地方.
第五步:跑回测. 把你自己的选股逻辑写进策略配置文件,跑回测.跑完之后别只看收益率,先看最大回撤和夏普比率——这两个数字告诉你这个策略的"代价"有多大.高收益往往以高波动为代价,你得先确定自己扛不扛得住.
第六步:盯盘. 精选池定了之后设置好关键价位,跑起盯盘脚本.初期的建议是只盯不做——先观察两周,看看系统的提醒跟你自己的主观判断之间的吻合程度.
从零开始到跑通全流程,如果你每天花两个小时,大概一周能搞定.如果周末集中突击,两天就够.
在这个过程中遇到任何问题——不管多小、多基础——直接在GitHub Issues里问.我说真的,别觉得问题太简单不好意思问.我自己三个月前还在StackOverflow上搜"Python怎么读取CSV文件".谁没当过菜鸟.
六、关于"开源AI炒股",我想说的几句实话
文章写到尾声了,我想说几句可能不太好听、但必须说的实话.
第一,开源AI炒股系统,不是印钞机.如果有人告诉你"用这个系统月化收益20%",他要么是骗子,要么在卖课,要么既是骗子又在卖课.我的系统、TradingAgents、AI Hedge Fund——所有正经的开源项目——核心文档的第一句话几乎都是"仅供研究".这不是免责声明,是事实.用开源工具辅助研究和用开源工具"躺着赚钱",中间隔了一整个太平洋.
第二,代码开源了,不代表你能用好.一个工具的价值,取决于使用它的人.同样的系统,有人用来做严谨的回测和策略迭代,有人打开了看了一眼觉得太复杂就关了.区别在哪里?不在工具,在你愿不愿意花时间去理解它背后的逻辑.
第三,但开源确实改变了什么东西.以前,一个普通散户想搭建一套AI辅助分析系统,基本上是天方夜谭——数据拿不到、技术门槛高、开发成本大.开源AI炒股项目的出现,把这件事的难度从"几乎不可能"降到了"需要花点时间学".这个变化本身,意义就已经很大了.
七、写在最后:代码是冷的,交易是热的
最后再说一件小事.
有天晚上,我在改一个数据清洗的Bug.改完之后例行跑了一轮分析,系统给我筛出了一只我从来没关注过的票.我照例翻了翻K线,看了基本面,觉得确实有点意思.第二天低吸了一点进去.
一周后涨了12%.
我当然不会说这是系统的功劳——也可能只是运气好.但那天晚上我看着屏幕,突然想到:如果没有这套系统,我大概率一辈子都不会注意到这只票.
这就是我想说的.
一个好的工具,不会替你做决定.但它会帮你发现你本来发现不了的东西.它会让你看到更大的世界,接触更多的可能性,注意到那些被你的注意力盲区遮蔽掉的信号.
代码是冷的,逻辑是死的,K线是历史.但交易——你在那只票涨了12%那天的那个上午,在心里权衡了半天之后点下买入按钮的那个瞬间——是热的.
那个瞬间,是属于你自己的.
去搭一套属于你自己的系统吧.或者把我的拿走,改成你自己的样子.
然后你也会有属于你的那个瞬间.
*本文所述系统基于Python 3.10+开发,核心依赖:Tushare / AKShare / Backtrader / DeepSeek API / 通义千问API.项目地址及部署文档见GitHub仓库README.投资有风险,文中所有股票分析仅作为技术演示,不构成任何投资建议.请勿将研究框架直接用于实盘自动交易.*
![]()
开源项目从种子到森林的社区共创生态(种子→生长→开花→森林四阶段)
投资有风险 · 本文所述系统仅供研究学习 · 不构成任何投资建议
项目地址及部署文档见GitHub仓库README · 请勿将研究框架直接用于实盘自动交易
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.