参数优化

策略里 Params 声明的参数(如均线周期 5/20)到底用多少最好?靠拍脑袋不如让程序遍历一遍。 TBQuant 内置「策略优化」功能,自动帮你测试不同参数组合的回测表现。本章讲怎么用、怎么读结果、怎么不被「过拟合」骗到。

为什么用 Params 声明参数

回顾 TB语言类型与变量Params 段声明的参数,回测和实盘时能在属性框里直接改,无需改代码。 这正是参数优化的前提——把关键周期、阈值写成参数,优化器才能遍历它们。

Params
    Numeric FastLen(5);      // 优化器会尝试不同的 FastLen
    Numeric SlowLen(20);     // 和 SlowLen 的组合

优化入口

  • 菜单 策略 → 策略优化,打开优化工作区。
  • 选择要优化的策略、合约、周期、回测区间。
  • 对每个参数设置:最小值、最大值、步长

例如 FastLen 设 315 步长 2(取 3,5,7,…,15),SlowLen 设 1040 步长 5, 优化器会遍历所有组合(本例约 7×7=49 组),逐组跑回测,汇总绩效。

设置参数区间

要点建议
区间范围别太窄(漏掉好参数)也别太宽(跑太久、易过拟合)
步长太细则组合爆炸、跑得慢;先粗扫再细扫
参数个数尽量控制在 2~3 个,多了组合数指数增长

经验:先用大步长粗扫(如步长 5),锁定较优区间;再用小步长(如步长 1)在该区间细扫。

解读优化结果

优化完会输出一张参数组合 × 绩效指标的表/图:

  • 净利润 / 收益率:越高越好,但不能只看这个。
  • 最大回撤:关注收益好且回撤小的组合——稳健。
  • 收益回撤比(净利润/最大回撤):综合衡量「赚得多还扛得住」。
  • 参数平原 vs 参数孤峰
    • 好的结果:最优点周围一片都不错(参数平原),说明策略对参数不敏感、稳健。
    • 危险的结果:只有一个孤立尖峰、周围都很差(参数孤峰),极可能是过拟合。

防范过拟合

过拟合是参数优化的头号大敌——参数对历史调得太完美,未来却不灵。防范方法:

  1. 样本外检验:用 A 时段优化得到参数,再在 B 时段(未参与优化的数据)回测,看是否依然有效。
  2. 看参数平原:选「一片都好」的区域中心值,而不是孤峰极值。
  3. 少而稳的参数:参数越少,过拟合风险越低;能合并就合并。
  4. 跨品种验证:同一组参数在多个品种上都还行,比只在一个品种上完美更可信。
  5. 交易次数要够:参数组合只产生三五次交易,统计意义不足,再多测也不可信。

核心心态:优化是为了「排除明显差的参数」,不是为了找到「历史最完美的参数」。后者几乎一定过拟合。

优化后的下一步

  • 选定的参数拿去做样本外回测模拟盘验证。
  • 实盘用「轻仓 + 监控」,确认表现与回测大体一致后再逐步加仓。
  • 定期重新评估参数(市场风格会变),但别频繁改动——追着最近行情调参也是过拟合。

小结

策略优化遍历参数组合找表现好的配置;设置合理的区间与步长,先粗扫再细扫; 重点看收益回撤比和「参数平原」;务必做样本外检验防范过拟合。优化是辅助决策,不是寻宝。

下一步

单品种策略之外,TBQuant 还支持多品种组合与 Python 接口 TBPY: 多品种组合与TBPY