FVG and Structure PRO — 用户手册(MetaTrader 5,2.00 版本)

3 November 2026, 03:12
JETINVEST
0
25

在 MQL5 市场获取: FVG and Structure PRO

风险提示。 交易存在亏损风险。本指标在图表上标记价格结构;它不预测市场,不下单交易,也不保证任何结果。请将其与您自己的分析和风险管理结合使用,并先在模拟账户上测试。

FVG and Structure PRO 绘制市场结构(BOS / CHoCH)、带填补跟踪的公允价值缺口(FVG)、订单块(order blocks)、等高 / 等低点、更高时间周期的 FVG、可选的溢价 / 折价区间(premium / discount)以及多时间周期结构面板。每个元素都在已收盘的K线上确认:出现之后不会重绘。适用于任何品种、任何经纪商和任何时间周期。

2.00 版本新增功能

  • 为 EA 和仪表盘新增 5 个缓冲区:最近的未填补看涨 FVG(上沿、下沿)、最近的未填补看跌 FVG(上沿、下沿)以及区域事件(新增 / 已缓解 FVG、新增 / 已突破订单块)— 第 14 节。
  • 即使关闭绘制,FVG 和订单块仍会被跟踪,因此缓冲区在干净的图表上也能工作。绘制、警报和现有缓冲区保持不变。
  • 面板:当最后一个事件所在的K线尚未出现在图表历史中时,隐藏“bars ago”(几根K线之前)文本。

1. 安装与首次启动

  1. 在 MQL5 Market 购买或租用本指标,并从终端的 Market 选项卡安装(工具箱 → Market → 已购买 → 安装)。
  2. 打开图表,从导航器(Indicators → Market)将 FVG and Structure PRO 拖到图表上。
  3. 保持默认输入参数或进行调整(第 13 节),然后按 OK。

指标分析最近的 1500 根K线(输入参数 Bars analysed),之后跟随每根新K线。面板显示在右下角。在图表上,该指标名为 FVG & Structure PRO。

会导致指标拒绝启动的设置(输入参数窗口会再次打开):Swing strength 超出 1-50 范围、Bars analysed 低于 100,或任何“每侧”(per side)限额低于 1。


2. 图表图例

图表上含义
实线 + BOS 标签(青绿 / 红色)结构突破(Break of structure):一根K线沿当前趋势方向收盘于最后一个波段高点之上(青绿色,标签在上方)或波段低点之下(红色,标签在下方)。
虚线 + CHoCH 标签(青绿 / 红色)性质转变(Change of character):同类突破,但与当前趋势方向相反(结构趋势反转)。
HH / LH 标签(红色,位于高点上方)与前一个波段高点相比的更高高点 / 更低高点(可选)。
HL / LL 标签(青绿色,位于低点下方)与前一个波段低点相比的更高低点 / 更低低点(可选)。
深绿色填充框未填补的看涨 FVG。
深红色填充框未填补的看跌 FVG。
深蓝色填充框 + OB 标签(青绿色)有效的看涨订单块。
深棕色填充框 + OB 标签(红色)有效的看跌订单块。
深灰色框(订单块带灰色 OB 标签)已缓解的 FVG 或已突破的订单块 — 仅当 Hide mitigated 关闭时显示。
金色轮廓框 + 如 H1 FVG 的标签更高时间周期的未填补 FVG(可选)。
金色点线 + EQH / EQL等高点 / 等低点(静止流动性)。价格穿过后(被扫除),线条变为灰色。
红色点线 Premium、银色虚线 Equilibrium、青绿色点线 Discount当前波段高点 / 波段低点的区间及其中点(可选)。
文本面板(右下角)M15 / H1 / H4 / D1 的结构偏向、最后一次结构突破、价格上方和下方最近的 FVG。

每条线和每个框都有工具提示:将鼠标悬停其上即可查看其类型和价格。这些对象在对象列表中隐藏且无法选中,因此不会被意外移动。有效区域和水平线会向当前K线右侧延伸 10 根K线(输入参数 Active zones extend right)。


3. 市场结构:BOS 和 CHoCH

