同一份参数,我跑了四次:净盈利差 2.2 倍,回撤从 21.5% 到 60.8%(附完整测试方法)

| 发表于 昨天 19:57 | 显示全部楼层 |复制链接
最后由 AlronQ 于 2026-9-3 21:07 编辑

(本文为本人原创,同稿同时发布在两个同类型技术社区,均为本人账号。正文记录的是我自己这段时间的测试过程与方法。全文不含任何联系方式、不含任何外部链接、不附带任何程序文件。)

【起因】
最近把一批开源交易程序拿 MT5 策略测试器重跑了一遍,只想验证一件事:一张回测截图到底能证明什么。
先说结论:我原来以为它能证明“这策略行不行”,跑完发现它只能证明“这一次跑成功了”。

【被测的东西】
一款 MIT 许可的开源网格 EA(程序名与作者名从略;本帖不附带、不转发任何源文件,也请勿在评论区索要)。
逻辑是 Nadaraya-Watson 包络 + RSI + ATR 止损位指标组合,多品种、带网格加仓,另有一个 Reverse(反转信号)开关。
我只做了一处修改:原版每次 iCustom 都新建指标句柄却不释放,跑久了信号会静默失效;我改成 OnInit 建、OnDeinit 释放。策略逻辑一行没动。

【测试条件,六组全部一致】
品种 XAUUSD 图表 / 周期 Daily / 区间 2022.01.01–2026.09.03 / 入金 100,000 USD / 杠杆 1:500
建模方式:基于真实分时的每笔分时;参数优化全部关闭。
下面所有数字都取自测试器「结果」页的官方值,不是我自己另算的。

【第一件:同一份参数,重复四次,四个答案】
只留黄金(Reverse=true),其余默认,同一份 .set,连点四次“开始”:

第 6 次:净盈利 +46,152.79,最大净值回撤未截图,采收率、盈利因子未记录
第 10 次:净盈利 +20,754.53,最大净值回撤 60.84%,采收率 0.33,盈利因子 1.57,最大连亏 5 笔 −22,070.40
第 11 次:净盈利 +42,340.73,最大净值回撤 21.49%,采收率 1.88,盈利因子 2.55,最大连亏 3 笔 −6,028.97
第 12 次:净盈利 +46,149.27,最大净值回撤 21.53%,采收率 2.00,盈利因子 2.68,最大连亏 3 笔 −6,151.26

净盈利差 2.2 倍,回撤差 2.8 倍,采收率差 6 倍,连成交笔数都不一样(134 / 156 / 158 / 158)。
卡1_同一份参数四次结果.png

图4_第10次结果页_净利20754_回撤60.84.png

图5_第11次结果页_净利42340_回撤21.49.png

图6_第12次结果页_净利46149_回撤21.53.png


为什么?日志里有两行:
Tester   testing with execution delay 1000 milliseconds
Ticks    XAUUSD : real ticks absent for 175 minutes of 1650646 total minute bars, every tick generation used
Ticks    XAUUSD : real ticks discarded for 9333 minutes ... every tick generation used
合计约 0.58% 的分钟区间不是真实成交分时,由程序生成;再叠加带随机成分的执行延迟。网格类结构对成交路径极其敏感,所以结果是被路径主导,而不是被策略优势主导。
卡3_日志两行随机性来源.png


【第二件:只关掉一个开关,从赚 46% 变成账户清零】
同品种、同周期、同入金、同区间、同参数,唯一变量是 Reverse:

C1:Reverse=true,净盈利 +46,152.79,胜率 76.5%,期末 146,153
D:Reverse=false,巨亏,胜率 48.2%,期末 −519.75(穿仓,模拟撮合下的结果)

多币种那一对也成立:基线(5 币种 + 反转)+88.7%,A 组(5 币种,只关反转)期末 −75.60。
也就是说,作者原始的入场信号在这四年半里方向是错的,是“反着做”把它翻正的。利润 100% 依附在一个开关上,而不是依附在策略优势上。
这一组不受随机延迟影响,跑多少次方向都一样——这也是我认为最扎实的一条。
卡2_单变量对照_关反转即清零.png


【第三件:只插一根保险丝,+88.7% 变成 −6.0%】
只把 EquityDrawdownLimit 从 0 改成 20:

基线(熔断关):期末 188,651,+88.7%,峰值同时持仓 33.43 手
B 组(熔断 20%):期末 93,972,−6.0%,峰值同时持仓 13.22 手

说明基线的收益里有相当一部分来自“深度浮亏扛住后回本”。把扛单这个动作禁掉,策略露出的真实水平是微亏。
附带一个坑:B 组实际回撤到 39.6% 才停,说明那条 20% 的线根本没在 20% 生效——因为 CheckForEquity() 挂在默认 120 秒一次的定时器上,跳空和急拉会直接冲过阈值。你以为装的是 20% 的保险,实际是 40% 的保险。

