测试交易货币对篮子时出现的形态。第三部分·进阶篇
◍ 组合指标突破为何比单币稀疏
父本 WPR 的超买线在 20%、超卖线在 80%;换成组合 WPR 后值域变成 -100% 到 +100%,对应超买 +60%、超卖 -60%。若突破次数和先前结果量级接近,就暂且认为这两条线位置不用动。 实测用 testDistance.mq5 挂在 EURJPY,再叠 testWPRjpy.mq5(JPY 篮子)、testWPReur.mq5(EUR 篮子)与 testIndexZig-Zag1.mq5。后者把 ±100% 切成 0–99 号间隔,统计每个间隔的突破次数并落盘,这一步才是本阶段核心产出。 组合指标要破超买/超卖,必须同时发生两件独立事:基准币超卖且报价币超买,或反过来。也就是一支货币竭弱势、另一支竭强势,这种巧合天然不多,所以突破数相较单币显著变薄。 全历史回测的汇总里,EURJPY 在 H1 的 -60%/60% 突破为 39/46,EURUSD 为 31/50;而单看 USD 篮子 H1 是 80/69,JPY 篮子是 79/62。H4 与 D1 上两货币对(2/3、19/19 等)反倒没如预期变少,样本仅两个货币对,不足以改线位。 能确定的只有一点:D1 上的入场信号数量依旧可以忽略,外汇与贵金属这类高杠杆品种里,低频信号不等于高胜率,真要用的话先开 MT5 把 Files.zip 里的分 timeframe 计数翻一遍。
放宽阈值后的篮子 WPR 回测实况
沿用此前验证过的类似形态框架,我们把 testEAbasket2.mq5 做了轻量改动,让它调用 testDistance.mq5 指标,并在已有持仓时仍允许每次形态突破重复入场。为提升样本量,形态识别阈值被整体放松:SELL1LIMIT 从 65% 降到 50%,SELL2FROM/TO 改为 40%/20%,买入侧对称下移到 -50% / -40% / -20%。 初版在 EURUSD 上一年无甚交易,AUDUSD 与 USDJPY 更是零成交——两支货币一支超买、一支超卖的共振本身稀少。放宽后 H1 上终于跑出可看的结果:EURUSD 盈 48.28、GBPUSD 盈 49.34、USDCHF 盈 29.82,但 AUDUSD、NZDUSD、USDCAD、USDJPY 在 H1 全线小幅亏损(约 -20 至 -27 点),H4 除 USDJPY 微利 2.46 外多数回撤。D1 几乎无交易故未入表。 这组数字说明裸形态+单规则离场在外汇高风险品种上仅 H1 有一定倾向性盈利,远未到可实盘程度。下一步显然要给 EA 加过滤与分层离场。 组合 WPR 的计算从算术均值换成了几何均值,下面这段就是指标主计算核心,注意 bDirect 决定是乘原值还是平移 100 后再乘: double m_dParam = 0.143; // 1/LG,几何均值幂次 double GetValue(int shift) // 按偏移量算组合值 { double dBuf[1]; double res=0.0; res = 1; // 几何累乘初值 for (int i = 0; i < LG; i++) { // 遍历篮子内各货币指标句柄 CopyBuffer(h[i],0,shift,1,dBuf); // 取单币 WPR 缓冲 if (bDirect[i]) res *= dBuf[0]; // 正向币直接乘 else res *= dBuf[0] + 100; // 反向币平移后乘 } res = -MathPow (MathAbs(res), m_dParam); // 取几何均值并取负 return (NormalizeDouble((res + 50) * 2, _Digits) ); // 归一化到常规 WPR 区间 }
class="type">class="kw">double m_dParam = class="num">0.143; class=class="str">"cmt">// class="num">1/LG class="type">class="kw">double GetValue(class="type">int shift) { class="type">class="kw">double dBuf[class="num">1]; class="type">class="kw">double res=class="num">0.0; res = class="num">1; for (class="type">int i = class="num">0; i < LG; i++) { CopyBuffer(h[i],class="num">0,shift,class="num">1,dBuf); if (bDirect[i]) res *= dBuf[class="num">0]; else res *= dBuf[class="num">0] + class="num">100; } res = -MathPow(MathAbs(res), m_dParam); class="kw">return (NormalizeDouble((res + class="num">50) * class="num">2, _Digits) ); }
「H4 上形态太稀怎么补」
H1 与 H4 的交易数量差首先得正视:H4 每根蜡烛覆盖 H1 四倍时间,蜡烛数少四倍,交易数也理应少约四倍。实测所有货币对都是 H4 交易数少于 H1,H1 本身单量就少,想在 H4 按原方法做就只能把形态“扩”出去。 扩法很直接:SELL1LIMIT 拉到 45%、SELL2FROM 40%、SELL2TO 10%;BUY 侧对称到 -45% / -40% / -10%,其余利润线不动。拿 GBPUSD(H1 盈利)和 AUDUSD(H1 亏损)补测,结果挂在 result-1.zip。扩形态确实多了交易,但盈亏遗传自 H1——GBPUSD 还是赚、AUDUSD 还是亏。两次扩展后,原本靠超卖超买线突破识别的形态已经很难说还在“突破”了,高于 H1 的周期上硬找这种形态,安全边际可能并不够。 回撤在 EURUSD 的测试截图里能看到:订单得漂到更温和的位置才稳住利润。两个毛病绕不开。一是离场规则单薄——组合 WPR 破零轴(基准与报价货币平衡)就退,显然不够,需要别的离场定义但又不想引外部干扰。二是形态识别被自己玩宽了:超卖超买等级抬到 45-40%,自动抓到的“形态”可能根本没真突破,只在一侧货币破线、或两侧在边界附近晃没穿过去,趋势接着走不反转,扩得越宽越像噪音,回撤就是这么来的。外汇和贵金属这种高杠杆品种,这类识别宽松带来的回撤放大得格外小心。
◍ 别在高于 H1 的框架里硬找
这个形态在 D1 上基本不出现,H4 也极少见,实测高于 H1 的时段里几乎抓不到有效样本。个人不建议在 H1 以上周期专门去等它,浪费盯盘精力。 想多交易可以放松对形态规范的要求来“扩样”,但一旦放得太宽,它就不再代表真实的超买/超卖突破,信号质量会塌。扩展形态要克制,别为了数量牺牲辨识度。 回测里货币对没出现严重亏损,部分还跑了正收益;对比同系列之前 H1 全是赤字的测试,这形态算是有点苗头。配合 trailing stop 这类标准手法,它有可能挤出稳定小利,但外汇/贵金属高杠杆,仍是高风险。 它出现频率太低,定位上该当辅助确认,而不是单独入场依据。后续我们会接着拆怎么把它嵌进别的信号里。
随文打包的验证素材
这套价格行为研究不是空谈,作者把可复现的素材全打进了几个压缩包。test.zip 体积 8.36 KB,是用来判定「可能交易次数」的独立工具;Files.zip 11.54 KB,存的是若干潜在入场时机的判定结果,方便你对照自己的图表挨个验证。 EA 层面的东西在 test2.zip(16.62 KB),它直接跑策略测试,你丢进 MT5 的 Experts 目录就能调。两份 HTML 报告才是重头:result.zip 有 832.8 KB,是形态测试的完整输出;result-1.ZIP 127.29 KB,补的是 H4 周期上的额外回测。外汇和贵金属波动剧烈、杠杆风险高,报告里的胜率只是历史样本,实盘前务必用小资金过一遍。 下载后别急着改参数。先开 MT5 把 result.zip 的报告在浏览器里铺开,看形态触发点和你手绘的支撑阻力是否吻合,再决定要不要把 test2.zip 的 EA 挂上模拟盘。