模型编写与回测

模型写出来后先别急着上实盘——先做历史回测,看它在过去到底能不能赚钱、胜率多高、回撤多大。 本章讲两类模型的编写规则、回测怎么做、报告怎么看。

一、从指标到模型的三步

把一个指标变成可回测的模型,分三步:

  1. 公式中加入交易指令——把 BK/SP/SK/BP 等加到条件后面(见 信号执行函数)。
  2. 设置信号计算起始时间——在主 K 线图右键 → 设置信号计算起止时间。注意它和数据起始时间不同: 数据起始是合约挂牌时间,信号计算起始是你决定开始交易的时间。
  3. 设置资金参数——右键临时设置初始资金/开仓手数;量化菜单里设置保证金和手续费。

二、收盘价模型:K 线走完下单

当一根 K 线走完,以最后一笔价确认信号并下单,这就是收盘价模型。它信号稳定不闪烁, 应用最广,长线短线都能用,可在月份合约、品种加权、主连上回测。

编写规则

  • 模型中不含 CHECKSIG / CHECKSIG_MIN / MULTSIG / MULTSIG_MIN 等信号频率函数,即为收盘价模型。
  • 它和「一开一平/加减仓」是两回事,两种信号机制都能写成收盘价模型。
// 收盘价模型示例:一开一平的双均线
MA5  := MA(CLOSE, 5);
MA20 := MA(CLOSE, 20);
CROSS(MA5, MA20), BK;
CROSS(MA20, MA5), SP;
AUTOFILTER;

三、指令价模型:出信号即时下单

写了 CHECKSIGMULTSIG 等运行优化函数的模型,K 线还没走完就能出信号、抓更好入场点, 用于短线交易。代价是信号可能在 K 线走完前消失(回测需逐笔 TICK)。

编写规则

  1. 模型中必须写入 CHECKSIG / CHECKSIG_MIN / MULTSIG / MULTSIG_MIN 指定信号执行方式。
  2. 这几个函数不能同时出现在同一个模型中。

运行优化函数本质不属于策略本身,短线模型必需,但长线模型意义不大——研究时别过度依赖它。

四、加减仓模型

不写 AUTOFILTER 的模型支持连续加仓、分批平仓,用于资金管理:

  • 连续同方向指令不被过滤,开仓指令要带手数(如 BK(1))。
  • 开仓后允许继续同方向开仓,无须一开一平配对。

五、跑回测

入口:软件左侧【回测】,把模型加载到 K 线图,点上方按钮查看回测报告(或右键 → 模型回测报告)。

回测前先确认几项:

  • 时间段:选要回测的历史区间(建议覆盖多种行情)。
  • 合约:月份合约用长期数据,或用品种加权/主连验证长期有效性。
  • 资金参数:初始资金、保证金、手续费——别忘了设手续费,否则结果偏乐观。

WT8 提供海量历史数据,能灵活选起止时间,回测有真实参考意义。回测图上还可勾选 显示权益曲线,直观看资金曲线变化。

六、看懂回测报告

报告里的关键指标:

指标含义怎么看
收益率 / 年化区间/年化回报和基准(如商品指数)比
胜率盈利交易占比高不一定好,还要看盈亏比
盈亏比平均盈利 ÷ 平均亏损>1 才有正期望
最大回撤净值从高点回撤的最大幅度越小越稳,关系能否拿住
交易次数信号总数太少不显著,太多可能过拟合

想看细节,点信号明细——它以表格记录每笔交易的时间、价格、盈亏,最大回撤发生在哪根 K 线都能查到。

七、常见陷阱

  1. 过拟合:参数和历史贴太紧,未来大概率不灵,换时间段(样本外)再测更可信。
  2. 忽略成本:没算手续费/滑点,频繁交易的策略会被成本吃光利润。
  3. 数据选错:主连/加权合约的回测和月份合约实盘有差异,要理解两者的回测口径。
  4. 未来函数:用了事后修正的信号,历史完美实盘失效,回测前先确认公式。

小结

  • 收盘价模型(K 线走完下单)信号稳定、最常用;指令价模型盘中出信号、适合短线。
  • 加减仓模型不写 AUTOFILTER,支持连续加仓与资金管理。
  • 回测看收益率/胜率/盈亏比/最大回撤,警惕过拟合和成本。

下一步

回测满意了,下一步做参数寻优。看 参数优化,用枚举/遗传算法找到更适合当前行情的参数。