Advanced Market Maker MT5

G-Labs — Multi-Symbol ADR Dashboard & Trading Toolkit
www.g-labs.software
v 1.2

Overview

Advanced Market Maker MT5 is a comprehensive multi-symbol chart indicator for MetaTrader 5. It monitors up to 28+ forex pairs simultaneously from a single chart, presenting a real-time dashboard with ADR analysis, trend detection, order-block breaker identification, TDI SharkFin signals, RSI divergence, stop-hunt detection, and much more.

The indicator consists of two main visual components:

  1. Dashboard Panel — A multi-column, multi-row grid pinned to the chart showing live data for every watched symbol.
  2. Chart Overlays — ATR-based bands, ADR level lines, breaker-block rectangles, divergence trendlines, and a candle countdown timer drawn on the active chart symbol.
Key Capabilities Multi-symbol ADR monitoring • Dual-timeframe MA trend & crossover detection • Price Formation (PFH/PFL) labeling • Order-block breaker detection on two timeframes • TDI SharkFin signals with trend-filter confluence • RSI divergence (regular & hidden) • Stop-hunt detection • Yesterday H/L proximity alerts • Daily candle confirmation • ATR channel bands • Push notifications & screen alerts • Click-to-switch symbols.

Installation

  1. Copy Advanced_Market_Maker_MT5.mq5 into your MQL5\Indicators\ folder.
  2. The indicator ships with a compiled TDI resource (Traders_Dynamic_Index.ex5). This file is embedded — no separate install is needed.
  3. Open MetaTrader 5, press Ctrl+N to open the Navigator, expand Indicators, and drag Advanced Market Maker MT5 onto any chart.
  4. In the properties dialog, check "Allow DLL imports" is off (not needed) and click OK.

First Run

On the first attach the indicator will build the dashboard panel and calculate data for every symbol listed in the SymbolStr1 / SymbolStr2 inputs. This may take a few seconds while it downloads history for each pair and timeframe. The panel refreshes every 500 ms via an internal timer.

Symbol Names Make sure the symbol names in SymbolStr1 / SymbolStr2 match your broker's naming convention exactly (e.g., EURUSD vs EURUSD.i). Unrecognized names are silently skipped.

Dashboard Panel Layout

The panel is displayed on the chart as a grid of interactive buttons. The header row shows column labels; each subsequent row represents one watched symbol. Below is a simplified mockup showing the 17 columns:

SYMBOL
éê
PF
MAX
RT
IDC
IDC RT
50-M15
DC
ADR
S-H
DR
DIV
BR M15
BR H4
YHL
TDI
EURUSD
2 PFL
3.12
2.87
APL
1.45
T
UP
87
92
RD
M15
H4
UP
GBPUSD
1 PFH
2.10
1.95
APH
0.88
DN
110
12
115
RD
M15
H4
H
DN
USDJPY
N.C.P
0.85
0.72
65
58
CURRENCY STRENGTH
AUD 0.8
NZD 0.6
EUR 0.3
GBP 0.1
CHF -0.1
CAD -0.3
USD -0.6
JPY -0.7

The above is a simplified representation. Actual colors, widths and values update in real time on your chart.

SYMBOL Column

Displays the pair name. Click any symbol row to instantly switch the chart to that pair (if ChangeSymbol = true). The currently active chart symbol is highlighted in gold.

TREND Column

Shows the primary trend direction on Time Frame 1 (default H1), determined by the crossover of a Fast MA (default 13 EMA) and a Slow MA (default 50 EMA):

PF — Price Formation

Once the total move from the MA-crossover swing point exceeds 1×ADR, the indicator labels the swing origin as a Price Formation and counts how many daily bars ago it occurred:

When PF = 1 or 2 days, the cell uses a brighter color (recent formation).

MAX Column

The peak move (from swing low to swing high within the current trend leg), expressed as a multiple of ADR. For example, 3.12 means the swing move reached 3.12× the average daily range.

RT — Real-Time ADR Multiple

The live distance from the swing point to the current bid, expressed as an ADR multiple. Unlike MAX (which shows the peak), RT updates tick by tick as price moves.

IDC & IDC RT

