MQL5中的范畴论(第23部分):对双重指数移动平均的不同看法·综合运用
◍ 前瞻跑三年为何不如回测
把回测里挑出的最佳参数直接丢进 2023.01.01–2023.08.01 的前瞻运行,报告并不好看。这种落差通常指向两种可能:要么跟踪类的逻辑本身接近随机、不能在实盘系统里依赖,要么就是代码里控制流写错了,想法没落地。 外汇与贵金属属高风险品种,即便前瞻跑出正收益,也远谈不上过关。跟踪类依赖均线趋势朝建仓方向延伸才触发止损调整,这类信号本身稀疏,短窗口根本测不透。想认真验证,建议拉满 20 年真实 tick 数据,而非用几分钟级合成行情凑数。 本例的跟踪类是和动量振荡指标配对的,换一组输入信号表现会怎样没人知道,评估时得把这个缺口记进清单。上线前先开模拟账户,品种、账户类型尽量贴近实盘,EA 挂上图表跑;用 MetaQuotes 自带的 VPS 或第三方都行,但专家日志必须盯,确认成交与预期一致。 MQL5 策略测试器至今不能回放经济日历事件。若你的系统吃新闻,就自己记交易日志,后期才好量化每条新闻的长期权重。主观判结果时有个锚:盈利达标的系统,利润与 MAE 应正相关,持仓期与单笔利润也应正相关;后者即期望值,但测试器报告不替你算,得另行处理。
样本外回测泼了冷水
把自然变换的水平组合拿去做柱体范围(可视为波动率代理)预测,样本内跟踪未平仓头寸止损调参的结果是正向的,但切到样本外或前瞻窗口后,曲线直接不买账。这算一次挫折,但不等于该系统被判死刑——至少得拉更长的历史、换更多品种再跑一轮全样本才能下结论。 外汇与贵金属属高杠杆高风险品种,任何基于历史拟合的止损逻辑都可能在实时滑点下失效,样本外衰减是常态而非意外。 可落地的改造方向有两个:一是把这套预测输出接去不同的入场信号族(突破 / 均值回归分开关),看是否改善胜率;二是动输入数据集,比如去掉极端波动段或加入时段哑变量,制造对照测试场景。 附带的 MQL5 代码随便改,读者最好自己开 MT5 把跟踪止损系数从默认调 ±20% 跑一遍,比看别人摘要实在。
「画得少,看得清」
这套尾随止损的封装思路,核心就是把 ct_22.mqh(29.34 KB)与 TrailingCT_23.mqh(16.88 KB)两个文件直接挂进 EA,不用重写下单逻辑,只在 OnTick 里调一个 TrailingCheck 类的实例方法即可。 回测时若把跟踪步长从默认 15 点改为 8 点,欧美盘报价跳动频繁的时段,止损被触发的距离会显著缩短,但外汇与贵金属杠杆交易高风险,参数调小不代表胜率必然提升,只是更贴近价格行为本身。 真正值得做的,是开 MT5 把 ZIP 里的两个头文件拖进 Include 目录,编译一份最小 EA 验证尾随动作是否符合你的手感;少堆指标线,反而容易看出行情把止损往哪推。