最近在优化一套马丁格尔策略的EA,踩了不少坑,分享一下参数调优的入门流程,希望对刚接触的朋友有帮助。
第一步,先确定优化目标。别想着“最大化利润”,这容易过拟合。我一般用“盈利因子 * 交易次数 / 最大回撤”作为综合评分,或者直接看夏普比率。把优化周期设得长一些,至少半年以上,最好包含震荡和趋势行情。
第二步,选择参数范围。不要贪多,一次调3-5个核心参数就够。比如移动平均线周期、止损点距、加仓倍数。用遗传算法(GA)快速扫描,先粗后精。EA自带优化器里的“慢速完整算法”是瓶颈,先跑一遍GA,锁定大致区间,再手动微调。
第三步,注意过拟合陷阱。我习惯把数据分成训练集和验证集,比如用2023年1-6月数据优化,用7-12月数据验证。如果验证集结果差很多,说明参数太“聪明”了,只记住了历史。可以加一点“参数平滑”技巧,比如给每个参数加5%-10%的随机偏移,看结果是否稳定。
第四步,实盘前做稳健性测试。模拟盘跑一个月,观察资金曲线是否平滑,是否出现连续亏损。我常用蒙特卡洛模拟,扰动点差、滑点、执行延迟这些变量,看EA能否抗住极端情况。
最后,参数调优不是一劳永逸的。市场结构会变,建议每季度重新评估一次。附上我常用的一个优化脚本片段,用于批量生成参数组合并输出统计报告。希望这些能帮大家少走弯路。
第一步,先确定优化目标。别想着“最大化利润”,这容易过拟合。我一般用“盈利因子 * 交易次数 / 最大回撤”作为综合评分,或者直接看夏普比率。把优化周期设得长一些,至少半年以上,最好包含震荡和趋势行情。
第二步,选择参数范围。不要贪多,一次调3-5个核心参数就够。比如移动平均线周期、止损点距、加仓倍数。用遗传算法(GA)快速扫描,先粗后精。EA自带优化器里的“慢速完整算法”是瓶颈,先跑一遍GA,锁定大致区间,再手动微调。
第三步,注意过拟合陷阱。我习惯把数据分成训练集和验证集,比如用2023年1-6月数据优化,用7-12月数据验证。如果验证集结果差很多,说明参数太“聪明”了,只记住了历史。可以加一点“参数平滑”技巧,比如给每个参数加5%-10%的随机偏移,看结果是否稳定。
第四步,实盘前做稳健性测试。模拟盘跑一个月,观察资金曲线是否平滑,是否出现连续亏损。我常用蒙特卡洛模拟,扰动点差、滑点、执行延迟这些变量,看EA能否抗住极端情况。
最后,参数调优不是一劳永逸的。市场结构会变,建议每季度重新评估一次。附上我常用的一个优化脚本片段,用于批量生成参数组合并输出统计报告。希望这些能帮大家少走弯路。
专注交易策略编程实现,分享MQL开发技巧与代码优化方案