IDC stands for Intra-Day Confirmation. It repeats the same trend-and-swing logic as TREND/PF, but on Time Frame 2 (default M15):

IDC RT shows the real-time ADR multiple for that secondary-timeframe leg.

50-M15 — MA Touch

Displays T when the current M15 candle touches or crosses the Slow MA (50 EMA by default) on the M15 timeframe. Empty otherwise. This is a "touch" event useful for pullback entries.

DC — Daily Candle

Evaluates yesterday's completed daily candle against the ClosePercent threshold (default 75%):

ADR Column

The Average Daily Range in pips, calculated over the last AdrPeriod days (default 15). This is the core measurement used by almost every other column.

S-H — Stop Hunt

Detects potential stop-hunt scenarios. The indicator builds a range from the first 8 hours of the trading day using M15 bars. If the daily high or low breaches that range by MinDistanceMaxDistance pips (and the range is < MaxRange pips), the cell displays the pip distance and highlights:

DR — Daily Range

Today's intraday range (High − Low) in pips. The background color changes when the range reaches 1×ADR:

DIV — RSI Divergence

Scans for RSI divergence on the configured RsiTimeFrameDiv (default H1) when the real-time ADR multiple exceeds AdrMultiplierDiv (default 2.7):

BR — Breaker Blocks

Two columns show order-block breaker status on two independent timeframes (BreakerTF1 default M15, BreakerTF2 default H4). When a candle breaks through a prior swing structure, the source candle's range becomes the breaker zone:

The breaker columns are toggle-able: click the header button to show/hide breaker data. When hidden, the header turns grey.

YHL — Yesterday High/Low

Signals when the current M15 candle is touching yesterday's high or low:

TDI Column — SharkFin Signals

Displays TDI SharkFin reversal signals based on the Traders Dynamic Index sub-indicator running on the configured TimeFrameTDI (default M15). See the TDI Deep Dive section below for a complete explanation.

When the Trend Filter is enabled, TDI signals are only displayed if they align with the PF and/or IDC direction (confluence filtering).

Currency Strength Row

Below the main symbol grid, a "CURRENCY STRENGTH" row displays the 8 major currencies (USD, EUR, GBP, JPY, AUD, NZD, CAD, CHF) sorted from strongest to weakest, left to right. This updates every 500ms alongside the rest of the panel.

How the score is calculated

The strength score is derived from the H1 trend direction (the same MA crossover that drives the TREND column arrow) across all watched pairs:

For example, if EUR appears in 7 pairs and 6 of them show a bullish EUR trend, the EUR score would be approximately +0.7.

Reading the row

Each cell displays the currency code and its numeric score (e.g., GBP 0.7 or JPY -0.4). The cells are re-sorted on every update, so the leftmost cell is always the strongest currency and the rightmost is always the weakest.

Color coding

Score RangeBackgroundMeaning
> 0.5 GreenStrong currency — bullish across most pairs
> 0.2 Dark GreenModerately strong
-0.2 to 0.2 GreyNeutral — mixed signals
< -0.2 Dark RedModerately weak
< -0.5 RedWeak currency — bearish across most pairs
How to use it Pair the strongest currency (far left) against the weakest (far right) for the highest-conviction setups. For example, if the row reads AUD 0.8 | ... | JPY -0.6, check AUDJPY first — it has the strongest directional tailwind. Avoid trading pairs where both currencies have similar scores (grey-grey), as those pairs are likely choppy and directionless.

ATR Bands (Chart Overlay)

Three lines are plotted on the chart for the active symbol only:

Use the "H Bands / S Bands" button (bottom-right panel) to show or hide the bands at runtime without removing the indicator.

ADR Level Lines

When a PF is confirmed for the current chart symbol, horizontal dotted lines are drawn at 1×ADR, 2×ADR, and 3×ADR from the PF swing point. On H4, lines extend up to 9×ADR. These serve as target/exhaustion levels.

ADR Boxes (1 ADR / 3 ADR)

The bottom-right button panel provides 1 ADR and 3 ADR buttons. Clicking them drops a draggable rectangle onto the chart sized to exactly 1× or 3× ADR. Use these for quick visual measurement. The r button removes the last placed box.