波段高点(swing high)是指其最高价高于两侧各 Swing strength 根K线(默认 5)最高价的K线;波段低点(swing low)与之相反。因此,一个波段在形成后经过 Swing strength 根K线才得到确认。

  • 当一根K线收盘于最后一个波段高点之上时,从该波段到突破K线绘制一条看涨突破线;收盘于最后一个波段低点之下则绘制看跌突破线。
  • 突破顺应当前趋势时为 BOS(实线),反转当前趋势时为 CHoCH(虚线)。加载后的第一次突破为 BOS。
  • 每个波段只能被突破一次。超出波段的影线不计 — 只计收盘价。
  • 只有最近的 Structure breaks kept on chart(默认 20)次突破保留在图表上;更早的会被删除。波段标签保留该数量的两倍。

波段标签(输入参数 HH / HL / LH / LL labels,默认关闭)将每个已确认的波段与同侧的前一个波段进行比较并标注。

较大的 Swing strength 会产生较少但更重要的波段(波段 / 外部结构);较小的值反应更快(内部结构)。


4. 公允价值缺口(FVG)

FVG 是一种三根K线的失衡:第三根K线的最低价高于第一根K线的最高价(看涨),或第三根K线的最高价低于第一根K线的最低价(看跌)。方框从中间那根K线开始绘制,覆盖两根影线之间的缺口。

  • Minimum gap size(最小缺口大小,默认 0.2 × ATR 14):更小的缺口会被忽略。提高该值可只显示较大的失衡。
  • FVG is mitigated at(FVG 缓解条件):Full fill(默认 — 价格到达缺口的远端)、50% fill (consequent encroachment)(价格到达中点)或 First touch(价格到达近端)。
  • Shrink to the unfilled part(默认开启):当价格进入缺口但尚未将其缓解时,方框缩小到仍未填补的部分。
  • Active FVGs per side(默认 8):当出现新 FVG 且超出限额时,删除该侧最早的有效 FVG。

填补情况在已收盘的K线上评估。已缓解的 FVG 会从图表中删除,或以已缓解颜色保留(第 8 节)。


5. 更高时间周期的 FVG

开启 Show higher timeframe FVGs 后,所选 Higher timeframe(默认 H1)的未填补 FVG 会以轮廓框(默认金菊色 goldenrod)绘制,带有如 H1 FVG 的标签,叠加在图表时间周期的 FVG 之上。

  • 它们使用与图表 FVG 相同的最小大小和缓解规则(不缩小),并从该时间周期最近的 400 根K线中读取。
  • 只有已收盘的更高时间周期K线才会生成缺口;正在形成的更高时间周期K线已可以填补缺口。
  • Active HTF FVGs per side(默认 4)限制显示的数量。
  • 仅当所选时间周期高于图表时间周期时才绘制(例如在 M5 或 M15 图表上显示 H1 缺口)。
  • Killzone 过滤器不适用于它们。它们仅为图表对象(无缓冲区)。

6. Killzone 过滤器(ICT)

开启 Only FVGs formed inside killzones 后,仅保留中间K线在所选 killzone 之一内开盘的图表时间周期 FVG,以纽约时间计算并自动处理夏令时:

Killzone纽约时间默认
London KZ02:00-05:00开启
NY AM KZ07:00-10:00开启
NY PM KZ13:30-16:00关闭

该过滤器适用于日内图表(M1 至 H1)。它同样作用于 FVG 缓冲区和 FVG 警报。

Broker time zone(经纪商时区)— 用于将图表的服务器时间转换为纽约时间:

  • Auto (live) / GMT+2/+3 in tester(默认):偏移量根据终端时钟测量。采用 GMT+2 / GMT+3(纽约收盘)的经纪商会在整个历史中按美国夏令时进行跟踪。在策略测试器中假定为 GMT+2 / GMT+3。
  • GMT+2 / GMT+3 (New York close brokers):强制使用该规则。
  • Fixed GMT offset:全年使用 Broker GMT offset(默认 2)。在测试器中用于不采用 GMT+2 / GMT+3 的经纪商。

7. 订单块

每次结构突破(BOS 或 CHoCH)都会生成一个订单块:即产生该突破的那段走势中的极端K线 — 看涨突破时为波段与突破之间最低价最低的K线,看跌突破时为最高价最高的K线。方框覆盖该K线的完整范围(最高价到最低价),并带有 OB 标签。

  • 当一根K线收盘穿过订单块时(低于看涨 OB、高于看跌 OB),该订单块被突破。
  • Active order blocks per side(默认 3):超出限额时删除最早的一个。
  • 当 Show order blocks 关闭时,订单块仍会为缓冲区计算(第 14 节),但不会绘制,也不会发送 OB 警报。

8. 已缓解区域