【第四件:+88.7% 中途发生了什么】
基线组在 2022.09.28 前后,净值一度从峰值跌掉约 86%(这仍然只是我用成交时点采样估出来的下限),然后靠网格扛回来变成 +88.7%。同样的参数换个起始日期、少一次回抽,结局就是爆仓。所以 +88.7% 是“活下来了”,不是“赚到了”。

【顺便公开我自己犯过的两次错】
1)我最早用“只在成交时点采样的浮亏”估算最大回撤,把 C1 估成 15.8%,而官方净值回撤是 60.84%——低估了 4 倍。此后我一律只报「结果」页的数。
2)我第二次只凭第 10 次那一个样本就判定这策略不合格,那也是错的,它是离群值;按三次主流结果看,盈利因子 2.6、夏普 1.1、最大连亏 3 笔,账面是“能打”的。
但把四次放在一起看,问题恰恰是:你没法对任何人承诺其中任何一个数字。你说 +46%,别人自己跑出 +20%;你说回撤 21%,别人跑出 60.8%。

【我用来问任何晒回测的人的五个问题】
1. 同一份参数跑了几次?给我看最差那次,不是最好那次。
2. 有没有单变量对照?把某个开关关掉,还剩多少收益?
3. 回撤是“最大净值回撤(含浮亏)”,还是“已实现盈亏曲线的回撤”?两者差一个量级。
4. 把风控插上,收益还剩几分?
5. 别只看胜率高低,看胜率结构:这个 EA 平均盈利 1,267~1,292,平均亏损 1,186~1,245,比值约 1.05,而胜率有 70% 以上——赢多输少,但单均亏损接近单均盈利。这是网格的固有指纹,四次运行都成立,风险全藏在连亏那几笔里。

【复现要点,想自己跑的看这里】
指标要先编译成 ex5,EA 用 resource 嵌它;导航器只显示已编译的 ex5,只放 mq5 不会出现在列表里。
测试器设置:XAUUSD / Daily / 2022.01.01–2026.09.03 / 100,000 USD / 1:500 / 基于真实分时的每笔分时 / 关掉所有优化。
我用的关键参数值(按功能描述,不指向具体程序):Symbols=XAUUSD、Reverse=true、TPCoef=1、Risk=1.3、IgnoreTP=true、Trail=true、TrailingStopLevel=50、Grid=true、GridVolMult=1.1、GridMaxLvl=20、EquityDrawdownLimit=0、TimerInterval=120、Slippage=30、MagicNumber=1002。
D 组:只把 Reverse 改成 false,其他一个都不动。
日志文件含 NUL 空字节,记事本打开是糊的,先去掉空字节再搜;按 MetaTester 5 started 切分多次会话;注意 initial deposit 行排在 testing of 行之前,切段很容易把两组数据张冠李戴;final balance 可能是负数,正则要容得下负号(我就漏过一次,把“跑完但穿仓”误判成“没跑完”)。
再推荐一个对照:把执行模式改成“即时执行”,其余全不动,跑两次。如果两次结果完全一致,就证明上面那 2.2 倍差异确实来自执行延迟与分时生成的随机项。这一步我还没做完,做完再补。

【立场】
本帖不提供、不转发任何 EA 文件,不推广任何产品或服务,不承诺任何数字。作者没有骗人,代码全公开、许可也允许改,我这篇针对的是“拿单张截图当证据”这件事,不是针对作者,也不针对任何具体的人或平台。
另有一处缺陷我没能修掉:error 4756 / checkForTrail,移动止损的改单请求被拒,基线 153 次、B 组 154 次,自己复现时会遇到,先说一声。

【免责】
以上全部数字来自策略测试器的模拟撮合,不含真实滑点、流动性与经纪商环境差异;历史回测与样本内表现不代表未来收益;网格、加仓类程序可能造成本金全部损失。本帖为编程与测试记录,不构成任何投资建议,不推荐任何交易平台,也不提供任何开户、资金、代挂或带单服务。

(文中三张汇总图为自制数据卡,另三张是测试器「结果」页原图,数字可逐行对照。)
卡1_同一份参数四次结果.png
卡2_单变量对照_关反转即清零.png
卡3_日志两行随机性来源.png
image_1788369831330_g569u4h.png
image_1788370390402_5w1jaje.png
image_1788370390402_wofcsa3.png
最近访问 头像模式
举报

评论 使用道具

发新帖
EA交易
您需要登录后才可以评论 登录 | 立即注册

AlronQ

AlronQ D

量化交易技术爱好者,专注 MT4/MT5 的 EA 开发与策略研究。
主要方向:趋势跟踪、网格、套期保值策略的回测

Fast跟单EA