我用AI搭了个自动选股系统
我最近搞了个有点离谱的事情。
用AI帮我写了一个自动选股的系统。
不是那种”让ChatGPT帮我推荐股票”的操作,是真的跑在本地、调用真实市场数据、自己设计逻辑、在数据上验证的那种。
整个过程让我很兴奋,不是因为这玩意能挣钱,而是因为我真的看到了AI在处理复杂逻辑任务上的能力边界,而且比我想象的宽很多。
之前一个做量化研究的朋友跟我聊过,他说量化里最难的不是策略,是验证策略,你得把想法快速跑在真实数据上,失败快,迭代快。
我当时不太懂,心想这听着也不复杂啊,不就是写写代码跑跑数据嘛,有什么难的。
直到自己试了一下,才发现这话说的有多准。
我给自己出了一道题。
让AI帮我找”低波动且跑赢大盘”的股票。
听起来简单对吧,但问题就出在这里,让AI直接”给我列个清单”完全没意义。
它不知道当前市场的实际状态。今天A股的平均波动率是多少,大盘最近这60天的走势是涨是跌,哪些股票在这段时间里真实跑赢了,它都不知道。它掌握的是知识,不是数据。
所以你让它推荐,它给你的任何结论都是凭感觉猜的,看着头头是道,实际上跟你自己拍脑袋没什么区别。
我换了个思路,让AI不是给我结论,而是帮我写逻辑,把逻辑跑在真实数据上,看结果,再迭代。
于是我花了几天时间,让AI帮我搭了一个项目。
整个结构大概是这样的,有个Agent负责理解我的需求,把”找低波动跑赢大盘的股票”这句话,翻译成一套可以执行的筛选逻辑,定义用哪些指标、每个指标的参数是什么、指标之间怎么组合、最后按什么权重排序。然后这套逻辑,会真的跑在历史市场数据上,出结果。
有一个设计让我觉得特别有意思。
Agent不是一次性给出答案就完事了,它会先跑一遍,看筛出来多少只股票。如果太少,比如只有两只,说明条件设太严了,它会自动调整参数再跑,再看,直到筛出一个合理的结果集为止。
这个”试错→调整→再试”的循环,全是代码自动跑的,不是靠我盯着屏幕手动改。
我第一次跑通的时候,盯着终端里一行一行刷出来的日志,最后跳出那行,”成功匹配40只,取top20″,有一秒钟真的有点呆住了。
不是因为找到了多厉害的股票,是因为这整个过程,从我说了一句话开始,到最后出结果,中间所有的翻译、执行、判断、迭代,都是系统自己完成的。
这里面有个细节我想多说一点,就是股票池这块。
全市场几千只股票,直接全量跑会很慢,而且很多股票根本不在你关心的范围里。所以在执行筛选逻辑之前,系统会先做一次股票池过滤,按你的配置,比如排除ST股票、排除上市不足半年的新股、限定某个行业范围。
比如我如果只想找黄金板块的,配置里加一行”行业,黄金”,系统就只在黄金相关的股票里跑;想找CPO光模块板块的,写”光学光电子”或者”通信设备”,它会用模糊匹配找到对应的行业分类。
这个行业匹配做了好几层降级,精确匹配、包含匹配、子串匹配、同义词匹配,如果这些都找不到,还会走一次LLM匹配,让语言模型从可用行业列表里帮你选最相关的。
再说说最后存下来的东西。
每次筛选成功,系统会生成一个py文件,文件名带时间戳,像”跑赢大盘_20260430_120223.py”这样。
里面存的不是结果,不是”哪些股票”,而是这次筛选的完整逻辑,用了哪些指标、每个指标的计算方式是什么、筛选表达式是什么、置信度怎么算,全部结构化存着。
这个文件后续可以被回测系统读取,把同一套逻辑放到不同的历史时间切片上重跑,看它在过去一年、两年里的实际表现。
你可以把它理解成策略的「快照」,不是结论,是逻辑本身被固化下来了,可以随时复现,可以跟其他快照对比,可以拿去回测。
而生成这个快照的全程,我只说了一句话。
这个项目完整跑通之后,我在想一个问题。
为什么要花这么多功夫搭这个系统,而不是直接给AI一个Prompt,让它帮我写个筛选脚本?
这个问题问得挺好,我当时也问过自己。
答案是,直接Prompt让AI生成的脚本,里面所有的参数都是AI凭感觉写的。”波动率要小于0.02″,”近期收益要高于3%”,这些数字,AI不知道合不合理,它只是按你的要求写了看起来合理的数字。
但合理和在当前市场有效,是两件事。
而这个系统里,筛选逻辑是Agent自己在真实数据上试出来的,条件太严就放宽,太宽就收紧,最后留下来的版本,是真的在当前数据上验证过”能选出结果”的版本。
这是一个本质的区别,一个是AI的猜测,一个是跑过数据的验证。
最后我想说一件事。
以前我理解AI的方式,基本是”输入问题,得到答案”,AI是一个很聪明的问答机器。
但这次的体验让我感受到另一种工作模式,AI不是给我答案,而是帮我设计一套在真实环境里持续运行的逻辑,然后让这套逻辑在数据上自我验证。
这两种工作方式的差距,大概就是,一个是帮你想,一个是帮你做。
帮你想很有用,但帮你做,才是真正节省了你的时间。
而且有趣的地方在于,AI能帮你做多少,几乎完全取决于你能把需求说多清楚。你说”找好股票”,它能做的很有限,你说”找低波动且近60天跑赢大盘的股票,限定在黄金板块,排除ST”,它能做的就具体多了。
你的想法越清晰,它能帮你落地的就越多。
这玩意让我有点着迷,我还在继续折腾。
如果你也在玩类似的东西,随手在评论区说一声,我想知道还有哪些有意思的方向没试过。
以上,既然看到这里了,如果觉得不错,随手点个赞、在看、转发三连吧,如果想第一时间收到推送,也可以给我个星标⭐~
谢谢你看我的文章,我们,下次再见。
夜雨聆风