跳转到内容
今天初八,估计大部分人都开始上班了,我这边基本也结束假期。不过到元宵节这一段时间会思考计划今年的工作重点,元宵节后才会正式上班。这段时间有任何问题随时联系我。
今天随便聊聊WF优化法,这个优化方式在正规量化圈子里比较常用。外汇ea交易中最关键的挑战是EA参数优化和策略开发中的过度拟合问题,这个问题长期存在,只能积极应对,没有一劳永逸的解决方案,WF优化法就是最有名的针对这个问题的方案。今天只聊下这优化方式的原理和流程,至于能不能掌握,适不适合自己要求看自己。
WF优化全称是Walk-Forward优化法,是一种动态参数优化技术,主要目的是为了避免过度优化和提高稳定性,其主要思路是:用历史数据片段优化参数 → 在紧随其后的未知数据上验证 → 推进时间窗口重复此过程”。通过这种分段验证机制,确保策略参数在不同市场环境中保持适应性,而非依赖单一历史区间的过度拟合参数。
以下是的WF优化的流程,细节或有不同,大概流程基本正确。
一、数据准备
- 数据来源
-
收集可靠的历史数据,通常选用高精度tick数据, 最好是专业数据服务商提供。
-
确保数据涵盖足够长的时间周期(覆盖趋势-震荡-翻转或重大事件转折点包含等),以反映不同的市场环境。针对不同策略模型,一般5-15年。
- 数据清洗
- 选择时间框架
-
根据策略需求选择合适的时间框架(如M15、 H1、H4、D1 等)。
二、划分时间窗口
- 确定训练窗口和测试窗口
- 窗口大小与步长
-
训练窗口和测试窗口的大小应根据数据量和市场特性进行调整。
-
步长(即窗口向前滚动的距离)通常设置为训练窗口大小的一定比例(如 25% 或 50%)。
- 示例划分
-
假设总数据周期为 10 年,训练窗口为 5 年,测试窗口为 1 年。
-
-
-
窗口向前滚动 1 年后,第二个训练窗口:2014-2019 年。
-
-
- 定义优化目标
-
明确优化目标(如最大化收益、最小化回撤、提高胜率等)。
-
确定需要优化的参数(如移动平均线周期、RSI 阈值等)。
- 选择优化方法
-
常用的优化方法包括网格搜索、随机搜索、遗传算法等。
-
在训练窗口上对参数进行优化,找到表现最佳的参数组合。
- 优化过程
-
在每个训练窗口上运行回测,评估不同参数组合的表现。
-
记录最优参数及其对应的绩效指标(如净利润、胜率、夏普比率等)。
四、测试与验证
- 在测试窗口上验证
- 绩效指标分析
-
关注关键绩效指标(如净利润、最大回撤、胜率、交易次数等)。
-
比较训练窗口和测试窗口的表现,判断是否存在过拟合风险。
- 结果记录
-
将每个窗口的优化参数和测试结果记录下来,便于后续分析。
五、窗口滚动与循环
- 窗口向前滚动
-
将训练窗口和测试窗口向前滚动一个步长(如 1 年)。
-
- 循环判断
-
-
如果尚未完成所有分段循环,则继续滚动窗口并重复优化过程。
六、结果分析
- 拼接所有测试结果
-
将所有测试窗口的结果拼接起来,形成完整的回测报告。
-
- 参数稳定性分析
-
-
如果某些参数在多个窗口中表现稳定,则优先选择这些参数(核心参数选中标准80%以上适应度)。
- 选择最终参数集
-
根据回测结果和参数稳定性分析,选择表现最佳且稳定的参数组合。
七、实盘应用与监控
- 部署到实盘交易
-
-
确保交易环境(如杠杆、点差、滑点延迟等)与回测环境一致。
- 监控体系
- 设置熔断机制:单日亏损超5%或周回撤超15%时暂停交易。
- 再优化策略定期再优化:每3-6个月重新运行WFA,避免参数失效。
触发式再优化:当滚动夏普比率低于阈值(如<0.5)时触发优化。