您应当知道的 MQL5 向导技术(第 52 部分):加速器振荡器·综合运用
📊

您应当知道的 MQL5 向导技术(第 52 部分):加速器振荡器·综合运用

(3/3)· 强劲趋势后的色变与极端价平坦 AC,两种高概率形态帮你过滤假信号

案例拆解 第 3/3 篇

很多手动交易者把加速器振荡器当成另一个 MACD 直方图,只看零轴上下就动手,结果在横盘里被反复打脸。AC 真正的价值在它衍生的具体形态,而非裸叉。本篇把前两部分铺垫的公式落进两种可执行的读图场景。

◍ 零轴两侧的 AC 颜色翻转信号

AC 振荡器的柱线变色本身很直观,但若不限定位置,信号会像形态-4 那样过于宽泛。把规则收束到零轴特定一侧后:零轴上方由绿变红,视为看涨动量耗尽、偏看跌;零轴下方由红变绿,视为看跌动量耗尽、偏看涨回调。 这种变色通常出现在强劲趋势之后,所以除了当入场提示,更实用的做法是把它当作趋势末端的止盈参考点。信号本身不一定强,因为它总贴在强趋势尾巴上,或更易在途中中段出现。 回测时把输入参数所用形态赋值为 64,即可单独跑这一形态。外汇与贵金属杠杆高、滑点跳空频繁,此类信号仅作概率参考,须自设止损。 下面这段 MQL5 判断逻辑可直接拷进 EA 的 CSignalAccelerator 类: //+------------------------------------------------------------------+

//Check for Pattern 6.                                            

//+------------------------------------------------------------------+ bool CSignalAccelerator::IsPattern_6(ENUM_POSITION_TYPE T)

{  if(T == POSITION_TYPE_BUY && ((UpperColor(X() + 1) == clrRed && UpperColor(X()) == clrGreen)(LowerColor(X() + 1) == clrRed && LowerColor(X()) == clrGreen)))

   {  return(true);    }

   else if(T == POSITION_TYPE_SELL && ((UpperColor(X() + 1) == clrGreen && UpperColor(X()) == clrRed)(LowerColor(X() + 1) == clrGreen && LowerColor(X()) == clrRed)))

   {  return(true);    }    return(false); } 逐行拆解:函数接收持仓方向 T;买权下,若零轴上前一根红、当前绿,或零轴下前一根红、当前绿,返回 true(对应看跌反转条件);卖权下对称,前绿现红返回 true;其余情况返回 false。UpperColor / LowerColor 分别取零轴上、下柱色,X() 为当前偏移。

MQL5 / C++
class=class="str">"cmt">//+------------------------------------------------------------------+
class=class="str">"cmt">//| Check for Pattern class="num">6.                                                        |
class=class="str">"cmt">//+------------------------------------------------------------------+
class="type">bool CSignalAccelerator::IsPattern_6(class="type">ENUM_POSITION_TYPE T)
{  if(T == POSITION_TYPE_BUY && ((UpperColor(X() + class="num">1) == clrRed && UpperColor(X()) == clrGreen) || (LowerColor(X() + class="num">1) == clrRed && LowerColor(X()) == clrGreen)))
   {  class="kw">return(true);
   }
   else if(T == POSITION_TYPE_SELL && ((UpperColor(X() + class="num">1) == clrGreen && UpperColor(X()) == clrRed) || (LowerColor(X() + class="num">1) == clrGreen && LowerColor(X()) == clrRed)))
   {  class="kw">return(true);
   }
   class="kw">return(false);
}

极端位附近的 AC 走平暗藏转向

AC 振荡器贴近极端价位时若柱线走平,往往暗示驱动力量枯竭。具体看,当 AC 在明显低点附近拉平、且连续红色柱线后冒出首根绿色柱线,同时 AC 位于零轴下方,看涨机会可能浮现;反之在明显高点附近拉平、连续绿色后转红且 AC 在零轴上方,看跌概率倾向升高。 下方 MQL5 片段是形态-7 的判定核心:买入侧要求前 3 根低位柱为红、当前转绿;卖出侧对称处理高位柱颜色。它未强制设定 AC 必须触达的极端阈值,若你想过滤假信号,自行补一段阈值判断会更有含金量。 实测中将映射输入参数固定为 128,回测能跑出可用报告;若放开到 0–255 做优化搜索,部分组合对外汇与贵金属这类高波动品种显示出更有利的统计结果,但实盘仍属高风险,参数过拟合须警惕。

MQL5 / C++
class=class="str">"cmt">//+------------------------------------------------------------------+
class=class="str">"cmt">//| Check for Pattern class="num">7.                                                        |
class=class="str">"cmt">//+------------------------------------------------------------------+
class="type">bool CSignalAccelerator::IsPattern_7(class="type">ENUM_POSITION_TYPE T)
{  if(T == POSITION_TYPE_BUY && LowerColor(X() + class="num">3) == clrRed && LowerColor(X() + class="num">2) == clrRed && LowerColor(X() + class="num">1) == clrRed && LowerColor(X()) == clrGreen)
   {  class="kw">return(true);
   }
   else if(T == POSITION_TYPE_SELL && UpperColor(X() + class="num">3) == clrGreen && UpperColor(X() + class="num">2) == clrGreen && UpperColor(X() + class="num">1) == clrGreen && UpperColor(X()) == clrRed)
   {  class="kw">return(true);
   }
   class="kw">return(false);
}

「别急着下结论」

这套宽比尔·威廉姆斯振荡指标和前篇动量振荡器血缘很近,但重心放在价格加速动量而非单纯变化率上,自定义信号类 SignalWZ_52.mqh 里对颜色判定逻辑做了微调,开 MT5 把 wz_52.mq5 拖进策略测试器就能比对信号差异。 指标系列再更两三篇就收摊,后面若接监督学习或核网络类文章,思路会从形态识别切到概率建模,验证方式也得跟着换。 外汇与贵金属杠杆高、滑点狠,任何加速动量信号都只是概率倾向,实盘前务必用历史数据跑一遍自定义参数再决定仓位。

把重复劳动交给小布
这些 AC 色变与极端平坦的诊断小布盯盘的 AIGC 已内置,打开对应品种页即可看到,你只管判断该不该跟。

常见问题

倾向不是直接反转,而是动量减速;若零轴仍上方且 AO 未交叉,更可能是回撤,需其他趋势指标确认。
概率上说明加速度枯竭而绝对动量仍强,常见于趋势末端逼空,假突破风险上升,宜减仓而非追单。
可以,小布在品种页的 AIGC 注释里会圈出接近极端价的平坦 AC 段落,并附带对应 AO 状态供交叉核对。
AO 对早期逆转更敏感,AC 易在短周期产生大量假信号;剥头皮更常用 AO 配合成交量,AC 仅作加速确认。