自建战法与回测:改参数、看样本外

以内置战法为模板改参数;回测一定看样本外,再和随机入场比。

第 7 阶段 · 高阶高阶约 9 分钟

第六阶段讲的都是内置战法。在 K 线训练的战法页,可以以任何一条内置战法为模板新建一条自己的:先打开一份草稿,按「保存战法」才真正建好,不保存就什么都不会留下;也可以从零写一条。

能改的地方
  • 名字最多 24 个字,一句话说明最多 60 个字。
  • 进场:按形态(只列能出题的进场形态),或按指标(创 20 日或 55 日新高、快慢均线上穿、站上布林上轨),每种只有固定的几档。
  • 出场:拿满几根就走(1 到 60 根),或跌破均线、跌破近期低点、快线下穿慢线、跌破前一个低点、回到布林中轨,也是固定档位。
  • 止损、止盈的百分比:留空就是不设。
  • 从模板带来的规则只能整条换掉,里面的参数改不了。

改完的战法怎么检验?目前 App 里自建战法还不能直接回测,检验它的办法是按它练:从战法页「按这个战法练」开局,打满 8 局以后,战法页会给出它在你手上的战绩,有胜率、盈亏比、平均拿几根,以及比一直拿着多赚还是少赚,只跟你自己比。想先知道一个进场形态在历史上灵不灵,用「形态回测」:选一个进场形态和简单的出场(拿满几根、止损、止盈),在几百只股票 2010 年以来的日线上跑一遍。

示意:底色那一段是后 30% 的样本外。同一条突破规则,前 70% 的行情一路上涨,突破之后接着涨;后 30% 变成来回震荡,突破之后回落。只在前一段上挑参数,看不出后一段会失灵。样本外MA20突破:之后接着涨突破:之后回落
示意:底色那一段是后 30% 的样本外。同一条突破规则,前 70% 的行情一路上涨,突破之后接着涨;后 30% 变成来回震荡,突破之后回落。只在前一段上挑参数,看不出后一段会失灵。

形态回测的报告会把所有交易按入场日期切成两段:前 70% 的时间是样本内,后 30% 是样本外。规则是看着历史挑出来的,样本内表现好是应该的;样本外是它没见过的行情,表现才接近以后真用时的样子。样本内好、样本外崩,多半说明规则只是贴合了某一段行情。

三个进场形态的真实回测:拿满 10 根出场
每笔平均收益放量创 60 日新高站上年线20 日跌 15%
样本内(2011 到 2022 年初)+0.29%+0.27%+1.53%
样本外(2022 年初以后)−0.82%+0.19%+2.13%
同样多笔、随机挑日子入场+0.25%+0.20%+0.24%
全部交易比随机多(t 值)−0.42 个百分点(−3.4)+0.03 个百分点(0.3)+1.56 个百分点(26.0)

口径是形态回测的默认设置:A 股 400 只、2011 年起的全部信号,次日收盘成交,含佣金、印花税和滑点。三列读下来是三种情况。放量创 60 日新高在样本内每笔赚 0.29%,到了样本外每笔亏 0.82%,全部合起来还不如随机挑日子买;只看前一段,你会以为它能用。站上年线两段差不多,但比随机入场只多 0.03 个百分点、t 值 0.3,分不出来,它赚的那点钱随便挑一天买也赚得到。20 日跌 15% 两段都明显好于随机,t 值 26,是统计上站得住的那一种。

参数越多,越容易把规则调得贴合过去:均线从 20 改成 18、止损从 5% 改成 4.5%,每改一处样本内都可能好看一点,样本外却不会跟着变好。两条自律:参数能少就少,档位取整;样本外只看一次,看完不满意再回去调,样本外就变成了样本内。

一个回测年化 34.4% 的均线策略是怎么「做」出来的:参数试得越多、回测越漂亮,一行代码就能偷看未来;解药是 Walk-Forward(一段一段往后的样本外检验),和本课的样本内外是同一件事。片里用的是模拟 K 线。视频来自 B 站 UP 主「超级黑贝贝的实验室」,版权归原作者;播放器打不开时可以去 B 站看。

去战法页:以内置战法为模板新建 →

去形态回测 →

小测验 · 4 题

1. 形态回测报告里的「样本外」指什么?

  1. 按入场日期排,后 30% 时间里的那些交易
  2. 随机抽出来的 30% 交易
  3. 亏钱的那些交易
看答案

答案:A。按日历时间切:前 70% 是样本内,后 30% 是样本外。按时间切才像以后真用的情形;随机抽的话两段混着同样的行情,看不出规则换了行情还灵不灵。

2. 放量创 60 日新高样本内每笔 +0.29%、样本外 −0.82%,说明什么?

  1. 它多半只是贴合了前一段行情,换了行情就不灵
  2. 样本外的数据出了错
  3. 它是一条可靠的规则
看答案

答案:A。样本内是规则见过的行情,好看是应该的;样本外它没见过,掉成负的,说明前一段的好成绩靠的是那段行情。全部合起来它还跑输随机入场 0.42 个百分点。

3. 站上年线比随机入场多 0.03 个百分点、t 值 0.3,怎么读?

  1. 分不出来:这点钱随便挑一天买也赚得到
  2. 比随机强很多
  3. 一定亏钱
看答案

答案:A。t 值要到 2 以上才算分得出来,0.3 说明这点差距完全可能是运气。它也不亏钱,只是没有比随便买更好。

4. 为什么每笔期望为正的规则,资金曲线也可能是亏的?

  1. 同时持仓有上限,只做得到一小部分信号;复利下的波动也会吃掉收益
  2. 因为期望算错了
  3. 因为回测没算手续费
看答案

答案:A。期望是全部信号的平均,资金曲线只做得到其中一小部分,那一部分可以和全体差很多;亏 30% 要涨 43% 才回本。回测是含手续费的。

练一局

在 K线训练里学这一课:做题、记进度 →去战法页:以一条内置战法为模板,改出自己的 →

练到什么程度算练过:保存一条自己的战法。K线训练是模拟练习,不构成投资建议。

本课涉及的形态

← 上一课:经典体系(简化版):葛兰碧、威科夫、缠论下一课:读懂大盘冷热 →