Breaker Blocks on Chart

On the active chart symbol, the indicator draws rectangles for the most recent Source zone and Breaker zone on each configured timeframe. Tooltips describe whether it's a Buy/Sell Source or Breaker. A horizontal Fibonacci-style level line marks the key breaker price.

RSI Divergence Lines on Chart

When divergence is detected on the active symbol, a trendline is drawn connecting the two relevant swing points:

Candle Countdown Timer

A yellow text object near the current candle displays the time remaining until the next bar opens in HH:MM:SS format. It updates on every timer tick (500 ms).

TDI — How It Works (Deep Dive)

What Is the TDI?

The Traders Dynamic Index is a composite indicator built on top of RSI. Rather than using the raw TDI indicator, this Market Maker builds TDI internally from first principles using MT5 native handles. It produces five derived lines from the base RSI:

LineCalculationDefaultPurpose
Green Line (Price Line) MA of RSI, fast smoothing SMA period 2 of RSI(13) Shows instant RSI momentum
Signal Line MA of RSI, slow smoothing SMA period 7 of RSI(13) Lagging reference (not directly used by SharkFin logic)
Upper Volatility Band SMA(RSI, 34) + 1.6185 × StdDev(RSI, 34) Dynamic overbought zone
Lower Volatility Band SMA(RSI, 34) − 1.6185 × StdDev(RSI, 34) Dynamic oversold zone
Market Base Line (Mid) (Upper + Lower) / 2 Neutral center of volatility bands

The 1.6185 multiplier on the standard deviation creates a channel that adapts to RSI volatility. When RSI is compressed, the bands tighten; when RSI swings widely, the bands expand.

SharkFin Signal Detection

The indicator doesn't simply show trend direction. It detects a very specific pattern called a "SharkFin" — a rapid RSI cross of the volatility band boundary that signals an extreme momentum shift. The TDI column is recalculated every time a new bar forms on the TimeFrameTDI (default M15).

SharkFin UP (Bullish Recovery)

Bar 1: Green Line > Lower Band
Bar 2: Green Line Lower Band
Bars 3–4: Green Line was < Market Base Line (Mid)
=
UP signal confirmed

In plain English:

  1. The smoothed RSI (Green Line) was below the Market Base Line a few bars back, indicating a weak/oversold state.
  2. It then dipped below the Lower Volatility Band (extreme oversold).
  3. On the most recent completed bar, it recovered back above the Lower Band.

This "dip-and-recover" is the SharkFin shape. It suggests that selling pressure was exhausted and momentum is starting to reverse upward. The extra lookback check (bars 3–4 below the midline) filters out false signals that occur when RSI was already strong.

Invalidation If looking back at bars 3–4 the Green Line was already above the Lower Band (i.e., RSI never truly came from a weak position), the signal is discarded (res = -1). The indicator requires that the RSI was genuinely oversold, not merely fluctuating near the band edge.

SharkFin DN (Bearish Crash)

Bar 1: Green Line Lower Band
Bar 2: Green Line Lower Band
Bars 3–4: Green Line was > Upper Band
=
DN signal confirmed

In plain English:

  1. The smoothed RSI was above the Upper Volatility Band a few bars back (overbought/extreme strength).
  2. It was still above the Lower Band on bar 2.
  3. On bar 1, it has crashed below the Lower Band (from overbought all the way to oversold in a few bars).

This represents a dramatic momentum collapse — price went from extreme strength to extreme weakness very quickly. The "sharkfin" shape in this case is the sharp peak followed by the cliff drop. This often signals the start of a strong bearish leg.

Why check the Upper Band? The bars 3–4 lookback verifies the RSI came from overbought territory (above the upper band). A simple drop below the lower band could just be normal oscillation — but a drop from above the upper band to below the lower band in 3–4 bars is exceptional and much more significant.

Signal Lifecycle

  1. The TDI is only recalculated when a new bar forms on TimeFrameTDI (tracked via _LastTime[]). This prevents mid-bar noise.
  2. Once a signal fires ("UP" or "DN"), it is displayed in the panel cell and persists until the next TDI recalculation produces a different result or an empty state.
  3. If the Trend Filter is active, the signal is only shown when confluence conditions are met.
  4. Alerts (screen + push) fire exactly once per new signal when zz != -1 (the signal just formed on this calculation cycle, not carried over).

