参数优化

一个模型用默认参数跑出来效果一般,往往不是策略不行,而是参数没调好。 WT8 内置参数优化和敏感性测试,让计算机在指定范围内帮你筛最优参数。但寻优也是双刃剑—— 调过头就是过拟合,本章讲怎么用、怎么避坑。

一、参数化的前提:把常数改成参数

优化前,模型里的周期、阈值等要先写成可调参数(在公式管理器参数区定义):

// 参数区定义:N1(缺省 5,最小 1,最大 100),N2(缺省 20)
MA5  := MA(CLOSE, N1);
MA20 := MA(CLOSE, N2);
CROSS(MA5, MA20), BK;
CROSS(MA20, MA5), SP;
AUTOFILTER;

这样 N1/N2 就成了可被优化引擎遍历的变量,而不是写死的 5 和 20。

二、参数优化:枚举与遗传

加载模型回测后,在 K 线图右键选【参数优化】。

枚举

点【枚举】按钮,按你设置的步长把所有参数排列组合都算一遍,找到最优结果。

  • 优点:穷举,结果可靠。
  • 缺点:参数多或范围大时,计算量极大、耗时很长。

遗传

点【遗传】按钮,快速测算多个随机参数组合,筛出有潜力的组合再迭代,逼近最佳参数。

  • 优点:参数多/范围大时远比枚举快。
  • 缺点:是启发式搜索,不保证全局最优。

经验:参数少、范围小用枚举;参数多、范围大用遗传,再对遗传结果附近做小范围枚举精修。

三、敏感性测试:看模型稳不稳

参数稍微一动收益就大起大落的模型,是不稳定的。加载模型回测后点上方敏感性测试按钮 (或右键 → 敏感性测试)。

  • 以滑点、手续费、参数等为横坐标
  • 以盈亏比、收益率、胜率等为纵坐标
  • 用线性形态直观展现参数变化对结果的影响。

理想的模型:在最优参数附近有一片平稳的高收益区域(参数微调效果不大变), 而不是一个孤立的尖峰(换个参数就崩)。

四、避免过拟合

参数优化最容易踩的坑就是过拟合——参数和历史贴得完美,未来却失灵。防范办法:

  1. 样本外检验:用 A 段历史调参,再用 B 段(调参时没见过的数据)验证,B 段也得稳。
  2. 看平稳区域而非峰值:选参数平滑带里的值,别选收益最高的那一个孤立点。
  3. 参数别太多:可调参数越多越容易过拟合,策略逻辑本身才是根本。
  4. 参数要有经济含义:比如均线周期对应交易周期,而不是纯靠数字拼凑出高收益。
  5. 定期重检:市场变了参数可能失效,一段时间表现好不代表永远好,要定期回测重调。

运行优化函数(CHECKSIG 等)也属于「执行层」参数,研究策略时别过度依赖,否则会干扰对策略本身的判断。

五、正确看待优化结果

  • 参数优化是找稳健参数的工具,不是「证明一定赚钱」的保证。
  • 一组好结果 + 平稳的敏感性图 + 样本外稳健,才值得小仓位试水。
  • 优化完的模型要先在模拟模组跑一段,再上实盘。

小结

  • 把常数改成参数,用枚举(穷举)或遗传(随机迭代)寻优。
  • 用敏感性测试找平稳的高收益区域,避开孤立尖峰。
  • 样本外检验、参数有经济含义,是避免过拟合的关键。

下一步

模型回测和优化都满意了,最后一步是装入模组、自动运行。看 模组实盘与移仓,从模拟盘过渡到实盘。