预注册写下判据之后,还有两件事决定它有没有用: 门是怎么定的,和你允许自己看几次。 第二件尤其反直觉 —— 反复查看数据,本身就会制造出显著性, 哪怕你一个数字都没改。
单一门槛很容易被偶然满足。我们用的是四条并联,任一不过即失败:
| 门 | 它挡住什么 |
|---|---|
| ① 幅度:毛超额 ≥ 成本线 | 挡住「有边但不够付成本」 |
| ② 显著性:z ≥ 2.0 | 挡住「幅度够但是运气」 |
| ③ 赢过空模型:三条都要赢 | 挡住「其实是行情,不是策略」 |
| ④ 稳定性:前后两半同号 | 挡住「全靠某一段撑着」 |
四条各自防一类假阳性,而且互相不能替代。 我们那条线的终读就是最好的例子:③④ 都 PASS,①② 都 FAIL。
「它赢过了三个空模型,前后两半也同号」—— 听起来像是找到了真东西。 但幅度只有 +1.56pp,而成本线是 2.25pp。
赢过随便乱下注 ≠ 赢过成本。 一个超额 1.56pp、成本 2.25pp 的策略不是「小赚」,是每一笔都在确定地亏。
「打赢了空模型」是很多人拿来自我说服的那句话, 它只证明策略不是纯噪声,不证明它能覆盖手续费。
这是整套方法里最反直觉的一条。数据就在那里,为什么不能多看几眼?
如果你每天看一眼,看到好数字就宣布成功、看到坏数字就说「样本还不够」, 那么只要跑得够久,你几乎一定会在某一天看到一个「显著」的结果 —— 即使这个策略毫无价值。你不是在检验策略,是在等一个足够极端的随机波动。
| 做法 | 实际在做什么 |
|---|---|
| 攒够 n 读一次 | 一次检验 |
| 每天看,好了就收 | 多次检验,且只报最好的一次 |
| 不好就「再等等」 | 同上,而且永远不会失败 |
最后一行是关键:一个允许「再等等」的实验,没有失败这个结果。 它只有「成功」和「还没成功」两种状态 —— 而那不是实验,是等待。
完全不看是不现实的 —— 线在跑,你总会瞄一眼。我们的规矩是分开两件事:
| 允许 | 禁止 |
|---|---|
| 随时看当前数字 | 据此改判据 |
| 看趋势、查数据质量 | 据此提前收手或延长 |
| 发现装置故障就停 | 因为数字难看就停 |
第三行的区分很重要:因为「仪器坏了」停,和因为「结果难看」停,是两回事。 前者是必须的(数据是脏的,继续跑没意义),后者是作弊。 分辨方法:问自己「如果数字很好看,我还会因为这个理由停吗?」
有一种提前读数是合法的:当剩余样本在数学上已经不可能翻盘。
我们那条线的终读就是这么来的。触发线是 n=2,500,实际读的时候 n=2,468(98.7%)。 判词里写着提前开判的理由:
另一条更早被判死的线也是同样的算法:n≈460 时超额 −1.8pp, 要过 +4pp 的门,剩余约 40 个窗得平均 +71pp,高于单窗理论上限。
只能往「提前判死」的方向用,不能往「提前宣布成功」的方向用。
因为「已经不可能通过」是一个可以严格计算的事实, 而「已经肯定会通过」永远不是 —— 后面的样本随时可能变坏。
不对称是有道理的:提前判死省下的是继续烧钱的时间, 提前宣布成功省下的是本该继续检验的时间。前者是收益,后者是风险。
门槛和样本量是配套的,不能分开定。粗略的关系:
实操上倒过来用:你希望能检测出多大的边,就需要多少样本。 我们那条线的估算是 n≈2,500 时标准误约 1.0pp —— 所以 z≥2.0 大致对应 「超额至少 2pp 才可能通过」。这和从成本算出来的 2.25pp 门大致匹配, 两条门互相校验,不是随便凑的。
一条实用推论如果你算出来需要的样本量远超你能攒到的量, 那么这条线在开始之前就该放弃 —— 你永远得不到能下结论的数据。 这个判断成本是零,但很少有人做。
门要算出来、要并联、要提前冻结; 数据只读一次。 一个允许「再等等」的实验没有失败这个结果 —— 而没有失败可能的实验,也证明不了成功。