Senzoukria · 术语表

前向测试

前向测试把一条被冻结下来的交易规则,跑在这条规则设计完成之后才到来的市场数据上,通常在一个模拟或纸面账户上,而在投入任何资金之前进行。它是唯一一种任何设计决定都不可能看见过的样本外证据,因为在这条规则被写下来的时候,那些数据还不存在。

更新于 2026 年 9 月首次发布:2026年10月9日

本页目录
  1. 前向测试与历史样本外
  2. 比较什么,以及等多久
  3. 在 Senzoukria 里
  4. 相关内容
  5. 同一栏目
  6. 其他语言版本
  7. 常见问题

前向测试与历史样本外

一段历史样本外期间,原则上是被预留出来的。而实际上它常常已经被看过、画过或者讨论过,于是各种决定渗了进去。前向测试把这种可能性拿掉了:这条规则、它的参数、工具和成本在某一个日期被写下来,而只有那个日期之后的数据才算数。这段时期常被叫作孵化。

它还检验了回测检验不了的东西:实时的数据路径、决策的延迟、把每一个信号都执行掉的纪律,以及实际发生的滑点。

比较什么,以及等多久

把前向结果的分布和回测作比较,而不是比较单独一个数字。假设回测显示平均每笔 +25 美元、标准差 180。在 40 笔前向交易之后,这个平均值的标准误是 180 ÷ √40 ≈ 28.5。那么一个 −5 的前向平均值,大约比回测低一个标准误,而这还不是失败的证据。同样的差额如果出现在 400 笔之后、标准误接近 9 时,那就是了。

事先把孵化的长度和否决的标准定下来,比如一个交易笔数、以及一个低于某个阈值的平均值。否则停止的决定就会在最近那段连亏上被作出。

  • 把每一个信号都记下来,包括那些没有被执行的,并带上原因。
  • 把实际发生的滑点和手续费,和回测的假设作比较。
  • 检查前向的交易频率和回测是否相符;一个很大的差异提示数据或规则不匹配。

在 Senzoukria 里

有三个环境可以在没有已出资账户的情况下承载一次前向测试。自动策略面板把一个保存好的策略脚本跑在本机模拟账户上,每一根收好的 K 线决策一次,而它的源码排除了任何通往经纪商的路径;演示账户自己的限制,比如一个最大日亏损和一个合约上限,会在每一次入场之前生效。一个跑在纸面交易平台上的经纪商纸面账户,接受来自下单票据的真实委托并给出模拟成交。而自动驾驶虽然可以把委托发到一个经纪商账户,但在有人明确地给它上膛之前它什么都不做,并且运行在它自己的最大合约数和最大日亏损之下。随后交易日志保存这些交易,以便和回测的统计作比较。

同一栏目

其他语言版本

常见问题

一次前向测试该持续多久?
长到足以收集一个能把回测平均值和零、或者和一个明显更差的值区分开来的交易笔数。对低频策略来说那可能意味着几个月。在开始之前就把笔数或时长定下来。
纸面交易算是一次有效的前向测试吗?
对这条规则的信号、以及对交易者的执行纪律来说,它是有效的。它的成交是模拟的,所以在一个已出资账户上实际发生的滑点可能不同,对那些挂在转折点上的限价单、以及快市里的止损来说尤其如此。
NEXT

继续阅读