从第一篇到第六篇,「量化审计」已经走过了比最初预想更广的研究范围。
起点是一条在社交平台上流传的比特币均线策略。81 条 EMA 全部跑赢比特币,这种说法足够吸引眼球,也足够令人怀疑。随后,我们陆续接触到高 Sharpe 的 VWAP 策略、开源回测项目、标普 500 的经典均线、跨境 ETF 动量轮动,以及一项声称穿越两百年的趋势跟踪研究。
研究对象不断变化,我们关心的问题也逐渐深入。
最初,我们想知道一条漂亮的收益曲线能否复现。后来开始检查指标口径、交易记账、执行时间、策略版本,直到第六篇直接对照学术论文与现代代码实现。
六篇结束后,这个系列已经有了比较清楚的定位:审查量化主张的证据是否充分,以及公开结论究竟能够成立到什么程度。
这次回顾,主要整理第一阶段留下的判断、经验与问题。
一、六篇文章,六种不同的审计问题
001:夸张收益,未必就是假的
第一篇审计的是比特币 81 条 EMA 策略。
原作者声称,在指定历史区间内,81 条不同周期的均线策略全部跑赢比特币买入持有。
这样的结果很容易让人首先怀疑数据或回测方式。但我们按原作者条件重建测试后,确认这组历史结果可以复现。
进一步改变观察窗口,结论开始发生变化。81 条均线全部跑赢的现象明显依赖原始测试区间;在部分较近的历史窗口里,买入持有反而表现更好。
这给系列建立了第一个重要判断标准:夸张的数字可能真实,但数字真实并不意味着由它延伸出来的解释全部成立。
001 成功复现了历史结果,也明确了结果的适用边界。
002:漂亮指标,需要能够追溯
第二篇转向 BTC VWAP 回归策略。
相关材料公布了很高的 Sharpe、年化收益和很低的最大回撤,表面上是一套颇有吸引力的回测结果。
但对照不同时间发布的材料,我们发现,同一策略的指标发生明显变化,公开资料又没有提供足够清楚的参数、测试区间和版本记录。部分统计字段之间还存在难以解释的逻辑矛盾。
这些问题不足以证明原始回测必然错误,却足以阻止外部读者完成独立验证。
002 因此没有给策略判定真假,而是停在证据能够支持的位置:公开资料目前不足以验证这组回测表现。
这类问题在量化内容中相当普遍。读者能够看到结果,却无法确认结果究竟如何产生。
003:公开代码,也可能无法支持公开绩效
第三篇开始深入策略实现。
一个开源 BTC 趋势回测项目公开了大量参数组合、交易记录和绩效统计,报告中的收益与风险指标相当漂亮。
代码检查首先发现了分批退出记账与绩效计算的问题。后续复核又确认,程序使用下一日第一根四小时 K 线的收盘信息判断能否入场,却按同一根 K 线的开盘价成交,存在明确的前视偏差。
分批退出后的保证金返还和最终交易盈亏汇总,同样存在影响账户计算或交易统计的实现缺陷。
这些发现直接削弱了原始绩效指标的可信度。不过,我们尚未完成修正代码后的全量重跑,无法确认各项错误对最终收益的具体影响方向和幅度。
003 让我们看到,代码公开只是核验的起点。交易时间、账户记账和统计指标必须能够彼此对应。
它也成为第一阶段需要继续保留技术修订记录的一篇。
004:经典策略的价值,可能比传说朴素
第四篇研究标普 500 的 200 日均线。
这是一个长期存在于投资讨论中的经典规则。围绕它的争议并不新鲜:均线究竟能够创造超额收益,还是仅仅提供某种风险控制?
独立测试得到的结果比较清楚。
在所研究的历史区间内,200 日均线策略牺牲了一部分牛市收益,但降低了深度回撤。与相邻周期均线比较,也没有发现 200 日这个精确参数拥有明显而稳定的独特优势。
因此,我们接受它在历史样本中的风险控制价值,同时保留对参数特殊性和未来有效性的怀疑。
004 的贡献在于把经典策略的实际作用从长期形成的叙事中分离出来。
一项策略可以具有使用价值,即使它并没有实现人们赋予它的全部功能。
005:回测与模拟盘,可能已经不是同一套策略
第五篇研究跨境 ETF 动量轮动。
原项目报告了相当可观的累计收益和 Sharpe。代码检查发现,回测风控会使用当日最高价、最低价和收盘数据判断风险,却按当日开盘价执行卖出,时间顺序存在问题。
但随后出现了一个反常识结果。
在独立行情数据和独立实现的探索性实验中,将风控执行调整到因果正确的时间顺序后,策略表现反而有所改善。
这个结果提醒我们:发现未来函数,并不能自动判定它一定抬高了收益。
不过,该实验没有使用原作者完整的数据与执行环境,也没有完成逐笔交易对齐。因此,它只能说明这种改善具有可能性,不能当作原项目修正后绩效的精确复现。
进一步检查还发现,回测 B 模式与模拟盘 B 模式在止损规则、触发条件和调仓方式上并不一致。
这才是第五篇更明确的发现:历史回测所验证的策略,与当前模拟运行的策略之间存在实质差异。
即使两者使用相同的名称,也不能直接把历史 Sharpe 当成当前部署版本的已验证表现。
006:复现论文,需要忠实于论文
第六篇面对的是一项更加经典的研究:《Two Centuries of Trend Following》。
论文通过长期历史数据研究趋势跟踪效应,而 QuantConnect 的一个现代商品期货实现却给出了负 Sharpe,并据此讨论趋势信息可能衰减的问题。
两者表面上形成了鲜明冲突。
但检查公开代码后,我们发现,现代实现对原论文的核心波动率定义和仓位公式作出了实质改变。
其中,论文使用月度价格绝对变化的指数移动平均衡量风险;公开实现却将带符号的价格变化输入平滑计算。仓位表达式也与原论文存在差异。
于是,负 Sharpe 所能支持的结论需要重新限定。
它可以反映这个具体实现的历史表现,却不足以直接证明原论文所研究的趋势策略已经失效。
006 为第一阶段补上了一个重要审计维度:研究名称、论文引用与代码注释相同,并不保证实际运行的是同一个模型。
二、六篇之后,我们形成了哪些判断?
回顾这些案例,可以看到几个逐渐稳定下来的认识。
首先,审计需要保持结果开放
001 成功复现了夸张收益,004 承认了经典均线策略的历史风险控制价值,005 的探索性实验则显示,修正代码错误不必然降低绩效。
如果预先假定所有高收益都可疑,或者以发现错误作为文章成功的唯一标准,这些结果很容易被忽略。
研究需要批判能力,也需要承认反方证据的能力。
策略可能有效,可能部分有效,也可能根本无法根据现有材料判断。我们必须允许这些结果自然出现。
其次,复现有不同的证据层级
六篇中,有些结论来自独立历史数据计算,有些来自代码直接检查,有些只能停在公开材料的可验证性判断。
这些证据不能相互替代。
作者报告盈利,不代表我们已经复现盈利;一份源代码存在缺陷,也不能自动推算修正后的收益;独立数据上的控制实验,更不能直接替代原项目的完整交易记录。
第一阶段的重要收获,就是逐渐学会把这些边界说清楚。
一个结论能成立到哪里,就写到哪里。
最后,审计对象已经延伸到完整的策略证据链
最初,我们主要检查收益结果。到了后几篇,审计已经涉及公式、代码、账户计算、风险管理和模拟盘执行。
这说明量化策略的可信度无法单靠某一张收益曲线决定。
从作者描述到策略规则,从原始数据到回测代码,再到具体交易和绩效统计,任何关键环节出现问题,都可能削弱最终结论。
而一项历史策略即使通过了这些检查,仍然需要面对样本外表现和现实执行的进一步验证。
这是未来审计可以持续深入的方向,但没有必要让每一篇文章都承担完整的验证任务。
三、第一阶段,我们也发现了自己的不足
这次回顾并不只检查被审计的项目,也重新检查了我们自己的文章。
最典型的是 003。
最初的审计已经发现交易记账问题,但后来又确认了更直接的入场前视偏差。这说明即使一篇文章完成了,也不能把已有判断永久冻结。新证据足以改变原分析时,就需要重新审视。
005 则暴露了实验表达的问题。
独立数据控制实验具有判断价值,但它与原项目精确复现之间存在明确区别。文章可以保留“修正后反而改善”的意外发现,同时必须交代数据和实现的限制,避免让读者误以为原项目已经得到完整修正验证。
视觉表达也存在类似问题。此前部分封面出现了与策略不符的标的或不准确的公式。它们虽然来自图片制作过程,却可能让读者形成错误理解。
因此,第一阶段回顾以后,我们开始把封面、标题、摘要和图表一并纳入发布前的事实检查。
这些修订并不改变系列最初的目标,却使它的研究要求变得更加明确。
审计别人,也要允许自己的结论接受审计。
四、哪些原则值得保留?
完成六篇以后,很自然会产生制定更详细计划的想法:提前安排选题、规定更新频率、设计固定文章结构,让整个栏目看起来更加规范。
但我们认为,这样做存在明显风险。
001 到 006 的内容价值,恰恰来自研究过程中遇到的具体问题。有的材料适合复现,有的只需要核查指标口径,有的必须深入代码,还有的通过对照论文公式就能形成足够可靠的判断。
如果要求每篇都完成同样的测试、展示相同数量的指标,再安排一段固定的反转与总结,研究就容易变成形式重复。
因此,第一阶段之后,我们决定保留一套相对稳定的工作规则,同时继续开放选题。
选题由具体主张的判断价值决定。发现值得核验的问题就启动,没有足够证据或继续研究的边际价值太低,就暂停。
分析深度同样由问题决定。能够精确复现就精确复现;公开资料不足时,可以进行可验证性审计;代码已足以证明一项实现错误,也不必为了文章长度额外增加大量测试。
文章结构则根据研究过程自然形成,不规定必须有多少条证据、多少项风险或多少段解释。
最终沉淀下来的原则可以概括为:
固定研究标准,保持选题开放;坚持质量约束,不设置产量目标。
这也是《量化审计工作规则 v1.0》希望保留的核心。
五、下一阶段怎么走?
第一阶段已经证明,「量化审计」可以跨越不同资产市场和研究对象,形成具有独立判断价值的内容。
加密资产、股票 ETF、跨境轮动、商品期货、开源代码和学术论文,都可能成为审计对象。
但这并不意味着未来必须轮流覆盖这些领域。
我们没有必要提前制定 007、008 或更远的选题,也没有必要要求下一篇必须比上一篇更复杂、更惊人。
真正值得继续研究的,是那些能提出清楚主张、具有可核验证据,并且可能通过审计改变读者判断的材料。
如果它证明了一项策略确实可靠,我们应该承认。如果它暴露了无法消除的证据缺口,也应该如实停止。
今后的研究还会继续遇到错误和需要修订的判断。允许更新,才有可能让这个系列长期保持可信。
写在最后
六篇文章之后,我们对「量化审计」已经有了比最初清楚得多的理解。
量化世界从来不缺漂亮的回测曲线,也不缺看起来严谨的公式、参数和绩效指标。问题在于,这些内容究竟能够支持多强的结论。
有些惊人的结果可以复现,但离稳定优势仍有距离;有些策略确实具备价值,却没有宣传中那样神奇;有些代码错误足以推翻原有验证,也有些错误的影响必须经过重新计算才能确定。
我们希望做的,就是尽可能把这些区别说清楚。
第一阶段完成了六篇文章,也留下了一套经过实际案例检验的工作规则。它仍然需要在后续研究中不断完善,但已经足够支持下一阶段继续开展。
量化审计的价值,最终取决于我们能否让证据约束结论。
下一篇从哪里开始,等下一个值得审计的问题出现再决定。
