
一个见过十亿条时间序列的模型
8 月底,Google Research 发布了 TimesFM 3.0。
如果你平时不太关注机器学习这个角落,可以先把它理解成“时间序列领域的 GPT 路线”:先拿海量数据训练一个巨大的基础模型,再把它派去解决那些训练时并未专门针对的问题。
基础模型已经先后席卷了语言、图像和代码,下一个目标自然轮到了时间序列。TimesFM 的训练数据包含数十亿个数据点,来源五花八门:电力需求、网站流量、零售销量、天气、住院人数、交通传感器……然后,你只需要交给它一段从未见过的序列,它就会继续往后预测。
零样本,Zero-shot。不需要重新拟合,不需要调参,甚至不要求你懂这个行业。
我看完发布说明,脑子里立刻冒出了一个念头。读到这里,你多半也已经想到了:
股票价格,不就是时间序列吗?
这并不算异想天开。基础模型最吸引人的地方,本来就是它能跨领域泛化。如果一个模型能识别陌生城市的用电节奏,为什么不能识别一只陌生股票的价格节奏?
当时,我桌子下面正好有一张闲着的 RTX 3090 Ti;券商 API 能免费提供历史行情;周末也还没有别的安排。天时、地利、显卡齐了。
于是我开工了。
几个月后,我收获了一个代码库、61 个测试、一整文件夹实验结果,以及一个完全出乎意料的结论:
几乎所有曾让我眼前一亮的结果,最后都被证明是我自己的测量错误。
不是四舍五入,也不是小数点后第三位算歪了,而是那种“策略之所以赚钱,是因为我不小心让它提前看到了明天价格”的错误。
这篇文章就是一场验尸报告。我会先展示那些曾让我兴奋的结果,再解释它们是怎么一个个断气的。
这些错误远不只属于金融。它们本质上都是人类用数据欺骗自己的不同姿势,只不过换了件统计学外套。最后,我也会说说现在我认为普通人究竟该如何投资。答案无聊得像一杯温开水——但如果不是亲手花几个月撞过南墙,我大概也不会真的相信它。
那条漂亮得不像话的资金曲线
第一版能跑通的回测,画出了一条几乎卡通般稳定的资金曲线:一路向右上方延伸。
它不是那种一飞冲天的火箭——火箭太夸张,反而会让我警觉——而是一条优雅、平滑、缓慢加速的上升曲线。从 2018 年一路穿过新冠暴跌,再熬过 2022 年,什么风浪都没能把它掀翻。
我盯着那张图看了很久,心里有种近似眩晕的感觉。
最后发现,罪魁祸首只有一行代码。
回测策略时,我们会先算出每天应当持有什么仓位——买谁、卖谁、各占多少——然后再把这些仓位乘以股票当天的实际收益。问题在于:到底是哪一天的仓位,乘哪一天的收益?
如果你根据今天的收盘价决定仓位,就不可能同时赚到今天的涨跌,因为今天已经结束了。仓位必须向后移动一天。
# What I wrote:
returns = weights * stock_returns
# What it should have been:
returns = weights.shift(1) * stock_returns
少了 .shift(1),我的模拟交易员就能在看完当天涨跌之后,再决定当天买什么。
它当然赚钱。它不是量化交易员,是时间旅行者。
我想特别说说当时的感受,因为人们复盘失败时,通常会把这部分轻描淡写地跳过去。那个结果出现时,我并不觉得它像 Bug,而觉得它像一项发现。
我花了整个周末,程序跑通了,结果还特别好。这种成就感会让人本能地不想继续深挖,生怕一铲子下去,把金矿挖成了下水管道。
我之所以发现问题,是因为运行测试前,强迫自己先写下了对结果的合理预期。真正跑出来的数字比预期好得过分——如果收益是真的,这会是历史上最强的对冲基金之一,而基金经理才入行两天。
第一条教训,也是贯穿后面所有故事的教训:当你特别兴奋时,那不是“太棒了”的信号,而是“再检查一遍”的信号。
那种“我好像发现了什么”的兴奋,恰恰最容易阻止你继续往下看。
我修掉了那一行。漂亮的曲线瞬间蒸发。
后来才知道,这已经算最容易处理的错误了——只要意识到该查什么,它就会主动现形。接下来遇到的麻烦,可没这么客气。
0.72 的夏普比率,以及它是怎么没的
去掉“穿越未来”的能力后,我开始搭建一套更像样的策略。
我没有直接预测“苹果明天涨不涨”。那基本是给抛硬币增加了一堆前置步骤。我的做法是构建一套横截面策略:把一篮子股票相互比较并排序,买入排名靠前的一组,做空排名靠后的一组,同时让多头和空头金额大致相等,从而尽量抵消整个市场的方向。
如果市场整体下跌 3%,多头和空头可能一起下跌,你的总仓位大致不受影响。你押注的不是市场涨跌,而是股票之间的相对排名。
这不是民科玩法。大量系统化对冲基金做的事情,本质上都与此类似。
在我选择的 60 只美国大型股票上,这套策略跑出了 0.72 的夏普比率。
先简单解释一下夏普比率,因为后面还会频繁见到它。夏普比率大致等于收益除以波动率,也就是每承受一单位让人血压升高的波动,能换来多少回报。
标普 500 长期夏普比率大约是 0.5。如果 0.72 这个结果是真的,就意味着我独自坐在家里,只用一张游戏显卡,做出了一套风险调整后明显优于指数的策略。
这是足以让人认真起来的数字。有些对冲基金拿着更寒酸的结果都敢开门迎客。
然后,我多做了一个测试。
整个结果当场去世。
测试简单得让人不好意思:那 60 只股票是我手工写出来的,包括 Apple、Microsoft、JPMorgan 等耳熟能详的名字。那么,如果完全不改策略,只把股票换成随机抽取的 60 只,会发生什么?
我随机抽了 200 次。
结果如下:
| 股票池 | 夏普比率 |
|---|---|
| 我手工挑选的 60 只 | 0.72 |
| 随机 60 只的中位数 | −0.03 |
| 随机 60 只的第 95 百分位 | 0.55 |
我那份名单落在随机结果的第 97 百分位。而普通的随机股票池,中位数甚至是亏钱的。
这件事值得停下来想一会儿,因为我当时也消化了很久。
真正起作用的不是信号。
股票名单本身才是策略。
问题是,我挑选这 60 家公司时根本没有使用什么高深方法,只是顺手写下了 2026 年我能立刻想起来的公司。换句话说,我选中的,是那些在过去十年里成功长大、成功存活、成功变成家喻户晓名字的公司。
这就是幸存者偏差,也是投资研究中最常见的“无意作弊”方式之一。
如果你用今天的大赢家测试历史策略,就等于偷偷把未来塞进了过去。今天我们都知道 Nvidia 后来很成功,但站在 2015 年,你面对的是五百家公司,没人知道其中哪几家会成为下一个全民热词。
于是我重新构建了一个更诚实的股票池:只根据 2021 年的成交量对公司排序,然后把名单冻结,不允许 2022 年之后的任何信息影响股票池成员。
同一套策略在这个股票池里的夏普比率是 0.17。
算上交易成本,基本等于什么都没有。
我结果里整整一个夏普点,来自纯粹的事后视角。 这次不是代码 Bug,而是一份我只花三分钟、没怎么思考就敲出来的名单。
这条教训可以用到几乎所有数据分析里:
相信一个结果之前,先看看它的随机版本能拿多少分。
不是只推导一个理论上的零假设,而是真的把数据打乱、随机抽样、重复运行 200 次。如果你精心设计的方案和随机方案混在同一个区间里,那你得到的不是成果,只是抽中了一个比较好看的签。
我骗过自己的另外四种方式
股票池偏差是最大的坑。但一旦开始主动寻找这种问题,你会发现它们遍地都是,而且并不专属于金融。
它们有一个共同点:用一种特别讨你喜欢的方式数数。
把 1,149 件事数成了 112,000 件
如果想证明一个信号不是运气,就要进行显著性检验。它要回答的问题是:
假设这个信号完全没有预测能力,纯靠运气得到当前结果的概率有多大?
按惯例,如果概率低于二十分之一,也就是 p 值小于 0.05,就值得进一步关注。
我有 98 只股票、1,149 个交易日。乍一看,这就是大约 112,000 个观测值。样本量大得令人心安,算出的 p 值低于 0.0001,只有万分之一。
我记得自己当时颇为满意。
但这 112,000 个观测值并不是相互独立的。
市场剧烈波动时,几乎所有股票都会一起动,所有预测也可能同时出错。如果我某天错判了 Apple,那一天大概率也会错判 Microsoft。
我并没有获得 112,000 份独立证据。我真正拿到的是关于市场的 1,149 份证据,然后每份复印了 98 遍。
把每天的数据合并成一个数字,再重新做检验,结果变成了 p = 0.299。
大约三分之一的概率可以靠运气得到。毫无说服力。
数据相同,模型相同,只因为计数方式不同,显著性就差了三个数量级。
这个问题远不止会出现在股票研究里。只要你对相关单位进行了重复测量——例如同一用户群里的用户、同一家医院里的患者、同一栋楼里的传感器——就很容易把每一行都误当成独立证据。
然后,统计软件会很配合地送给你一个惊艳的 p 值。可惜那张成绩单属于批发印刷,不属于真实发现。
测了 54 个方案,然后只欣赏冠军
如果拿 54 枚硬币,每枚抛 20 次,其中总会有一枚出现 16 次正面,看起来像是天选之币。
其实它没有魔法。这只是 54 枚硬币正常发挥的结果。
整个项目里,我一共试了 54 个版本:不同信号、不同持有周期、不同股票池、不同参数。然后,我从中找出表现最好的那个,看着它感到欣慰。
可问题在于,54 次尝试里的最好结果,本来就应该看起来不错。这是算术,不是能力。
有一种更正规的修正方法,叫作 Deflated Sharpe Ratio,膨胀修正夏普比率。它会问:既然你已经做了 N 次实验,那么一堆完全无效的策略里,最幸运的那一个会好看到什么程度?
真正的策略不仅要战胜零,还要战胜“噪声中的冠军”。
我的主打结果在这项检验里只拿到 0.25。它从未跨过“最佳噪声策略”那道门槛,一次都没有,无论哪个版本都不行。
而且这里还藏着一个非常反直觉的机制:我工作越努力、测试的想法越多,合格线就越高。
这很正确,也非常气人。
所以,“我测了一百套策略,终于有一套有效”,远没有听起来那么有力。学术金融研究也深受其害,大量已发表的市场异象在论文公开后立刻减弱,甚至完全消失。
尺子本身就有毛病
我的统计代码深处,有一个函数负责判断两种预测方法是否真的存在差异。它需要估计比较结果中的噪声大小,这又涉及对一系列项求和。
我用了一个看起来最自然的求和方式。
问题是,最自然的方式恰好不对。这样算出的结果不能保证是有效方差,数值可能过小,甚至可能变成负数。遇到负数时,我的代码会悄悄返回“未检测到差异”,然后若无其事地继续运行。
修复后,我重新跑了一遍所有结果。每一个 p 值都朝着不利于模型的方向移动:
| 比较对象 | 修复前 | 修复后 |
|---|---|---|
| 与朴素基线相比 | p = 0.004 | p = 0.017 |
| 与 2009 年的线性模型相比 | p = 0.060 | p = 0.114 |
| 与 1996 年的移动平均线相比 | p = 0.101 | p = 0.299 |
最终结论没有改变,因为模型原本就没通过检验。但那个诱人的 p = 0.060 曾让我产生一种错觉:
已经很接近了,再调一点参数也许就成了。
其实根本没有东西值得继续调。那只是统计实现制造出来的海市蜃楼。
真正值得记住的是:
我不是因为怀疑结果,才发现这个 Bug。
我是因为终于开始给统计代码写测试,才发现它。此前我一直跳过这种枯燥的工程卫生工作,因为它看起来不像“真正的研究”。可就在补测试的第一天,四个货真价实的 Bug 冒了出来。
直觉不是 Bug 检测器。恰恰相反,你的直觉往往站在 Bug 那边,因为它也希望答案足够好看。
一个可能早已读过未来的模型
这个问题属于 AI 时代,传统统计学里几乎没有完全对应的版本。
TimesFM 发布于 2026 年 8 月 31 日,它使用了极其庞大的训练语料。里面有没有股票价格数据?Google 没有完整披露训练数据的组成。
可能有一些,也可能有很多。
这意味着什么?
金融研究防止自欺的标准方法,是样本外测试:例如用 2015 至 2021 年的数据训练,再用 2022 至 2026 年的数据测试。如果模型在从未见过的数据上仍然有效,结果才比较可信。
但 TimesFM 可能早就见过 2022 至 2026 年的数据。
它不是“碰巧猜中”,而可能是把训练数据记住了。我能构造出的任何历史切分,都位于模型可能已经掌握的知识范围内。信息泄漏发生在我创建数据集之前,后来再怎么切分也补不回来。
唯一干净的证据,是在结果尚未发生的今天写下预测,然后等未来到来再评分。
所以我现在运行着一个脚本:每天下午记录模型预测,并提交到 git,以便时间戳可以审计。它需要等待一到两年,才能形成有意义的结论。
这可能是整个项目里最有价值的部分,而它的主要工作内容是:什么都别做,等着。
如果你正在用历史数据评估任何 AI 系统——交易、医疗、招聘,或者其他领域——现在都必须考虑这个问题。
当模型在 2025 年训练完成时,“它在 2023 年的数据上表现很好”,已经不再是过去那个意思了。
为什么图表里没有隐藏秘籍
又一次面对失败结果时,我突然换了一个理解角度。此后,很多事情都变得清楚了。
如果你喜欢晚上盯着 K 线寻找规律,那么下面这句话,大概是我最想送给你的观念。
我原来的想法是:
价格基本是随机的,而随机现象无法预测。
这句话不准确。更接近事实的说法,听起来甚至有点相反:
价格之所以难以预测,恰恰是因为它已经包含了所有人知道的信息。
每条新闻、每份财报、每个传闻、每套分析师模型,都已经被数以百万计的市场参与者阅读、分析和交易。其中有些机构拥有停车场卫星图像,有更及时的数据,有我这辈子都摸不到的信息基础设施。
价格就是所有这些信息被交易后的汇总结果。
每天剩下的那些细小波动,并不是“什么都没有”,而是所有聪明人都行动之后留下的残差。
随机性不是信息真空,而是可用信息被市场扫荡后留下的碎屑。
这样理解以后,很多现象立刻说得通了。
TimesFM 什么都没找到,不一定是因为模型太弱,而是因为它赶到现场时,值钱的东西早已被捡干净了。
图表上的某个形态无法稳定重复,也不是因为你画线的手势不够专业。如果它真的长期可靠,拥有交易所共址服务器的人多年前就发现了它,并用交易把利润压没了。
还有一件事多少有些扎心:在我的前瞻测试中,一条来自 20 世纪 90 年代的移动平均线规则,也就是能用电子表格计算的最简单技术指标之一,样本外表现甚至略好于基础模型。
这不是因为移动平均线特别厉害,而是因为两者都不怎么样。至少简单方法不会摆出一副自己深不可测的样子。
我曾经还寄希望于另一个著名理论,而它的失败,让我更深入地理解了市场为什么难。
金融学里有一条著名结论,叫主动管理基本定律:投资表现大致等于技能水平,乘以独立下注次数的平方根。
只要能把一点点优势应用到足够多的独立交易上,就可能变成一门真正的生意。赌场就是这么赚钱的:单次旋转的庄家优势很小,但架不住一天转一百万次。
那么,把股票数量从 60 只增加到 500 只如何?广度的平方根会提高约 2.9 倍,表现理应明显改善。
实际结果:纹丝不动。
原因藏在“独立”两个字里,而我此前轻飘飘地略过了它。
500 只美国股票并不等于 500 次独立下注。市场下跌时,它们几乎一起下跌;利率变化时,你持有的所有银行股会朝着相似方向移动。
表面上是 500 个名字,底层可能只有少数真正独立的风险来源:整体市场、几个行业因子、规模效应等。
换句话说,500 只股票只是同样几笔赌注换了 500 套衣服。
买入更多同一个市场里的资产,无法把一个糟糕的优势“分散”成好优势。 赌场的每次旋转近似独立,你的股票不是。
那些机构究竟是怎么赚钱的?
这是个合理的问题。金融行业显然真实存在,而且办公楼通常装修得相当不错。里面到底在忙什么?
真正的优势究竟有多大?
在正式参观之前,先校准一下预期。因为我刚开始时,对“有效优势”的想象离谱得很。
我原以为,成功意味着预测正确率达到 55%,好一点的信号也许能到 60%。很多人的直觉也是如此:如果不能明显强于抛硬币,怎么可能值得投入?
Renaissance Technologies 旗下的 Medallion Fund,拥有金融史上最强的长期业绩之一。它在三十年间,扣除费用前的年回报据称约为 66%。这是人类组建过的最成功投资机器之一,团队里挤满了物理学家和密码学专家。
据报道,它的交易胜率大约是 50.75%。
不是 55%,更不是 60%。
只是比硬币稍微强一点点,然后以极强的纪律执行数百万次,再用足够大的规模,把那条细如发丝的优势复利成惊人的财富。
真实世界里的优势就这么小。几乎没人长期拥有 55% 的胜率。
这重新定义了整个问题。我的失败并不是找不到“大优势”——因为根本没有谁拥有大优势。
真正的问题是,当优势只有 50.75% 时,它比我的测量误差更小,比交易成本更小,也比手工挑选股票给回测带来的美化效果更小。
在这种尺度上,测量比模型更难。
所以,这篇文章讲统计学的篇幅远多于神经网络。
还有一个看似不起眼、实际非常重要的细节:Medallion 从 1993 年起就不再接受外部资金,只管理员工自己的资本。
这就是信号。
如果你发现了一个容量有限的真实优势,通常不会到处推销,而会把它藏起来。因为每多投入一美元,都会侵蚀那条来之不易的利润空间。
真正的优势会被囤起来,而不是被包装销售。
如果有人热情地向你兜售某种策略,那么从他的实际行为看,这套东西多半没有通过“自己拿钱长期做”的考验。
五类赚钱生意
大体上有五类,其中只有一类接近“预测股票”。
做市。 Citadel Securities、Jane Street 一类机构并不需要预测市场方向。它们持续提供买价和卖价,赚取两者之间极小的价差,每秒重复成千上万次,再对剩余风险进行对冲。这是一门技术与库存管理生意,不是算命生意。
统计套利。 这是最接近我尝试方向的一类。成千上万个微小优势,每一个都只比硬币稍强,然后分散到大量金融工具上。它依靠广度赚钱。而专业机构会完成我一开始忽略的步骤:主动剥离市场因子、行业因子、规模与价值暴露,让剩余交易尽可能真正接近独立。
风险溢价。 例如 AQR 和 Dimensional。这不属于预测,而是持有其他人不愿意持有的风险,并因此获得补偿。它无聊、诚实、容量大,而且风险调整后收益本来就不会夸张。
主观基本面投资。 人类阅读财报、研究行业、与管理层会面。其中确实有人非常优秀,但平均表现仍然跑不赢指数。
收费。 很多看似“华尔街靠股票赚钱”的业务,其实是向别人收取资产管理费。无论策略最终是否有效,费用都可以照收不误。
他们使用算法吗? 几乎都用。但要区分执行算法和预测算法。
大型机构订单基本都会由算法执行,把一笔大单拆成小块,以免自己的交易推高买入价或压低卖出价。它的目标是减少自己的市场冲击,不是预知未来。
预测算法确实存在,但比电影里稀少得多,也弱得多。
他们使用 AI 吗? 越来越多,但通常把 AI 当成特征提取器,而不是最终决策者。
AI 可以阅读财报和电话会议记录,把文本转成数字特征,再交给一个规模小、结构朴素、能够审计的模型作最终判断。
没有多少理智尚存的人会把大型语言模型直接塞进交易决策环节:它太慢、不确定,而且亏钱后必须向风险委员会解释原因。“模型今天感觉有点看空”,显然不算一份合格报告。
DeepSeek 的故事,可能和你以为的不一样
这里有一个我特别喜欢的例子,而且很多人把它理解反了。
DeepSeek 是一家震动全球 AI 行业的中国实验室,它脱胎于幻方量化 High-Flyer。后者由梁文锋在 2015 年前后于杭州创立,一度成为中国最大的量化私募之一。
大家很容易脑补出这样的故事:一家对冲基金为了提升交易能力,专门建了一家 AI 实验室。
真实故事的方向几乎相反。
幻方量化使用机器学习交易中国股票,因此建设了大型 GPU 集群,也就是“萤火”系列。据报道,第二代集群拥有约一万张 A100。
2024 年,中国监管部门加强了对量化基金的监管,幻方的业绩也经历了一段困难时期。与此同时,创始人本人显然对通用人工智能的兴趣大于交易,于是把算力集群转向了另一个问题。
DeepSeek 不做交易,从一开始也不是为了做交易而存在。
但这段故事对普通投资者真正有价值的部分在于:幻方的一大部分交易优势,不一定来自更先进的模型,而来自它面对的交易对手是谁。
中国 A 股市场长期由个人投资者贡献很大比例的成交量,历史上大约达到 70% 至 80%;美国市场则大致相反,以机构交易为主。
散户资金更容易追涨杀跌,更受情绪影响,也更容易形成可识别的行为模式。
使用类似的技术,只要对手不同,难度就可能天差地别。而我的实验选择的是美国大型股,几乎是全球被研究、套利和交易得最彻底的一批价格序列。
优势往往来自你在和谁交易,而不是你有多聪明。
拆开来看沃伦·巴菲特
说到这里,大家通常会搬出最经典的反例:如果市场这么有效,那巴菲特怎么解释?
在回答之前,先区分两个概念。我花了很久才真正把它们刻进脑子里,而这个区别足以推翻你在饭桌上听到的大部分投资故事。
买了一只上涨的股票,不等于拥有能力。那可能只是领取风险租金。
过去一个世纪,美国股票年化回报大约为 10%。只要买入大部分优质资产并长期持有,都有很大机会赚钱。
这叫作 Beta,也就是承担风险获得的补偿。任何人都能通过费率只有几个基点的指数基金获得它,不需要特殊洞察。
Alpha 则是扣除风险暴露本来就会带来的回报后,剩下的超额收益。它才是真正稀缺的东西,也是我花几个月都没找到的那部分。
想象一场聚餐,有人说:
“我 2016 年买了 Nvidia,后来涨了二十倍。”
这种故事通常由 Beta 加幸存者偏差组成。市场整体上涨了,其中一只股票涨得格外多。至于那位朋友买过但跌到几乎归零的仓位,饭桌上大概不会提——因为故事不好听,而人类记忆也不是审计师。
最终传到你耳朵里的故事,已经被同一种过滤机制处理过。它也正是让我那份手工股票名单显得特别优秀的原因。
所以,无论评估谁的投资记录——我的、某只基金的,还是你自己的——问题都不该是“它涨了吗”,而应该是:
“它是否比单纯承担同样风险获得的回报更高?”
有了这个区别,再看巴菲特就有意思多了。
学者们曾把他六十年的投资记录拆开分析,得到的结论比“他是天才”或者“他只是运气好”都更实用:
- 他的夏普比率大约为 0.79。非常优秀,但并非超人水平。许多基金在较短时期内超过过它,真正不可思议的是他维持了六十年。
- 他使用了大约 1.6 倍杠杆,资金来自保险浮存金,也就是先收保费、日后才支付赔款的钱。其实际融资成本长期低于美国国债利率,相当于几十年都能以比政府更便宜的价格借钱。
- 他的持仓显著偏向可衡量的特征,包括质量,也就是盈利稳定、经营稳健、负债较低的企业,以及低波动和价值风格。
- 他拥有永久资本。投资者不能在回撤时突然赎回,因此他不会被迫在市场底部卖出。
把这些因素逐一拆开,许多“魔法”就得到了合理解释。
并非全部——其中仍有真实的剩余能力——但“巴菲特年化 20%,市场只有 10%”这个传奇,很大一部分来自结构优势:低成本杠杆、可量化的投资倾向、长达几十年的期限,以及永远不会在底部被迫卖出。
同一个主题已经第三次出现,可以说得更直白些:
幻方的优势很大程度上来自交易对手;巴菲特的优势很大程度上来自资产负债表和耐心。二者都不主要依赖于“比所有人更聪明”。
其中还藏着一个真正的好消息:
巴菲特四项优势中的两项,你已经免费拥有。
如果投资的是自己的积蓄,你拥有永久资本,没有客户可以突然要求赎回。如果离退休还很远,你还拥有以几十年计算的投资期限。
这两项优势是许多专业投资者梦寐以求、却在制度上无法真正拥有的。因为他们的客户可能在连续两个季度表现不佳后撤资。
你没有巴菲特的低成本杠杆,也未必有他的判断力。但你并不是从零开始。最难得到的两项优势,其实已经在你手里。
唯一还算诚实的希望:新闻
仍有一个方向,我认为值得继续尝试。
它来自一次讨论。当时有人针对我“所有信息都已经被计入价格”的悲观态度,提出了一个很犀利的反驳。
没错,重大新闻出现时,股价会几乎瞬间调整。对于大型股票,这个过程远短于一秒。任何以“我读到新闻,然后根据它交易”为起点的方案,都在与一群微秒级解析新闻、服务器机架就放在交易所旁边的机构竞赛。
这场比赛没有悬念,甚至不算接近。
但最初的价格反应并不是全部行情,因为接下来,人们还会继续对其他人的反应作出反应。
这个观察非常好,而且确实成立。
机器在一秒内完成第一轮交易。随后,基金经理看到价格变化,晚上修改模型;分析师到周四才调整评级;养老金在月底进行再平衡;又有人到了周日才从报纸上读到这件事。
最初的水花抢不到,但涟漪可能持续数周。
金融学里已经记录并命名了这种现象:盈余公告后漂移,post-earnings announcement drift。
一家公司的业绩超过预期,股价立刻跳涨,之后数周仍会继续向同一方向缓慢漂移。这个现象自 1968 年以来被多次验证,发表后也没有完全消失。如今它比 20 世纪 90 年代弱了,但“变弱”反而更符合个人投资者可能参与的机会形态。
最快的部分属于专业机构,较慢的部分则来自人类反应不足。这至少是普通人有可能用笔记本电脑测试的东西。
从结构上看,它也有一个优点。还记得“500 只股票其实一起动”的广度问题吗?事件之间通常没有那么强的相关性。
Nvidia 在 2 月公布业绩,Costco 在 5 月公布业绩,两者在时间和原因上都相对独立。这更接近真正的独立下注,而不是给同一种市场风险换两件衣服。
但这个思路正中央摆着一个陷阱,也是大多数“新闻情绪交易机器人”失败的原因:
情绪不等于意外。
假设 Nvidia 公布创纪录的业绩,营收增长 60%。任何语言模型阅读新闻稿后,都会非常自信地判断:极度正面。
结果股价下跌 8%。
为什么?因为市场原本期待增长 70%。
真正推动价格的不是消息本身有多好,而是它相对预期偏离了多少。已经被预期到的部分,早就写进价格里了。前面讨论的市场效率,在这里变成了一个非常实际的工程问题。
如果模型只判断“这条新闻是不是好消息”,那么它最容易在行情最大的地方自信满满地犯错。因为剧烈下跌,恰恰可能来自好消息没有想象中那么好。
所以,真正的任务不是情绪分析,而是衡量消息相对于市场已有预期的“惊喜程度”。这更难,也正是它与 GitHub 上无数废弃情绪交易项目的根本区别。
还有一枚地雷:你无法诚实地用现代语言模型回测这个想法。
一个训练数据覆盖到 2025 年的模型,在分析 2019 年的新闻稿时,已经知道后来发生了什么。它不一定直接记住泄漏数字,但拥有整个后续故事作为背景知识。
它会觉得 2016 年那份“我们将全部押注 AI”的内部备忘录极具远见,因为它知道后来发生了什么。
因此,所有回测结果都会被夸大,而且调参越勤快,夸大得通常越严重。
这里还必须加一句警告,因为这个思路最有诱惑力的版本,往往也是最稳定亏钱的版本:
“现在出了大新闻,我能感觉市场要动了,赶紧交易。”
证据对这种直觉并不友好。当新闻已经变成你能读到的新闻时,价格通常已经完成了第一轮调整。
至于那种“我早就看出来了”的感觉,很多时候只是市场先动了,而记忆在事后悄悄重排时间顺序,让你的判断看起来发生在行情之前。
这不是人格缺陷,而是记忆的正常工作方式。我们会重构故事,让自己成为主角。于是人人都记得自己曾成功预测崩盘,却不太记得另外四次喊崩盘但什么都没发生。
解决办法是:行动前先把理由写下来,并保存在带有不可修改时间戳的文件里。
这正是我在前瞻测试里对模型做的事情,同样也可以对自己做。进行 50 次交易后,你会得到一个诚实答案:你的直觉究竟有没有附加价值。
大多数人会发现没有。少数人可能发现确实有。
无论答案是什么,至少你会真正知道,而不是靠记忆给自己剪一部英雄电影。这份认知可能比交易收益更值钱。
我仍认为新闻方向值得测试。我会把最终形成可交易策略的概率估在四分之一左右。
但请注意,这个计划已经从“让 AI 预测市场”,收缩成了“测量一个有文献支持、存在几十年的人类行为是否仍未消失”。
这是小得多的主张。
而最终能活下来的,通常只有这种小主张。
不预测任何东西,怎样真正改善指数投资?
几个月失败之后,我终于愿意接受下面这个结论:
对绝大多数人而言,买入宽基指数基金,然后别乱动,就是正确答案。
在十五年的时间跨度上,大约 90% 的美国大型股主动基金经理跑输标普 500。这些人是全职专家,有 Bloomberg 终端,有研究团队,有比普通人贵得多的咖啡机。
这个基础胜率对我们并不乐观。
但“买指数”并不是讨论的终点。确实有一些办法能较稳定地改善结果,而它们有一个共同特点:
完全不需要预测。
不要恐慌。 这是最有价值、也最不性感的优势。研究实际投资者收益与其持有基金本身的收益后,会发现两者长期存在每年约 1% 至 2% 的差距。原因基本就是:涨了以后买,跌了以后卖。
自动化最大的优势并不是聪明,而是脚本在 2020 年 3 月不会害怕。
税损收割。 在应税账户中,可以直接持有个股,而不是只持有基金。当某个仓位下跌时,将其卖出确认亏损,再立即买入统计特征相近的替代资产,以保持市场暴露。
这些亏损可以抵扣其他资本利得。如果没有足够的资本利得,在美国税制下,每年还可以用最多 3,000 美元抵扣普通收入,其余亏损继续结转。
不过必须诚实说明它是什么,因为这个概念经常被卖得像永动机:
税损收割主要是一台延税机器,不是免费印钞机。
替代资产的成本基础更低,因此未来出售时,账面收益会更大。你相当于以零利率向未来的自己借钱。
它的真正好处主要来自三个方面:
- 延迟纳税本身具有价值;
- 可能存在税率套利,例如先用短期亏损抵扣税率较高的普通收入,未来再按较低的长期资本利得税率纳税;
- 如果股票最终被捐赠或继承,某些情况下可能永远不需要缴纳那部分税。
它每年可能贡献约 0.5% 至 1.5%,但随着持仓年龄增加、可供收割的亏损仓位越来越少,效果通常会逐渐衰减。
机械再平衡。 设定固定目标权重,当偏离超过某个区间时再平衡。收益不大,但实施成本低,而且能强迫你卖出相对昂贵的资产、买入相对便宜的资产,不需要先发表一篇宏观经济演讲。
如果还想在指数之外增加其他策略,最诚实的理由不是预测,而是降低相关性。这里把算术摆出来看,会更清楚。
即使一条独立收益流单独表现较差,只要它与现有投资的相关性足够低,也可能改善整体结果。
假设标普 500 的夏普比率为 0.5,再加入一项夏普比率为 0.4 的策略——它单独看更差。如果两者真正不相关,最优组合的夏普比率大约能达到 0.64。
加入一项更差的策略,整体反而提高 28%。这就是分散投资的核心逻辑,而且确实成立。
然后看看不那么浪漫的现实。
任何基于股票的策略,都很难与股票市场完全不相关。如果相关系数取更现实的 0.4,同一组合的夏普比率只能提高到 0.55,改善约 9%。
三十年里,9% 的改善当然不是毫无意义。但它比“完全不相关”的教科书版本小得多,而且还要跨过回测通常不处理的另一道障碍:
税。
主动交易容易产生按普通收入税率征税的短期资本利得。长期持有的指数基金通常适用更低的长期资本利得税率,而且只在卖出时纳税。
因此,一套主动叠加策略在税前年化上往往需要领先指数 1% 至 2%,税后才可能刚刚打平。
这是非常高的门槛。见过足够多漂亮回测灰飞烟灭之后,我终于学会尊重它。
我做过最复杂的东西,最后叫我停手
几个月 GPU 运算、一套基础模型和 61 个单元测试,最后给出的结论是:
持有指数、降低成本、不要恐慌;如果账户需要纳税,可以做税损收割;如果实在想投机,就把它与长期资产隔离,并把规模控制得足够小。
这些话随便一本个人理财书里都有。你可能早就读过,只是它们太无聊,听起来又像认输,所以从脑子表面滑了过去。
但我并不觉得这几个月被浪费了。这不是自我安慰,而是认真比较过另一种可能后的结论。
想象一下,如果其他人完成了同样的项目,会发生什么?
很多人现在可能已经在用那套夏普比率 0.72 的策略实盘交易了。回测看起来干净,策略听起来高级,曲线漂亮得像宣传册封面。
而真正杀死它的那个测试——把同一套代码放到 200 份随机股票名单上——很少有人会主动做。
因为谁会故意摧毁自己最好的结果?
后来我才明白,这恰恰是整件事的核心工作。
我做过最有价值的东西,就是那个告诉我应该停下来的东西。
“相信无聊的建议”和“通过测量亲自走到无聊的建议”,两者之间有巨大差别。
现在,我准确知道那个图表形态为什么不真实:因为我让它和 200 个随机版本比赛,亲眼看着它掉进普通结果的中间。
我知道基础模型为什么没有帮助:不是因为它太弱,而是因为它来得太晚。
我知道增加股票数量为什么没有帮助:因为它们并不是独立下注。
现在有人向我展示回测时,我首先会问:
股票池是怎么选的?
你一共尝试过多少个方案?
你是不是把彼此相关的日期或样本,当成了独立证据?
大多数时候,这三个问题里至少有一个足以让结果当场失去说服力。
所以,我真正构建出来的不是一套交易策略,而是一个特定类型的自欺检测器:它专门寻找那种“因为计数方式稍微错了一点,数据就开始说你爱听的话”的情况。
这种能力可以迁移。此后,我已经在两个与金钱完全无关的工作项目里,用它抓住了自己。
最后,我想留下一个重新理解指数投资的角度。
买指数基金时,你并不是“放弃挑选赢家”。你是在下注另一件事:人类会继续组织成公司;下一个十年创造的产品和服务会比这个十年更多;资本会继续流向有用的企业,离开衰败的企业;而你会因为提供长期资本和耐心而获得回报。
你下注的是资本主义这套系统,而不是某一家具体公司。
公司会不断死去。指数会安静地把它们移除,然后继续向前。
过去一个世纪,这项下注的年化回报大约是 10%。它不需要优势,不需要 GPU,不需要基础模型,也不需要任何花哨聪明。
它只要求你愿意承担风险,然后等待。
偏偏等待可能是最稀缺的能力。因为等待看起来像什么也没做,而“什么也没做”总让聪明人觉得自己是不是哪里出了问题。
市场不会因为你聪明就付钱。市场里的聪明人实在太多,而且他们早已看过你正在看的东西。
市场真正奖励的是耐心。
而耐心和交易优势不同:即使所有人都知道它有效,它也不会因此失效。
以上内容只是我从一个研究项目中得到的经验,不构成任何投资建议。我没有根据这些实验持有任何实际仓位,测试账户使用的也是模拟资金。如果只记住一件事,请记住:相信任何结果之前——无论是我的、你的,还是陌生人的——先看看它的随机版本能拿多少分。
声明:文章由人类撰写,并在适用之处使用 AI 改进。