TDI Configuration Parameters

ParameterDefaultDescription
TimeFrameTDIM15Timeframe on which TDI is calculated
InpPeriodRSI13Base RSI period
InpAppliedPriceRSIClosePrice used for RSI
InpPeriodVolBand34Period for the SMA and StdDev of RSI (volatility bands)
InpPeriodSmRSI2Fast smoothing of RSI (Green Line)
InpMethodSmRSISMASmoothing method for Green Line
InpPeriodSmSig7Slow smoothing of RSI (Signal Line)
InpMethodSmSigSMASmoothing method for Signal Line
InpOverbought68Static overbought reference level (for TDI chart overlay, not SharkFin logic)
InpOversold32Static oversold reference level

Trend Filter (TDI Confluence)

The Trend Filter controls whether TDI signals are shown on the dashboard. When TrendFilter = true, a TDI signal must align with other dashboard columns to be displayed. Three sub-filters can be independently enabled:

FilterDefaultUP signal requiresDN signal requires
TrendFilter1 true PFL + APL + TDI UP PFH + APH + TDI DN
TrendFilter2 false PFL + TDI UP PFH + TDI DN
TrendFilter3 true APL + TDI UP APH + TDI DN

If any of the enabled filters passes, the signal is shown. If all three sub-filters are disabled, TDI signals pass through unfiltered regardless of the master TrendFilter setting.

Recommended Setup The defaults (TrendFilter1 = true, TrendFilter3 = true) provide strong confluence: a TDI SharkFin UP only appears when the H1 trend already has a confirmed PFL and/or the M15 timeframe shows an APL. This dramatically reduces noise and focuses attention on high-probability setups.

Configuration — General Parameters

ParameterDefaultDescription
SymbolStr114 pairs (AUD..EUR)First set of symbols, comma-separated
SymbolStr214 pairs (EUR..JPY)Second set of symbols, comma-separated
AdrPeriod15Number of daily bars used to calculate ADR
AdrMultiplier3.0ADR multiple that triggers the MAX alert
AdrMultiplierRT2.5ADR multiple that highlights the RT column
ClosePercent75Daily candle close threshold (%) for DC column
LookBackDays5Lookback window for certain day-level checks
Prefix"AMD"Text prefix added to alert messages

Moving Average & Timeframes

ParameterDefaultDescription
TimeFrameH1Primary timeframe for trend & PF
TimeFrame2M15Secondary timeframe for IDC (APH/APL) & 50-M15
MaMethodEMAMoving average method
MaModeCloseApplied price
MaShift0MA shift
FastMaPeriod13Fast MA period
SlowMaPeriod50Slow MA period
SendPushPftrueSend push notification when a new PF forms
PFH_LHistory1000How many bars back to scan for historical PFH/PFL labels

RSI Divergence Parameters

ParameterDefaultDescription
ShowDivergencetrueEnable divergence scanning
AdrMultiplierDiv2.7Minimum RT ADR multiple before divergence is checked
RsiTimeFrameDivH1Timeframe for RSI divergence
RsiPeriodDiv13RSI period for divergence
RsiPriceCloseApplied price for RSI

Stop Hunt & Daily Range

ParameterDefaultDescription
ShowDailyRangetrueEnable the DR column
MaxRange50Max initial-range width (pips) to qualify as a stop-hunt setup
MinDistance10Minimum pip penetration beyond the range
MaxDistance50Maximum pip penetration beyond the range

Breaker Block Parameters

ParameterDefaultDescription
SendBreakerAlerttrueShow screen alerts for breaker events
SendBreakerNotiftrueSend push notifications for breaker events
BreakerHistory1000How many bars back to scan for breakers
ShowAllBreakersfalseIf true, keep all historical breaker rectangles on chart
ShowBreaker1trueEnable Breaker 1
BreakerTF1M15Timeframe for Breaker 1
BuyBreakerClr1GreenColor for buy breakers (TF1)
SellBreakerClr1RedColor for sell breakers (TF1)
ShowBreaker2trueEnable Breaker 2
BreakerTF2H4Timeframe for Breaker 2
BuyBreakerClr2Dark GreenColor for buy breakers (TF2)
SellBreakerClr2Dark RedColor for sell breakers (TF2)

