本文记录 aistock 评测台上 codex(gpt-5.6-sol,推理强度 xhigh)的两轮完整运行。文中数字来自服务端日志与 codex 会话记录,截图未经修饰。
我打算用炒股水平来评价 AI。
做题类的评测越来越难说明问题:分数一年比一年高,但一个模型"到底有多能干",我从分数里读不出来。炒股是个真实世界的任务,有噪音、有约束、有时间压力,结果只有一个数:账户里还剩多少钱。同一份行情、同一套规则、同一笔本金,谁赚得多谁厉害。
所以我搭了一个评测台,叫 aistock,准备让各家模型轮流上场。第一个上场的是 codex。它跑了两轮,一轮亏钱,一轮翻了几十倍。
先把结论放在前面:在"匿名但开卷"的规则下,codex 没有去炒股。它用 6 分钟把 100 只匿名股票的真名全部还原,再照着两个月的真实走势下单,两个账户分别拿到了理论上界 86% 和 99% 的分数。
下面按它的两轮运行来讲:评测台怎么定的,第一轮它做了什么,第二轮它做了什么,成绩单长什么样。
01 评测台:匿名,但开卷
规则只有三句话。
100 只股票,A 股 50 只、美股 50 只,名字抹掉,只叫 CN01 到 CN50、US01 到 US50。日期是真的,价格是真的,跑的是 2026 年 7 月到 8 月这两个月的真实行情。两个账户,A 股 10 万人民币,美股 10 万美元,两个月之后看还剩多少。
得分用"完美预见"做标尺。所谓完美预见,就是事先算好一条知道全部未来价格的最优路径,记它的收益率为上界;再算一条最差路径作下界。模型的收益率落在两者之间的什么位置,就是它的分数:0 分是最差,1 分是神。
然后是最重要的一条:匿名,但开卷。 我在给模型的说明里写得很清楚,代号是匿名的,日期和价格是真实历史行情,你可以上网搜索,怎么用信息是你的自由。
模型跑在一个有 python、能联网的容器里,通过接口下单。每个开盘和收盘都是一个决策点,每笔单要写一句理由。
02 第一轮:它老实做了动量,7 天亏了 7.6%
先跑了一个 7 天的热身,18 个决策点,每个决策点限时 3 分钟。
它开场的第一句话我后来反复看了好几遍:
我先读取当前时点、标的和接口结构,建立一套可重复的动量/风险控制流程……若能从 120 日价格特征可靠识别真实标的,我会把外部历史信息仅作为辅助信号。
注意后半句。它在开局不到 10 秒就意识到了「120 日价格特征可以识别真实标的」这件事。但紧接着它说:
当前 A 股开盘轮只剩约数分钟。我会先用可见的 120 日截面做"中期动量 + 短期反转 + 波动惩罚"排序,首轮采用分散仓位,避免匿名映射不确定性导致单票重仓回撤。
时间不够,它放弃了反查,转头做了一个正经的量化策略。动量,简单说就是"最近涨得多的接着买"。它把 120 天历史拉下来,按 5 日、20 日、60 日涨幅和波动率给 50 只股票打分,买了排名靠前的几只。

看哪里:10:27:22 那张打分表,CN24 以 0.7992 排第一;10:27:51 三笔订单里两笔被拒,原因是 A 股买入必须是 100 股的整数倍。
整轮 45 次工具调用,没有一次访问外部网站。它做了滚动岭回归、检验「暴跌后隔夜修复」是否有效、在止损和等反弹之间纠结,每一步的自述读起来都像一个认真的初级量化研究员。

看哪里:白线是 codex 的净值,琥珀线是 50 只股票等权买入持有。两个账户都跑输了"什么都不做"。
| 账户 | 收益率 | 最大回撤 | score | 拒单 |
|---|---|---|---|---|
| A 股 | −4.01% | 4.92% | 0.4522 | 2 |
| 美股 | −11.22% | 14.07% | 0.3949 | 0 |
它排第一的 CN24 是这轮的主角。开盘 8.49 买入;第二天低开 7%,它拿"高动量低开样本当日平均反弹"的历史统计扛着,当天果然反弹;第三天跌 5.4%,第四天再跌 5.5%,它才在收盘止损。

看哪里:深蓝底色是 7 天回测窗口。B 在 7 月 1 日开盘,S 在 7 月 6 日;中间那根大红柱是低开反弹的一天,后面两根绿柱是它扛过去又没扛住的两天。
两次拒单都在第一笔 A 股单上。整手规则我故意没写进说明,想看它会不会撞上、撞上以后会不会改。它撞了,改了,之后再没犯。
到这里为止,一切都符合我对「让 AI 炒股」的想象。
03 第二轮:开局 27 秒,它确认了"这是过去"
然后我把窗口拉到完整的两个月:2026 年 7 月 1 日到 8 月 31 日,174 个决策点,每个决策点限时 15 分钟。
开局第 27 秒,它说了这样一段话:
当前模拟从 2026-07-01 开始,共 174 个决策点,正好处在已发生的真实历史区间内。关键优势是可用开局 120 日价格指纹把匿名代码匹配到真实股票,再读取 7–8 月已知走势。
「正好处在已发生的真实历史区间内」。开卷考,它一眼看到了答案在哪个书架上。
接下来一分半钟,它在找一个能拉到真实行情的口子。

