用AI自建量化系统:差点把本金踩没的四个坑
每周固定更新 记得关注并星标
Hi,我是猫哥。
关注猫哥并设置星标,才能每周准时收到推送。
前言:
先把结论摆在前面。
我用AI(主要是Claude,开了20x会员,harness模式下几乎每周都把额度用满)从零开始折腾了几个月,搭出了一套AI量化交易系统(核心做的是二元合约,判断Yes/No,具体平台大家也可以去问AI)。
系统同时跑4个引擎——做市、超短线、方向预测、套利捕捉。全天候24小时自动盯盘、自动下单、自动风控。
现在这套系统仍在运行,收益整体比较稳定。
不过今天我更想讲的是:这一路我踩过的坑。因为在这几个月里,我真的差一点就把钱“亏光”。
一个人能不能做出量化系统?
先直接回答:可以。
代码大概80%由AI产出,我负责剩下20%的架构设计与关键逻辑。Claude帮我写交易引擎、处理数据、搭监控仪表盘,整体代码质量甚至比不少初级工程师更靠谱。
系统跑通后我加了几百个测试用例,全部通过。4个引擎彼此隔离、互不影响。实时采集数据、自动下单、风控告警、仪表盘监控,一整套都有。
以前要做成这种程度,通常得小团队干上大半年。我一个人配合AI,几个月就做出来了。
这才是AI时代真正的“降维”——不是AI把你替换掉,而是“一个人+AI”能把一个团队的事干完。
但前提是:你必须清楚坑在哪里。
坑一:最亮眼的回测,可能是幻觉
这是我第一次真正感到后背发凉。
当时我在试一个Google开源的时间序列预测模型,用90天历史数据训练,再拿后18天做回测。
第一轮出来的结果,某个资产在5分钟级别的Sharpe居然是7.30。
这是什么级别?全球顶尖量化基金里,文艺复兴的大奖章长期Sharpe也就在6-7左右。我拿个开源模型、几乎零样本就跑到7.30?这显然不正常。
于是我只改了一个地方:把回测步长从3调成1。
原先是每隔3个时间点才预测一次;现在改成每个时间点都预测——这才更贴近真实交易。
结果直接变成:-0.08。
从7.30跌到-0.08。从“吊打文艺复兴”变成“还不如随便猜”。
原因在于:stride=3时刚好“踩”到了更有利的采样点。就像考试你只做第3、6、9题,恰好都对了,就宣称自己考了满分——这叫统计偏差,不代表模型真有能力。
后来我把模型放到所有资产、所有周期上重新测了一遍。接近真实场景时,没有任何组合的Sharpe能超过0.5。
结论:这模型一行代码都不进我的系统。
如果我当时被7.30冲昏头,直接上实盘,这篇文章可能就该叫“我到底怎么把钱亏没的”。
AI给出来的数字确实“没错”——在stride=3的设定下它就是7.30。但它不会提醒你“回测设计本身就有问题”,更不会替你判断“这个结果合不合理”。
它只会在你给定的框架里,算出看起来最漂亮的答案。
但框架对不对,责任在你。
这也是我深度用AI之后最强的体会:人在AI时代最稀缺的价值,是判断力。
判断力这块,后面我再单独展开聊。
坑二:胜率60%,照样亏
超短线引擎上线后,胜率长期稳定在60%左右。
60%。明显比抛硬币强。我当时以为这下稳了。
可我去看总账——竟然是亏的。
怎么会这样?
我把每一笔交易都拉出来看,发现一个很扎心的事实:赢的时候赚得少,亏的时候亏得多。平均盈利只有平均亏损的一半。
这本质是交易结构的问题。在接近50%概率的位置下注,赔率差不多1:1。赢了赚1块,输了亏1块。但手续费两边都收,等于每笔先被扣掉几个点。
这么一算,你得有70%以上胜率才能不亏不赚。60%远远不够。
AI模型在“预测准不准”这件事上做得不错,但“预测对了是否能赚钱”,它并不关心。
准确率到盈利之间,还隔着三件事:赔率结构、手续费、滑点。AI盯的是第一个指标,你的钱包承受的是后三个叠加后的结果。
那我后来怎么处理?
我调整了入场条件,引入因果推断模型来评估预测强度,只在赔率结构对我更友好的时候才出手。
方法细节以后再单写一篇,但核心只有一句:别在AI“略有把握”时下注,要在它“非常有把握”时下注。
教训:AI优化的目标函数,可能和你账户真正关心的指标完全不是一回事。
坑三:系统显示亏损,实际上在赚钱——方向都算反了
有一天我看仪表盘,做市引擎显示一直在亏。
但我手动核对了几笔成交,越看越不对——明明是低买高卖,为什么还会亏?
我花了一整天翻代码,最后定位到根因:交易记录只写入了一半。
做市策略是同时挂买单和卖单,靠中间价差赚钱。但AI写的记录逻辑在落库成交时只记了单边,另一边的数据直接丢失。PnL用残缺数据计算,盈亏自然被彻底扭曲。
我重写了存储与记录逻辑,并用完整数据把历史交易全部重算。
结果:原来显示亏损的,实际是盈利。不是多算少算的问题,是盈亏方向都颠倒了。
最扎心的是:这段代码还通过了几百个测试。测试全绿,完全没报错。
因为测试验证的是“能不能运行”,不是“业务逻辑是否正确”。而你真正关心的,是后者。
AI并不知道做市盈亏必须用完整的双边数据去算——这属于行业常识,但常识不会写进代码规范里。
教训:测试全过不等于系统正确。代码正确≠业务正确。
坑四:数据出问题时,AI选择了“装作没问题”
某天套利引擎突然吐出一堆“机会”。
我一看,几乎全是假的。
继续排查才发现:API返回的数据里,有些合约的关键字段是空值。正常做法应该是“字段不全就直接跳过”。
但AI写的逻辑走了另一条更危险的路:它看到价格字段还在,就乐观地推断“这应该是正常合约”,然后放行继续算。
也就是说,数据缺失时系统不报错、不停机,而是“假装一切正常”继续跑。
修复其实很简单:加一行判断,所有“不确定”的路径一律拒绝。
但真正可怕的是这种Bug模式——AI写代码时往往默认走正常流程(happy path),对异常路径的处理倾向就是“能跑就行”。
在多数产品里这也许不致命:页面少加载一张图,用户刷新就好。
可在交易系统里,一个“过度乐观的假设”会直接变成真金白银的损失。
四个坑,其实是同一种模式
坑1:回测幻觉
AI:按设定跑完回测,得出Sharpe 7.3
问题:回测框架本身存在统计偏差
坑2:胜率陷阱
AI:预测准确率60%
问题:赔率结构决定60%依然不盈利
坑3:PnL算反
AI:几百个测试全部通过
问题:业务逻辑(双边成交记录)本身就是错的
坑4:乐观放行
AI:数据缺失也继续运行
问题:应该停下或拒绝,而不是假装正常
归根结底:AI每一步都做到了“技术上正确”,但最终结论仍然是错的。
因为技术正确与业务正确之间,隔着一层只有人才能提供的理解。
那为什么现在系统能赚钱了?
补充说明:下面这些是我在最初阶段的记录,并不代表现在修完坑后依然有效。策略的alpha一直在变,edge也会不断被市场吃掉。这个系列后续我会逐步展开当时具体做了什么,感兴趣的朋友可以关注。
因为我把这四类坑都逐个补上了。
回测问题?stride统一改为1,并加入Walk-Forward验证,让统计偏差无处藏身。
胜率陷阱?加入因果推断与信号强度评估,只在赔率对我更友好时才入场。
PnL记录?重做双边交易的完整存储,每一笔都可追溯可复盘。
乐观放行?所有不确定分支一律保守拒绝,宁可少赚也不要犯错。
AI是发动机,我负责方向盘和刹车。
发动机越强,方向盘和刹车越关键。你不会因为马力更大就把刹车拆掉——但很多人用AI时,确实把“刹车”这件事忘了。
之前我在Reddit看到一句话:
"Trading is the hardest way to make easy money."
我想再补一句:用AI做交易,会把这句话的难度再乘以10——尤其当你找不到刹车在哪的时候。
后记:
这套系统我还在持续迭代,后面会继续分享更多实战里遇到的新发现和新坑。
如果你也在用AI做量化、做自动化系统,或者只是想看看“一个人+AI到底能走多远”——可以关注我,这个系列会持续更新。
你想优先了解哪些细节,欢迎在评论区留言,我会挑大家问得最多的点单独写。