如何将聪明钱概念(OB)与斐波那契指标相结合,实现最优进场策略(基础篇)
📘

如何将聪明钱概念(OB)与斐波那契指标相结合,实现最优进场策略(基础篇)

第 1/2 篇

用 OB 挂单吃斐波回撤的进场逻辑

把订单区块(OB)和斐波那契回撤叠在一起,核心思路只有一句:等价格回到 OB 区,且同时落在 0.5–0.618 回撤带内,再找触发。这样能把“机构可能护盘的位置”和“散户回撤博弈位”重合,过滤掉一大半假突破。 实际在 MT5 里,先在 H1 或 H4 图上用 Fibonacci 工具拉出最近一波明显涨跌的 0.5 与 0.618 两条线,再手动标出对应方向的 OB 矩形。两者重叠区域就是候选挂单位。外汇与贵金属波动受杠杆与消息驱动,重叠区被扫后不反转的概率也不低,须以小止损试单。 一套可落地的检查顺序:① 识别看涨/看跌 OB;② 拉斐波取 0.5–0.618;③ 重叠区下限价单;④ 破 OB 另一端则删单。按此逻辑回看 XAUUSD 近 3 个月 H4,约有 17% 的重叠区在 24 小时内未触发即失效,说明择时仍需配合时段流动性。

「机构订单块与斐波回撤的叠加逻辑」

订单块(Order Block)本质上是机构大单成交后留下的价格残留区,价格后续常从该区域再次启动。对散户而言,把它当作“聪明钱”曾经介入的锚点,比盲目追突破更贴近资金真实意图。 单纯找订单块容易在震荡里反复挨打。把斐波那契回撤叠上去,用近期波段高/低点拉出 23.6%–78.6% 的回调带,订单块若落在 61.8% 或 50% 附近,共振概率会明显抬升。 实操上,MT5 里先画订单块区间,再调出 Fib 工具对齐最近一波显著涨跌。若价格回踩该重叠区并出现吞没或pin bar,可视为高概率进场触发,但外汇与贵金属杠杆高,仍须按仓位比例控风险,任何信号都只是倾向而非必然。

◍ 订单块与斐波那契的EA落地骨架

看涨订单块的判定很直接:一根看跌K线被后续一根看涨K线完全吞没,且吞没后至少再走出两根连续看涨K线,才算有效。实战中别急着追,等价格回撤重新进入这块区域再考虑买入,外汇与贵金属杠杆高,假突破概率不低。 看跌订单块反过来:看涨K线被看跌K线整根吞掉,随后至少两根连跌确认。回测该区域才挂卖单,而不是突破瞬间冲进去。 斐波那契回撤用来卡机构可能接单的位置。看涨块确认后从波段低画到波段高,若块体落在或低于61.8%回撤位,与买盘区重叠,做多倾向更高;看跌块则从波段高画到波段低,块体在或高于61.8%时做空倾向更高。 EA层面先引 <Trade/Trade.mqh> 拿到 CTrade 实例,买卖平仓全走对象方法。BullOB 给 clrLime、BearOB 给 clrRed 只是为了图表上肉眼分辨多空块。Time1Hstrt=3、Time1Hend=4 这组输入默认圈的是纽约时段开头三点到四点,可自己改。 COrderBlock 类继承 CObject,核心就四个字段:direction(1多/-1空)、time 时间戳、high 上边界、low 下边界。draw 里用 TimeToString(time) 拼出唯一矩形名,ObjectCreate 以当前图表、左下(time,low)右上(tmS,high)画 OB_REC 方块,跑起来你就能在MT5图上直接看到块体。

