解读经典和隐藏背离的新途径。 第二部分(基础篇)
◍ 背离判读里被忽略的那层
经典背离看价格与指标反向,但隐藏背离常藏在更高时间框架的回踩里,只盯主图容易漏掉。本文给出的新途径是把两种背离放在同一判别函数里,用结构而非肉眼去抓。 原文作者 Alexander Lasygin 在 2019-10-18 发布于 MT5 社区,该文获 13 457 次浏览、8 条评论,说明这类结构化背离思路在实盘群体里有明确需求。 打开 MT5 的 EURUSD H1,把 RSI(14) 与最近 30 根 K 线低点做对照,若价格新低而 RSI 未新低且发生在前高回落段,可先标记为隐藏背离候选,后续用代码自动筛。
「经典背离还灵不灵」
上篇我们铺了非标准背离的解读路子,也碰了图形结构和识别质量,但没碰“用形态过滤成交”这一步。 市面上常说的“经典背离失效了吗”其实一直含糊——行情结构可能早已漂移,老办法未必还能直接套。 这一节把经典版和非标准版摆一起拆:先判研策略本身是否还站得住,若回测与样本内表现正向,再着手抬它的有效性。 读者可以现在开 MT5,调出近 6 个月 XAUUSD 的 H1,手动标一遍经典背离,感受一下假信号密度再说。外汇与贵金属波动剧烈,任何形态过滤都只是概率工具,不是保本锁。
背离的ABC分型与术语陷阱
很多现成资料把背离硬拆成 A、B、C 三类,逻辑是“偏离越大信号越强”,但实测分布并不支撑这种等级观。A 类被说成最强:熊市里价格新高而指标高点更低,牛市里价格新低而指标低点更高,常出现在强冲量之后;可冲量越猛趋势越能延续,这和“A 类必反转”的设定直接打架。 B 类不过是价格双顶/双底的水平高点配指标一高一低,源头文献称其为“强劲逆转形态”,本质已不是终止信号。C 类最弱,价格新高(新低)而指标高点(低点)走平,多在假突破或密集成交区出现,虽不能当无争议入场点,但忽略它容易吃假突破的亏。 Alexander Elder 在《技术分析中的最强信号》里把 OsMA 叫成 MACD,且强制要求零轴交叉,却又在“缺少右肩”一章改口说可选,这种术语错位让 MetaStock 时代的人根本没法照书复现。Elder 还拒用无均衡线的随机指标做背离分析,进一步收窄了可验证样本。 实操上,背离本身只该看作“停止信号”,反转要靠后续确认;ABC 分级可留作现象描述,别当概率权重。开 MT5 调出 OsMA 对照价格看 A/B/C 三类发生后的惯性延续长度,比背任何分级口诀有用。外汇与贵金属杠杆高,背离失效时回撤可能远超止损预期,验证参数前先用模拟盘跑分布。
◍ MT5里MACD和OsMA的背离陷阱
MT5终端自带的MACD实际是线性MACD,而教科书里的MACD直方图在终端里叫OsMA。默认参数沿股票市场的习惯:快线EMA周期12、慢线EMA周期26、信号线EMA周期9,长短线差值再平滑出Signal线。这套26减12的算法在外汇和贵金属上属于长周期计算,遇到窄幅震荡行情容易钝化,分形往往在小级别走势里根本形不成——这类品种高杠杆、波动突变频繁,用经典背离直接抄底摸顶风险很高。 很多人以为零轴交叉就是趋势结束的明确标志,其实不一定。Alexander Elder一派坚持零轴交叉是背离生效的强制条件,但也只是可选规则之一;另一种看法认为略微出头反而逆转信号更强。更麻烦的是形态定义:指标基于收盘价计算,你却拿它和价格高低点比背离,到底价格重要还是指标值重要?Expert/Signal/SignalMACD类里把‘背离’写成振荡器波谷变浅而价格波谷变深,立刻绕回鸡生蛋问题——先有价格行为还是先有指标值? 想让MT5的MACD能按走势方向画不同颜色的分形参考线,可以改标准代码。把缓冲区从4扩到5,新增一个颜色索引缓冲,初始化块里把0~4号缓冲分别绑到MACD主线、颜色、信号线、快MA、慢MA;计算时至少留3根K线,主循环里用当前柱收盘后(移到i-1)判定极值避免重绘。下面这段就是改完的着色与分形预备核心。 OsMA比MACD敏感,但敏感过头会丢信号或需额外确认。两个一起用时得定优先级:谁背离算强制、谁算补充。MACD参数一改外观就变,这种‘可调’本质是过拟合隐患,不如AC指标没得调。自动化识别某些形态仍不可能,只能肉眼盯——视觉观察在外汇贵金属复盘里目前还是正向收益的来源。
class="macro">#class="kw">property indicator_buffers class="num">4 class="macro">#class="kw">property indicator_buffers class="num">5 class="macro">#class="kw">property indicator_type1 DRAW_HISTOGRAM class="macro">#class="kw">property indicator_type1 DRAW_COLOR_HISTOGRAM class="macro">#class="kw">property indicator_color1 Silver class="macro">#class="kw">property indicator_color1 Green,Red,Gold class="type">class="kw">double Color_buff[]; SetIndexBuffer(class="num">0,ExtMacdBuffer,INDICATOR_DATA); SetIndexBuffer(class="num">1,Color_buff,INDICATOR_COLOR_INDEX); SetIndexBuffer(class="num">2,ExtSignalBuffer,INDICATOR_DATA); SetIndexBuffer(class="num">3,ExtFastMaBuffer,INDICATOR_CALCULATIONS); SetIndexBuffer(class="num">4,ExtSlowMaBuffer,INDICATOR_CALCULATIONS); SetIndexBuffer(class="num">1,Color_buff,INDICATOR_COLOR_INDEX); if(prev_calculated==class="num">0) limit=class="num">2; else limit=prev_calculated-class="num">1; class=class="str">"cmt">//--- calculate MACD for(i=limit;i<rates_total && !IsStopped();i++) { ExtMacdBuffer[i]=ExtFastMaBuffer[i]-ExtSlowMaBuffer[i]; class=class="str">"cmt">//--- calculate Color Macd if(ExtMacdBuffer[i]>ExtMacdBuffer[i-class="num">1]) Color_buff[i]=class="num">0.0; class=class="str">"cmt">// set class="type">class="kw">color Green else Color_buff[i]=class="num">1.0; class=class="str">"cmt">// set class="type">class="kw">color Red } class=class="str">"cmt">//--- for(i=limit;i<rates_total-class="num">1 && !IsStopped();i++) { if((ExtMacdBuffer[i-class="num">1]<class="num">0 && ExtMacdBuffer[i]>ExtMacdBuffer[i-class="num">1] && ExtMacdBuffer[i-class="num">1]<ExtMacdBuffer[i-class="num">2]) ||
「MACD 多头衰减时的着色判定」
在 MACD 柱状线位于零轴上方时,若当前柱低于前一柱、而前一柱又高于前二柱,可视为多头动能阶段性衰减的信号。此时把对应柱的缓冲位标记为 2.0,渲染层就能用金色突出这段「涨速放缓」区域。 上述逻辑直接落在指标缓冲数组上:先判断 ExtMacdBuffer[i-1] 大于 0,再确认 ExtMacdBuffer[i] 小于 ExtMacdBuffer[i-1] 且 ExtMacdBuffer[i-1] 大于 ExtMacdBuffer[i-2],满足条件就把 Color_buff[i-1] 设为 2.0。外汇与贵金属市场波动剧烈,这种着色仅提示概率性动能变化,不构成方向定论,开 MT5 把这段写进自定义指标即可肉眼验证。
(ExtMacdBuffer[i-class="num">1]>class="num">0 && ExtMacdBuffer[i]<ExtMacdBuffer[i-class="num">1] && ExtMacdBuffer[i-class="num">1]>ExtMacdBuffer[i-class="num">2])) Color_buff[i-class="num">1]=class="num">2.0; class=class="str">"cmt">// set class="type">class="kw">color Gold
用多周期随机把背离变成可自动化信号
随机振荡器以百分比表达价格冲量,公式 %K = ((CLOSE_n - LOW_n)/(HIGH_n - LOW_n))*100 把最近 n 根 K 线的高低区间压缩进 0–100 框架。乔治·莱恩设计的这条线配合 %D(%K 的平滑均线)和 Slowing 参数,天然把数值锁在超买 80、超卖 20 与中间地带,极限区停留时间被计算逻辑限制。 基于收盘价的 Stochastic 比基于高低价的版本更频繁触到 100/0,图例 14 里能看到大量毛刺波峰波谷;这也导致 100–92、31–92、22 这类背离很难直接写成机器规则。典型算法只取两个最接近分形,但实战里往往不是最近的那一对。 换个思路:把计算周期调一档,让 M15 的随机变化投射到 M5 图表上。图例 16–17 的红线段显示,这种全局分段的背离可以零延迟抓 early entry,再等更高周期收线确认。同图里 MTF 信号那笔会亏,而投射方案那笔吃了利润——类似手法对 MACD 也成立。 除显著减少信号量,该方案还能提升获利成交的概率,毕竟噪音被压下去了。我们看了 M5–M15,若切到 M5–H1 同样适用,只是慢速/快速随机本身只解决部分问题,优先级判定仍和 MACD+OsMA 一样麻烦。 手工或算法搜背离时,先卡硬条件:经典背离左侧第二点必须落在超买/超卖区,隐藏背离则是第一点在临界水平;搜索序列最多排除到三个,图例 20–21 中超过三个指标点的形态直接作废。外汇与贵金属杠杆高,这类信号只是概率倾向,开 MT5 调 Slowing 与周期映射自己跑一遍最实在。