可检验假设

可检验假设(testable hypothesis)是一个写得足够精确、以至于数据有可能推翻它的交易想法:它写明品种、时段、K 线构造方式、触发条件、之后要测量什么,以及什么样的结果算作被否定——所有这些都在测试开始之前定好。

Senzoukria · 术语表 · 更新于 2026 年 9 月


什么样的陈述才算可检验

「订单流强的时候买入」无法检验,因为两个人会把它实现成两个样子,而且谁都没法被证明是错的。「在 MNQ、常规时段、500 笔 K 线上,当已收线 K 线的 delta 超过某个写明的阈值时,测量下一根 K 线的收益率,并与不满足该条件的 K 线作对照」则可以检验。后面这个版本可以由不同的人各跑一遍,得出同一张表。

量化交易入门指南把第一项任务定义为:不是写代码,而是决定什么样的证据会让你放弃这个想法。一个无论出现什么结果都能活下来的假设,不是假设,而是偏好。

必须事先固定的字段

  • 品种与合约;如果窗口跨越到期日,还要写明换月规则。
  • 时段与时区,好让 09:31 这根 K 线每天都是同一个东西。
  • K 线构造方式:时间、笔数、成交量、区间还是 delta K 线,以及确切的大小。
  • 触发条件,包括回看长度和阈值,并且只能使用该根 K 线收盘时已可得的数据。
  • 所测量的结果,例如下一根 K 线收益率的分布,以及作为对照的那一组。
  • 测试排除了哪些数据,以及为什么排除。
  • 否定标准:什么样的结果意味着这个想法被放弃,而不是被继续微调。

假设、规则、策略

这三者经常被混为一谈。假设是关于数据的一个断言。规则是由它推导出的确定性流程:入场时机、止损、目标位、仓位大小和时段收尾。策略则是规则加上它的执行假设、成本和账户约束。「某个 delta 条件是否改变了下一根 K 线的分布」是一个研究问题,也就是一个假设;它还不是入场建议,也不应该被当成入场建议去测试。

在 Senzoukria 里

桌面端没有一个叫「假设」的界面;这份纪律体现在工具怎么用上。脚本编辑器是用 JavaScript 或 Python 把规则写下来并做版本管理的地方;「在样本数据上运行」按钮会在样本 K 线上执行草稿以抓出错误,而只有在写明的历史区间上回测过的已保存版本才算一次测试。随后,自动回测面板会连同成本一起报告这次运行,它的 Gauntlet 区块以「这个优势是真的吗?」为标题,列出向前滚动、置换检验、回测过拟合概率等各项核查。被否定的决定则记在交易日志里。

常见错误

  • 先看到启发自己的那个图形,再回头写假设,并挑一个刚好贴合这个例子的阈值。
  • 用后来才可得的信息去标注价位,从而引入未来函数。
  • 每次测试结果不如意就改一次规则,这等于把测试集变成了训练集。
  • 只记录最后留下来的那个版本,不记录一共试过多少个变体。

其他语言版本

常见问题

可检验假设一定要写成代码吗?
不一定。它需要的是没有歧义。代码之所以有帮助,是因为它迫使每个字段都被写明,也让测试可以重复;但一条写下来的规则加一张已收线 K 线的表格,也足以检验一个简单的断言。当同一套流程需要在多个时期、多个版本上反复执行时,代码才真正变得有价值。
什么是否定标准,为什么要先定下来?
它是那个会让你放弃这个想法的结果,并且必须在测试之前写明:例如,扣掉成本之后,条件组和对照组之间没有可测量的差异。先定下来,是为了防止数字出来之后再重新定义什么算成功。
订单流或 GEX 的观测可以成为假设的一部分吗?
可以,只要保证这些输入在做决策的那一刻确实已可得。一条买卖 delta 规则需要带有明确方向分类的成交量;一条 GEX 规则需要当天带时间戳的期权观测值,而不是把今天的分布替换进过去。

继续阅读