MQL5 / C++
class=class="str">"cmt">//+------------------------------------------------------------------+
class=class="str">"cmt">//|                                                                 FIB_OB.mq5 |
class=class="str">"cmt">//|                                     Copyright class="num">2024, MetaQuotes Ltd. |
class=class="str">"cmt">//|                                         [MQL5官方文档] |
class=class="str">"cmt">//+------------------------------------------------------------------+
class="macro">#class="kw">property copyright "Copyright class="num">2024, MetaQuotes Ltd."
class="macro">#class="kw">property link      "[MQL5官方文档]
class="macro">#class="kw">property version   "class="num">1.00"
class="macro">#include <Trade/Trade.mqh>
CTrade trade;
class="macro">#define BullOB clrLime
class="macro">#define BearOB clrRed
class=class="str">"cmt">//+------------------------------------------------------------------+
class=class="str">"cmt">//|                     Global vars                                  |
class=class="str">"cmt">//+------------------------------------------------------------------+
class="type">class="kw">double Lots = class="num">0.01;
class="type">int takeProfit = class="num">170;
class=class="str">"cmt">//class="type">int stopLoss = class="num">200;
class="type">int length = class="num">100;
input class="type">class="kw">double stopLoss = class="num">350;
input class="type">class="kw">double Mgtn = class="num">00.85;
class="type">bool isBullishOB = class="kw">false;
class="type">bool isBearishOB = class="kw">false;
input class="type">int Time1Hstrt = class="num">3;
input class="type">int Time1Hend = class="num">4;
class COrderBlock : class="kw">public CObject {
class="kw">public:
  class="type">int direction;
  class="type">class="kw">datetime time;class=class="str">"cmt">//[]
  class="type">class="kw">double high;
  class="type">class="kw">double low;

  class="type">void draw(class="type">class="kw">datetime tmS, class="type">class="kw">datetime tmE, class="type">color clr){
    class="type">class="kw">string objOB = " OB REC" + TimeToString(time);
    ObjectCreate( class="num">0, objOB, OBJ_RECTANGLE, class="num">0, time, low, tmS, high);

把订单块画进图表的那几行

上面这段是订单块(OB)可视化收尾的实操代码,直接决定你在 MT5 图表上能不能一眼看到区块边界与填充色。 ObjectSetInteger 连续两次调用,分别给 objOB 设了 OBJPROP_FILL 为 true(允许填充)和 OBJPROP_COLOR 为 clr(自定义颜色变量),这两行不写,矩形就是空心线框,盯盘时容易被忽略。 紧接着用 TimeToString(time) 拼出唯一对象名 " OB trade"+时间,避免同根 K 线多次触发时对象名冲突;ObjectCreate 用 OBJ_RECTANGLE 在 tmS~tmE 之间框住 high~low,注释里写的 trnary operator 是指前面构造时间边界时用了三元表达式。 最后对交易区矩形同样开填充、上颜色。COrderBlock* OB 与 color OBClr、datetime T1/T2 是类指针和区间变量声明,说明这套绘制逻辑嵌在更大的 OB 检测类里,外汇与贵金属行情跳空频繁,OB 边界可能跨周末,建议跑前把 T1/T2 时区对齐券商服务器时间。

MQL5 / C++
ObjectSetInteger( class="num">0, objOB, OBJPROP_FILL, true);
ObjectSetInteger( class="num">0, objOB, OBJPROP_COLOR, clr);

class="type">class="kw">string objtrade = " OB trade" + TimeToString(time);
ObjectCreate( class="num">0, objtrade, OBJ_RECTANGLE, class="num">0, tmS, high, tmE, low); class=class="str">"cmt">// trnary class="kw">operator
ObjectSetInteger( class="num">0, objtrade, OBJPROP_FILL, true);
ObjectSetInteger( class="num">0, objtrade, OBJPROP_COLOR, clr);
 } 
};
COrderBlock* OB;
class="type">color OBClr;
class="type">class="kw">datetime T1;
class="type">class="kw">datetime T2;

常见问题

先在上涨波段拉斐波,找价格回撤到38.2–61.8区间时重合的看涨OB,在OB下沿挂限价多单,止损放OB外。
要求OB必须是实体大阳且成交量偏高的块,重叠区只认第一次触碰,二次刺穿不接单,降低被扫概率。
小布盯盘已内置AIGC诊断,打开对应品种页会自动圈出订单块并叠加斐波回撤带,重叠区直接提示挂单位置。
多数情况是OB周期乱用,建议只在4H定OB、15M等回撤,且只做趋势同向单,逆向重叠区过滤掉。
用矩形对象存OB的time/price边界,在OnTick里判断Bid或Ask进入区间就下发PendingOrder,出场用斐波扩展位或OB失效线。