模型编写与回测
模型写出来后先别急着上实盘——先做历史回测,看它在过去到底能不能赚钱、胜率多高、回撤多大。 本章讲两类模型的编写规则、回测怎么做、报告怎么看。
一、从指标到模型的三步
把一个指标变成可回测的模型,分三步:
- 公式中加入交易指令——把
BK/SP/SK/BP等加到条件后面(见 信号执行函数)。 - 设置信号计算起始时间——在主 K 线图右键 → 设置信号计算起止时间。注意它和数据起始时间不同: 数据起始是合约挂牌时间,信号计算起始是你决定开始交易的时间。
- 设置资金参数——右键临时设置初始资金/开仓手数;量化菜单里设置保证金和手续费。
二、收盘价模型: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;
三、指令价模型:出信号即时下单
写了 CHECKSIG、MULTSIG 等运行优化函数的模型,K 线还没走完就能出信号、抓更好入场点,
用于短线交易。代价是信号可能在 K 线走完前消失(回测需逐笔 TICK)。
编写规则
- 模型中必须写入
CHECKSIG / CHECKSIG_MIN / MULTSIG / MULTSIG_MIN指定信号执行方式。 - 这几个函数不能同时出现在同一个模型中。
运行优化函数本质不属于策略本身,短线模型必需,但长线模型意义不大——研究时别过度依赖它。
四、加减仓模型
不写 AUTOFILTER 的模型支持连续加仓、分批平仓,用于资金管理:
- 连续同方向指令不被过滤,开仓指令要带手数(如
BK(1))。 - 开仓后允许继续同方向开仓,无须一开一平配对。
五、跑回测
入口:软件左侧【回测】,把模型加载到 K 线图,点上方按钮查看回测报告(或右键 → 模型回测报告)。
回测前先确认几项:
- 时间段:选要回测的历史区间(建议覆盖多种行情)。
- 合约:月份合约用长期数据,或用品种加权/主连验证长期有效性。
- 资金参数:初始资金、保证金、手续费——别忘了设手续费,否则结果偏乐观。
WT8 提供海量历史数据,能灵活选起止时间,回测有真实参考意义。回测图上还可勾选 显示权益曲线,直观看资金曲线变化。
六、看懂回测报告
报告里的关键指标:
| 指标 | 含义 | 怎么看 |
|---|---|---|
| 收益率 / 年化 | 区间/年化回报 | 和基准(如商品指数)比 |
| 胜率 | 盈利交易占比 | 高不一定好,还要看盈亏比 |
| 盈亏比 | 平均盈利 ÷ 平均亏损 | >1 才有正期望 |
| 最大回撤 | 净值从高点回撤的最大幅度 | 越小越稳,关系能否拿住 |
| 交易次数 | 信号总数 | 太少不显著,太多可能过拟合 |
想看细节,点信号明细——它以表格记录每笔交易的时间、价格、盈亏,最大回撤发生在哪根 K 线都能查到。
七、常见陷阱
- 过拟合:参数和历史贴太紧,未来大概率不灵,换时间段(样本外)再测更可信。
- 忽略成本:没算手续费/滑点,频繁交易的策略会被成本吃光利润。
- 数据选错:主连/加权合约的回测和月份合约实盘有差异,要理解两者的回测口径。
- 未来函数:用了事后修正的信号,历史完美实盘失效,回测前先确认公式。
小结
- 收盘价模型(K 线走完下单)信号稳定、最常用;指令价模型盘中出信号、适合短线。
- 加减仓模型不写
AUTOFILTER,支持连续加仓与资金管理。 - 回测看收益率/胜率/盈亏比/最大回撤,警惕过拟合和成本。
下一步
回测满意了,下一步做参数寻优。看 参数优化,用枚举/遗传算法找到更适合当前行情的参数。