Alerts & Notifications

ParameterDefaultDescription
ShowAlerttrueScreen alert when a pair reaches ADR MAX
SendNotiftruePush notification for ADR MAX
ShowShAlerttrueScreen alert for TDI SharkFin signals
SendShNotiftruePush notification for TDI SharkFin signals
ShowLinestrueDraw ADR level lines on chart

ATR Bands Parameters

ParameterDefaultDescription
LookBack500Maximum bars for band calculation (0 = disabled)
ShowBandstrueDraw ATR bands on startup
MethodLWMAMoving average type for the band center
Lenght61Period for the center MA
SourceClosePrice type for the center MA
ATRPeriodBack110ATR period
ATRMultiplier2.8ATR multiplier for band width
colorUpperBandsBlueUpper band color
colorMiddleBandsAquaMiddle line color
colorLowerBandsBlueLower band color

TDI Parameters

See the TDI Deep Dive section for the full parameter table and explanation.

Visual & Panel Parameters

ParameterDefaultDescription
X0Panel X offset from left edge
Y30Panel Y offset from top edge
H22Cell height in pixels
ChangeSymboltrueAllow clicking symbol names to switch chart
CornerRight UpperCorner anchor for the ADR box panel
Adr1BoxColorDodgerBlueColor of 1-ADR measurement boxes
Adr3BoxColorCrimsonColor of 3-ADR measurement boxes
ChartOnForegroundfalseSet chart foreground mode

Panel Buttons Reference

ButtonLocationAction
MIN / MAXTop-left of panelMinimize or restore the entire dashboard
1 ADRBottom-right panelPlace a 1×ADR rectangle on the chart
3 ADRBottom-right panelPlace a 3×ADR rectangle on the chart
r (red X)Next to 1/3 ADRRemove the last placed ADR box
H Bands / S BandsBottom-right panelToggle ATR bands visibility
H old PFHL / S old PFHLBottom-right panelToggle historical PFH/PFL labels on chart
BR M15 / BR H4 (header)Panel header rowToggle breaker column visibility
Symbol nameEach rowSwitch chart to that symbol

Color Key

ColorMeaning
GreenBullish signal, buy-side event
Dark GreenStrong/historical bullish (PF > 2 days, H4 buy breaker)
RedBearish signal, sell-side event
Dark RedStrong/historical bearish (PF > 2 days, H4 sell breaker)
BlueADR MAX threshold reached
Dark BlueADR RT threshold reached, IDC RT value
GreyDefault / neutral / no signal
GoldActive symbol highlight, header buttons
SilverN.C.P / counter-trend daily candle

FAQ & Troubleshooting

The panel is empty or some symbols are missing

Verify that the symbol names in SymbolStr1 / SymbolStr2 exactly match your broker's naming convention. Some brokers use suffixes like .i, .m, or _. Only symbols available in your Market Watch will be loaded.

The indicator takes a long time to load

On first attach, it must download H1, M15, H4, and D1 history for every symbol. Reduce the symbol count or lower BreakerHistory / PFH_LHistory to speed things up.

TDI column is always empty

Check that the TimeFrameTDI data is available for all symbols. If you have Trend Filter enabled and the conditions aren't met, signals will be suppressed. Try setting TrendFilter = false temporarily to confirm TDI is generating signals.

Breaker columns show nothing

Breaker columns are toggleable. Click the BR header button to activate them. The header background changes from grey (off) to gold (on).

ADR boxes don't appear

The boxes are placed at the current price level and may be off-screen if the chart is zoomed to a different time range. Scroll to the current bar or use the bottom-right panel's r button to clear and re-place them.

Push notifications not arriving

Ensure push notifications are configured in MetaTrader 5 under Tools → Options → Notifications with your MetaQuotes ID. The indicator uses SendNotification() which requires this setup.

Advanced Market Maker MT5 v1.2 — Copyright © 2026 G-Labs — www.g-labs.software