第 5 篇:第一次大事故——"任何大跌都不可能市值减半"
那天下午,我先加了个策略
10 月 18 日是周日,市场休市。我心情不错——下午刚加了行业主题轮动策略(半导体、医疗、消费、红利、证券五个标的轮着买),又跟 AI 讨论了"现在一共有几个策略、都属于什么分类"。
15:08 加的规则。16:20 我还在问策略分类。16:43,我发了一张收益表,上面是两行数字:

> 我(10-18 16:43):你这个数据不对啊: > 2026-07-03 4842.17 1.3958 3.2969 证券ETF(国泰)(512880) 1.155 买入 换仓 半导体ETF(国联安)→证券ETF(国泰) 买入 1.155 ¥3,296,874.00 > 2026-07-02 4812.30 1.3872 6.6879 半导体ETF(国联安)(512480) 2.700 持有 持有 半导体ETF(国联安) — ¥6,687,873.00 > 任何大跌都不可能,市值减半啊
两行数字,同一个策略,连着两个交易日:
- 7 月 2 日:持有半导体 ETF,市值 668 万
- 7 月 3 日:换仓证券 ETF,市值 329 万
一天时间,钱少了一半。
我不懂代码,但我知道 ETF 有涨跌停——A 股的 ETF 单日最大跌幅是 10%。就算它跌停,668 万也只会变成 600 万左右,绝不可能变成 329 万。
任何大跌都不可能市值减半。 这句话成了这次事故的标题。
真相:一张 100 换两张 50
AI 查出来的是这个:半导体 ETF 在那段时间做了份额拆分,比例 1:2。
打个比方:你手里有一张 100 元,交易所把它换成了两张 50 元。你的钱一分没变,但你手里"每张"的面额从 100 变成了 50。
系统怎么算的?它记着"我持有 2.47 万份",又看到价格从 2.700 变成 1.350(拆分后的正常价格),一乘——市值直接减半。
它不知道拆分这件事。它只知道:份额没变,价格掉了一半,所以钱少了一半。
这类事故的可怕之处在于:系统没有任何报错。 净值曲线平滑地往下掉了 50%,然后继续按新价格走,看起来就像"这只 ETF 真的暴跌了一半"。如果我不顺着"ETF 不可能跌这么多"这个常识去看,它可以在库里躺很久。
我犯的第二个错:让它写脚本自动修
发现之后,我做了个现在想起来后怕的决定:
> 我(10-18):写个脚本,自动把所有拆分都修了。
逻辑听起来很合理:既然拆分会让价格虚假腰斩,那就写个程序,找出所有"单日跌幅超过 50%"的记录,把价格乘 2、份额除 2,一次全修完。
结果是:这个修复脚本自己变成了事故。
它在历史数据里找到了 5 只"疑似拆分"的基金,其中大部分根本不是拆分,而是数据本身的缺口(停牌、节假日、数据源缺失)。程序按"跌幅超过阈值就乘 2"的规则一顿操作,把这几只基金的价格算成了天文数字——净值曲线直接飞出屏幕。
AI 当场停手,报告:脚本改坏了 5 只基金的历史价格,其中一部分已经被写进库。
那一晚我们没有再写第二个脚本。改成:逐笔手工修复 + 全库体检。
从"自动修"到"手工修",我们做了什么
| 步骤 | 具体做法 | 为什么 |
|---|---|---|
| 1 | 先在数据库副本上跑,不动生产库 | 修坏了还能重来 |
| 2 | 逐条确认真实拆分事件(公告/交易所数据) | 阈值猜不出真相,只有公告能 |
| 3 | 一次只改一个标的,改完立刻看净值曲线 | 改 A 破坏 B 是常态 |
| 4 | 全部改完,全库体检:每只基金每日涨跌幅是否超限 | 用规则反查,而不是用眼睛看 |
| 5 | 留档:改了什么、什么时候、为什么 | 下次遇到同类问题有据可查 |
一共修了一天多。修完那天我在聊天里只留了一句话,不是骂人,是提醒:
> 自动化的修复脚本,如果不比事故本身更谨慎,它就是下一个事故。
这次事故真正的教训
大多数人会总结成"要注意数据质量"。但我觉得更准确的三条是:
第一,"跌了一半"这种数字,人的常识比系统更可靠。 系统只认它被写进去的规则。它不知道 ETF 有涨跌停,不知道拆分是什么,不知道一家公司不会一夜之间少一半资产。这些"常识"不在代码里,只在你脑子里。
第二,让 AI 批量修改任何东西之前,先要清单。 不是"你去修",而是"先列出你打算改哪些、改成什么,给我看,我同意再动"。这一步能拦住 80% 的自动化灾难。
第三,修数据比修代码危险十倍。 代码错了,改回来就行;数据错了,它会顺着净值、收益、排名、信号一路污染下去,而且没人知道从哪一天开始错的。
后来的事
这次事故之后,平台慢慢长出了三层防线:
- 采集端门禁:一天内大多数标的涨跌超过限制,当天数据整批作废
- 修数据工具化:后来真的写了一个"份额折算归一"的脚本,参数是(标的、因子、生效日),内部保证价格、份额、重算一步不落
- 净值对账:算不平的账,拒绝写库并报错
第 7 篇会讲,这三层防线是怎么在一次更凶险的事故里补齐的——以及那一次,防线还是漏了一个洞。
【你也可以】
1. 看到任何"一天跌了一半""一个月翻十倍"的数字,先问:这可能吗? 物理世界和金融市场都有边界。 2. 让 AI 批量改东西前,永远加一句:"先列清单给我看,不要直接改。" 3. 要求它:"改之前先在副本上做,确认没副作用再动真的。" 4. 记住那句话——修 bug 的脚本,如果不够谨慎,它就是下一个 bug。
本系列为个人研究与搭建记录,所有数据与策略均不构成投资建议。
数据仅供参考,不构成任何投资建议。市场有风险,投资需谨慎。
其他笔记
- 开篇:我不懂代码,19 天搭了一套每天替我盯盘的系统 2026-11-03
- 德隆「三知道」投资理论完整版 2026-11-02
- 申万行业 PB 数据从哪来:从手工导出到官方 API 全自动 2026-11-02
- 动量方舟是什么:一个人如何搭一套动量轮动策略监控平台 2026-11-02
- 第 7 篇:第三次大事故——假暴跌、另一个 AI 的报告,和一个"对账员" 2026-10-30