默认情况下(Hide mitigated FVGs and order blocks = true),已缓解的 FVG 或已突破的订单块会从图表上消失。关闭该输入参数可将它们保留为历史记录:方框恢复原始大小,在缓解它的那根K线处结束,并以 Mitigated zone color(默认深灰色)着色;OB 标签变为灰色。此时工具提示以“(mitigated)”结尾。


9. 流动性:等高点和等低点

当两个连续的波段高点(或低点)彼此相差在 Equal tolerance(默认 0.1 × ATR 14)以内时,从第一个波段到第二个波段绘制一条金色点线,并标注为 EQH(等高点)或 EQL(等低点)。这些水平通常聚集着静止流动性(止损单)。

  • 只要水平未被触及,线条就向右延伸。
  • 当之后的K线越过该水平(影线或收盘)时,它被扫除(swept):线条在该K线处停止并变为灰色。
  • Levels kept on chart(默认 6):更早的水平会被删除。

提高容差可找到更多水平;降低容差可获得更严格的匹配。


10. 溢价 / 折价

开启 Equilibrium of the current swing range 后,从最近两个波段中较早的一个起,向右绘制三条线直至区域的右边缘:

  • Premium(红色点线)位于最后一个波段高点;
  • Equilibrium(银色虚线)位于中点;
  • Discount(青绿色点线)位于最后一个波段低点。

价格高于均衡线时处于区间的溢价半区,低于均衡线时处于折价半区。线条随每个新确认的波段而移动。


11. 面板

面板(默认在右下角,输入参数 Panel corner)显示:

行内容
TitleFVG & Structure PRO
StructureM15、H1、H4 和 D1 的结构趋势:▲ 看涨,▼ 看跌,– 尚无突破或历史数据仍在加载。图表所在时间周期使用图表自身的结果;其他时间周期以相同的波段强度在各自最近 500 根已收盘K线上计算,并在其开出新K线时刷新。
Last图表的最后一次结构突破:方向、BOS 或 CHoCH、被突破波段的价格以及距今几根K线。在首次突破之前显示:“no structure break yet”。
FVG above完全位于当前价格上方的最近未填补 FVG(下沿 - 上沿),或“none”。
FVG below完全位于当前价格下方的最近未填补 FVG,或“none”。

包含当前价格的 FVG 不会被列为上方或下方。当 Show FVGs 关闭时,两行 FVG 显示“none”。面板在每根新K线时刷新,并始终显示在区域之上。


12. 警报

输入参数触发条件消息示例
BOS / CHoCH一根K线收盘于某个波段之外(在下一根K线开盘时发送)Bullish CHoCH above 1.08520
New FVG在已收盘K线上确认一个新的 FVG(仅当 Show FVGs 开启时)New bearish FVG 1.08310 - 1.08365
Price enters an FVG正在形成的K线进入一个未填补的 FVG — 每个 FVG 一次(仅当 Show FVGs 开启时)Price in bullish FVG 1.08210 - 1.08260
Price enters an order block正在形成的K线进入一个有效订单块 — 每个 OB 一次(仅当 Show order blocks 开启时)Price in bearish order block 1.08700 - 1.08780

每种警报可设为 Off、Popup、Sound、Smartphone notification、Popup + Sound、Notification + Sound、Popup + Notification 或 Popup + Sound + Notification。所有警报默认关闭。Sound 选择终端的一种声音(默认“alert”);Also send e-mail 为每个已启用的警报附加一封电子邮件。

文本包含产品、品种和时间周期,例如 FVG & Structure PRO: EURUSD | M15 | Bullish BOS above 1.08520 。每种警报类型每根K线最多触发一次。加载指标时,已被当前K线触及的区域会被静默标记,因此不会突然涌出大量旧警报。推送通知需要在 工具 → 选项 → 通知 中填写 MetaQuotes ID;电子邮件需要终端的电子邮件设置。策略测试器不显示弹窗、声音或通知。


13. 输入参数

MARKET STRUCTURE

输入参数默认值说明
Swing strength (bars on each side)5波段高点 / 低点两侧各自的K线数(1-50)。
BOS / CHoCH linestrue绘制结构突破。
HH / HL / LH / LL labelsfalse标注每个波段。
Structure breaks kept on chart20更早的突破会被删除。
Bullish color38,166,154 (teal)看涨突破、标签、OB 标签、Discount 线。
Bearish color239,83,80 (red)看跌突破、标签、OB 标签、Premium 线。

