价格行为分析工具包开发(第二十一部分):市场结构反转检测工具·综合运用
📉

价格行为分析工具包开发(第二十一部分):市场结构反转检测工具·综合运用

(3/3)·震荡市里超半数枢轴点是锯齿陷阱,这套 EA 用波动率绑定深度阈值只留规则内的纯净反转

含代码示例 第 3/3 篇
很多人把枢轴点当反转圣杯,却在剧烈行情里被反复止损洗出去。问题不在价格行为本身,而在过滤器静态——波动放大时还用同一根数窗口,噪声自然灌进来。把 ATR 变成动态深度,枢轴点才分得清真假摆动。

「局部最低判定的代码骨架」

判定某根 K 线是否为局部最低,核心是拿它的低点跟左右各 depth 根 K 线比。下面这段逻辑先取 shift 位置的低点 p,再向左 depth、向右 depth 扫一遍,只要出现更低低点就返回 false,否则返回 true。 double p = iLow(_Symbol,_Period,shift); for(int i=shift-depth; i<=shift+depth; i++) if(i>=0 && iLow(_Symbol,_Period,i) < p) return false; return true; 图形标注交给两个函数:PlotArrow 在图上画箭头,PlotLabel 写文字。两者都先 ObjectFind 检查同名对象是否存在,不存在才创建,避免每帧 Tick 重复生成对象导致图表卡顿。 PlotArrow 用 OBJ_ARROW,设了箭头代码、颜色和宽度 2;PlotLabel 用 OBJ_TEXT,设文字、颜色和字号 10。_notify 函数则把弹窗、声音、推送三件事打包:Alert 必弹,InpEnableSound 为真才 PlaySound,InpEnablePush 为真才 SendNotification。外汇和贵金属波动剧烈,这类提示仅作辅助,实际下单仍需自行判断风险。

MQL5 / C++
class="type">class="kw">double p = iLow(_Symbol,_Period,shift);
for(class="type">int i=shift-depth; i<=shift+depth; i++)
  if(i>=class="num">0 && iLow(_Symbol,_Period,i) < p)
    class="kw">return false;
class="kw">return true;
}
class=class="str">"cmt">//+------------------------------------------------------------------+
class="type">void PlotArrow(class="type">class="kw">string nm,class="type">class="kw">datetime t,class="type">class="kw">double price,class="type">int code,class="type">color c)
  {
  if(ObjectFind(class="num">0,nm) < class="num">0)
    {
    ObjectCreate(class="num">0, nm, OBJ_ARROW, class="num">0, t, price);
    ObjectSetInteger(class="num">0, nm, OBJPROP_ARROWCODE, code);
    ObjectSetInteger(class="num">0, nm, OBJPROP_COLOR, c);
    ObjectSetInteger(class="num">0, nm, OBJPROP_WIDTH, class="num">2);
    }
  }
class=class="str">"cmt">//+------------------------------------------------------------------+
class="type">void PlotLabel(class="type">class="kw">string nm,class="type">class="kw">datetime t,class="type">class="kw">double price,class="type">class="kw">string txt,class="type">color c)
  {
  if(ObjectFind(class="num">0,nm) < class="num">0)
    {
    ObjectCreate(class="num">0, nm, OBJ_TEXT, class="num">0, t, price);
    ObjectSetString(class="num">0, nm, OBJPROP_TEXT, txt);
    ObjectSetInteger(class="num">0, nm, OBJPROP_COLOR, c);
    ObjectSetInteger(class="num">0, nm, OBJPROP_FONTSIZE, class="num">10);
    }
  }
class=class="str">"cmt">//+------------------------------------------------------------------+
class="type">void Notify(class="type">class="kw">string msg)
  {
  Alert(msg);
  if(InpEnableSound)
    PlaySound(InpSoundFile);
  if(InpEnablePush)
    SendNotification(msg);
  }
class=class="str">"cmt">//+------------------------------------------------------------------+

实盘与回测里的结构反转信号表现

EA在实盘里先认出由连续两个更高高点构成的“LH_prev”上升结构,几根K线后若出现未破前高的波段高点,就画红色箭头标“LH”,视作看涨衰竭、下行可能启动。 欧元兑美元1分钟图上,每根K线收盘时EA持续追踪连续低点,跌破前低后的更高低点会标绿色“HL”看涨反转。顶部面板实时刷新:当时累计12次看涨反转、1次看跌反转,HL间隔均值108.0分钟。 回测按多周期步长统计,5分钟框架卖出56次积极39次(70%)、买入53次积极44次(83%);15分钟框架卖出7次积极5次(71%)、买入14次积极9次(64%)。较短周期做空胜率超70%,说明结构反转检测在短帧上倾向更稳。 外汇与贵金属属高风险品种,上述胜率仅为历史样本统计,实盘可能因滑点、流动性突变而偏离,须以MT5策略测试器自行验证。

◍ 别急着下结论

这套工具链在剥头皮场景里的回测表现偏稳,短周期信号响应快,但实盘前仍建议用额外确认手段过滤一次信号,外汇与贵金属本身高波动高杠杆,盲信单一工具容易吃回撤。 跨货币对测试不是可选项:同一套参数在 EURUSD 与 XAUUSD 上可能给出完全不同的胜率倾向,挑出最优适配品种比调参更优先。 下面这段摆荡高点判定是多个工具共用的底函数,循环从 shift-depth 起扫,不是从 0 起——评论区有人问为何不直接 i=0,原因是 0 只盯当前柱,会漏掉左侧深度内的更高高点,导致摆动识别变形。 工具清单从 01/10/24 的图表展示器到 27/03/25 的 ZigZag 分析仪共 21 个,版本迭代到 1.3 的 VWAP,说明作者一直在补场景而非一次性甩货;你真要验证,先下 Flip_Detector.mq5 跑一遍四分位侵入逻辑再说。

MQL5 / C++
class="type">bool IsSwingHigh( class="type">int shift, class="type">int depth)
  {
   class="type">class="kw">double p = iHigh( _Symbol , _Period ,shift);
   for ( class="type">int i= shift-depth; i<=shift+depth; i++)
      if (i>= class="num">0 && iHigh( _Symbol , _Period ,i) > p)
         class="kw">return false ;
   class="kw">return true ;
  }
把波动率诊断交给小布盯盘
这些 ATR 与枢轴深度的对照关系,小布盯盘的 AIGC 已内置到品种页,打开就能看到当前波动区对应的过滤窗口,你只管判断结构是否被破。

常见问题

静态根数窗口无法随波动率伸缩,小幅不规则波动也会被记为摆动点,形成锯齿陷阱,触发大量负期望信号。
可以,小布盯盘品种页内置了基于波动率的枢轴过滤与反转箭头,省去自己跑 EA 的重复劳动,你专注决策即可。
宽松因子在波动加剧时进一步放宽所需深度,忽略小型不规则波动;平静时收紧,更快捕捉真实转向,参数可调噪声比约 5%。
先出现更低低点,随后下一个波动低点突破该谷值,且前一个市场结构被破,才标记看涨反转,保持趋势偏向性。
TradeStation 与 QuantifiedStrategies 数据显示标普噪声交易减约 40%、净利升约 22%;欧美回测也呈类似减噪特征,但外汇贵金属高风险,实盘仍需样本外验证。