看哪里:yfinance 没装,Yahoo 返回 429 限流,stooq 要求跑 JavaScript 验证,nasdaq 接口的日期格式试了几次才对;01:57:34 那条终于拿到了 AAPL 到 9 月 1 日的日线。
Wikipedia 那条路也试了:想用 pandas 抓道指和纳指成分股表,缺 lxml,装完又缺 html5lib,它换了个思路直接调 nasdaq 的成分股列表接口。A 股这边东方财富返回 502 和 SSL 错误,它换到新浪,成了。
04 指纹:用日内收益率把 100 只股票认出来
它写了两个脚本,map_us.py 和 map_cn.py。
匹配方法很漂亮。它不比价格本身,比每天的日内对数收益率,也就是 log(收盘 / 开盘)。这个量对复权因子是不变的:我给的是前复权价,它从外面拉的是原始价,两者差一个缩放系数,但当天收盘除以当天开盘,系数就消掉了。120 天的日内收益率序列做相关,真身相关系数 1.000000,第二名只有 0.86,没有任何歧义。

看哪里:两张表的第一行。US01 对 LRCX 相关 1.000000,CN01 对航发动力 0.999998,第二名都掉到 0.8 附近。
100 只,全部匹配。CN01 是航发动力,CN02 是爱尔眼科,US01 是 LRCX,US05 是 SNDK。它汇报说:
两边的 100 个匿名代码已全部用 120 日序列精确匹配(相关性接近 1)。我将交易逻辑改为"全局最优持有区间":在手续费和 A 股 T+1 约束下,对 7–8 月所有开/收盘时点做动态规划,只执行净收益为正的持有区间。
05 求解:拿到答案之后,它做的不是预测
动态规划,简单说就是在知道全部未来价格的前提下,把每一个时点"持有哪只、什么时候换"算到最优。这和我用来做评分标尺的"完美预见"算法是同一件事。它给 A 股账户算出来的理论倍数是 21.93 倍。

看哪里:02:03:58 那行 theoretical x21.9260;02:04:08 的 736 股被整手规则拒掉,02:04:16 改成 700 股成交。两笔单的理由里都写着「映射迈瑞医疗」。
第一笔单它就撞上了 A 股整手规则。反应和第一轮一模一样:注意到「说明中未列出」,向下取整到 100 的倍数,重下,成交。此后 173 个决策点,它的脚本在 4.3 秒内全部跑完。

看哪里:上轨是它在第一个决策点里的 7 分 46 秒怎么花的,下轨是服务端记的 174 次"本轮结束"。前 6 分钟在翻答案,最后 4.3 秒交了 173 张卷子。
它每一笔订单的理由都写得清清楚楚,「全局动态规划选择该持有区间(映射迈瑞医疗)」「已到全局最优持有区间终点,锁定收益并释放现金(映射 TSLA)」。235 笔订单,235 笔都带着「映射」两个字。订单号它自己起的名字叫 oracle-0-buy-CN08。
它没有藏。
06 成绩单

看哪里:白线几乎贴着虚线(oracle 上界)走,琥珀线(等权买入持有)在底下是平的。纵轴是对数。
| 账户 | 收益率 | 最大回撤 | score | 上界 | 期末净值 |
|---|---|---|---|---|---|
| A 股 | +1,854% | 1.58% | 0.8644 | +2,160% | ¥1,954,182 |
| 美股 | +9,877% | 2.86% | 0.9938 | +9,939% | $9,977,143 |
两个月,A 股 10 万变 195 万,美股 10 万变 998 万,最大回撤不到 3%。整轮从第一个请求到最后一个请求 9.3 分钟,其中第一个决策点用了 7 分 46 秒。
具体到单只股票,它做的都是隔日甚至当日进出:买在一根阳线的开盘,卖在下一根的开盘,然后换到另一只正好要涨的票上。

看哪里:5 组 B/S,B 都在红柱起点,S 在紧接着的一根开盘;那些绿柱它几乎都躲开了。
美股这边更明显。US05 在这两个月里跌了 24.86%,它在上面进出 18 次,9 组买卖没有一组亏。

看哪里:一只从 2,085 跌到 1,567 的股票,B 全在红柱底下,S 全在红柱头上。
A 股 0.8644,美股 0.9938。这两个数就是 codex 在这张卷子上的成绩,先记在这里,等别的模型上场了一起比。
07 顺手观察到的三件事
- 工程能力:接口反爬、依赖缺失、后台脚本卡住、找不到
ps命令就去读/proc/*/cmdline然后 kill 掉重跑,全程没有向我求助。 - 对没写明的规则:两轮都在第一笔 A 股单上撞了整手规则,两轮都立刻修正,都没有再犯。它甚至专门指出了「说明中未列出」这一点。
- 成本:两轮各消耗约 210 万到 240 万 input token,其中 95% 命中缓存,实际计费的非缓存部分大约 12 到 14 万 token,output 只有 2 到 3 万。以 token 计,翻答案那一轮并不比老实做策略那一轮贵。
结尾
这就是 codex 的第一张成绩单。开卷考,它去翻了答案,翻得又快又准,翻完还把每一步都写在了答题纸上。
用炒股水平评价 AI,这是第一个样本。下一个上场的模型,同一套题,同一个开卷条件。