FAIR VALUE GAPS

输入参数默认值说明
Show FVGstrue绘制 FVG(无论是否绘制,都会为缓冲区跟踪)。
Minimum gap size (x ATR 14)0.2更小的缺口会被忽略。
FVG is mitigated atFull fillFull fill / 50% fill (consequent encroachment) / First touch。
Shrink to the unfilled parttrue方框在被填补过程中缩小。
Active FVGs per side8每侧最多未填补 FVG 数量。
Bullish FVG color22,74,68看涨 FVG 的填充色。
Bearish FVG color92,38,40看跌 FVG 的填充色。

HIGHER TIMEFRAME FVGs

输入参数默认值说明
Show higher timeframe FVGsfalse绘制下方所选时间周期的 FVG。
Higher timeframe1 Hour必须高于图表时间周期。
Active HTF FVGs per side4每侧最多 HTF FVG 数量。
HTF FVG outline colorGoldenrod轮廓和标签颜色。

KILLZONE FILTER (ICT)

输入参数默认值说明
Only FVGs formed inside killzonesfalse仅保留中间K线位于所选 killzone 内的 FVG。
London KZ (NY 02:00-05:00)true
NY AM KZ (NY 07:00-10:00)true
NY PM KZ (NY 13:30-16:00)false
Broker time zoneAuto (live) / GMT+2/+3 in tester其他选项:GMT+2 / GMT+3 (New York close brokers)、Fixed GMT offset。
Broker GMT offset (fixed mode and tester)2小时,由 Fixed GMT offset 使用。

ORDER BLOCKS

输入参数默认值说明
Show order blockstrue绘制订单块(无论是否绘制,都会为缓冲区跟踪)。
Active order blocks per side3每侧最多有效 OB 数量。
Bullish OB color28,62,110看涨 OB 的填充色。
Bearish OB color110,64,24看跌 OB 的填充色。

MITIGATED ZONES

输入参数默认值说明
Hide mitigated FVGs and order blockstrue设为 false 时以下方颜色将其保留在图表上。
Mitigated zone color (when shown)44,46,52已缓解区域的填充色。

LIQUIDITY

输入参数默认值说明
Equal highs / lowstrue绘制 EQH / EQL 水平。
Equal tolerance (x ATR 14)0.1两个波段被视为相等的最大距离。
Levels kept on chart6更早的水平会被删除。
Equal highs / lows colorGold未被触及水平的颜色(已扫除的水平为灰色)。

PREMIUM / DISCOUNT

输入参数默认值说明
Equilibrium of the current swing rangefalse绘制 Premium / Equilibrium / Discount。

HISTORY AND PANEL

输入参数默认值说明
Bars analysed1500指标加载时处理的历史K线数(最少 100)。
Active zones extend right (bars)10有效区域和水平线延伸超出当前K线的距离。
Show paneltrue显示文本面板。
Panel cornerRight lower corner面板所在的图表角落。

ALERTS

输入参数默认值说明
BOS / CHoCHOff结构突破的警报模式。
New FVGOff新 FVG 的警报模式。
Price enters an FVGOff触及 FVG 的警报模式。
Price enters an order blockOff触及 OB 的警报模式。
Soundalert声音模式使用的终端声音。
Also send e-mailfalse每个已启用的警报都发送一封电子邮件。

14. 供 EA / 仪表盘使用的缓冲区

本指标提供 7 个缓冲区,可通过 iCustom + CopyBuffer 读取。所有数值在已收盘K线上为最终值:读取 shift 1 可获得最后一个最终值。

缓冲区名称数值何时空值
0Structure trend+1 看涨, -1 看跌;首次突破之前为 0 每根K线;正在形成的K线重复最后一个已收盘值0
1Structure event在收盘突破波段的那根K线上: +1 看涨 BOS, +2 看涨 CHoCH, -1 看跌 BOS, -2 看跌 CHoCH仅已收盘K线;正在形成的K线始终为 0 0
2Nearest open bullish FVG - top (2.00)价格;在未填补的看涨 FVG 中,上沿最高的那个(Shrink 开启时为未填补部分)每根K线收盘时;正在形成的K线重复最后一个已收盘值EMPTY_VALUE
3Nearest open bullish FVG - bottom (2.00)价格,与缓冲区 2 为同一 FVG同缓冲区 2EMPTY_VALUE
4Nearest open bearish FVG - top (2.00)价格;在未填补的看跌 FVG 中,下沿最低的那个同缓冲区 2EMPTY_VALUE
5Nearest open bearish FVG - bottom (2.00)价格,与缓冲区 4 为同一 FVG同缓冲区 2EMPTY_VALUE
6Zone event (2.00)+1 / -1 新的看涨 / 看跌 FVG, +2 / -2 FVG 已缓解, +3 / -3 新订单块, +4 / -4 订单块被突破。同一根K线上有多个事件时:保留按此顺序的第一个仅已收盘K线;正在形成的K线始终为 0 0

“未填补”(open)遵循输入参数 FVG is mitigated at、Minimum gap size、Active FVGs per side 和 killzone 过滤器。即使 Show FVGs / Show order blocks 关闭,FVG 和订单块仍会被跟踪。等高 / 等低点和更高时间周期 FVG 仅为图表对象。

加载。 Market 版本安装在 MQL5\Indicators\Market\ 中;请在导航器中确认确切的文件名。名称后不带参数时使用默认输入参数。若要修改输入参数,请按第 13 节的顺序传入。每个 input group 标题本身也是一个参数:请在其位置传入空字符串 "" ,否则后面的每个值都会错位。末尾省略的输入参数保持默认值。

```mql5 // "" = group MARKET STRUCTURE, 5 = swing strength, false = no BOS / CHoCH lines int h = iCustom(_Symbol, PERIOD_H1, "Market\FVG and Structure PRO", "", 5, false);

double trend[1], bt[1], bb[1], ze[1]; if (BarsCalculated(h) > 0) { if (CopyBuffer(h, 0, 1, 1, trend) == 1) Print("structure ", (int)trend[0]); // +1 / -1 if (CopyBuffer(h, 2, 1, 1, bt) == 1 && CopyBuffer(h, 3, 1, 1, bb) == 1 && bt[0] != EMPTY_VALUE) Print("nearest bullish FVG ", bb[0], " - ", bt[0]); if (CopyBuffer(h, 6, 1, 1, ze) == 1 && ze[0] != 0.0) Print("zone event ", (int)ze[0]); } ```

注意:由 iCustom 创建的指标会在调用程序的图表上绘制其面板和对象 — 如需干净的仪表盘,请关闭绘制相关的输入参数和面板。首次读取前请等待 BarsCalculated(h) > 0 (历史数据可能仍在加载)。对于多品种仪表盘,1000 根 Bars analysed 已足够。


15. 使用技巧

  • 日内交易: 在 M5 或 M15 上开启 Show higher timeframe FVGs 并设置 Higher timeframe = H1,可看到图表缺口位于更大缺口之内的情形。
  • 减少杂乱: 提高 Minimum gap size,降低 Active FVGs per side / Active order blocks per side,或开启 killzone 过滤器。
  • 结构深度:Swing strength 为 3 时跟随内部结构;8-10 时仅跟随主要波段。面板中其他时间周期的偏向使用相同的值。
  • 反应历史: 关闭 Hide mitigated 以研究价格对过往区域的反应。
  • 每个图表一个实例: 同一图表上的两个副本会共用对象名称并相互擦除对方的绘制。如需比较设置,请打开同一品种的第二个图表。

16. 常见问题与故障排除

  • 会重绘吗? 不会。波段、突破、FVG 和订单块都在已收盘K线上生成,之后不会移动。按定义,波段在其所在K线之后 Swing strength 根K线才会绘制(它需要右侧的K线)。
  • 面板中某个时间周期显示“–”。 该时间周期最近 500 根K线中尚无结构突破,或其历史数据仍在下载;它会在下一根K线时更新。
  • 没有出现 HTF FVG。 图表时间周期必须低于 Higher timeframe,而且此时可能不存在该大小的未填补缺口。
  • Killzone 过滤器删除了所有 FVG。 请检查 Broker time zone。在 H4 及以上的图表上,很少有K线在 killzone 内开盘。
  • 没有警报。 所有警报默认处于 Off 状态。FVG 和 OB 警报还需要开启对应的绘制。触及警报每个区域只触发一次。
  • 价格已进入某个 FVG,但它仍保持未填补状态。 在 Full fill 模式下,只有当价格到达缺口远端时缺口才会关闭;开启 Shrink 时,方框显示仍未填补的部分。
  • 策略测试器。 在可视化和非可视化模式下均可工作;测试器中不会发送弹窗、声音和通知。

技术支持:请在 MQL5 上向作者发送私信。