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:
- Dashboard Panel — A multi-column, multi-row grid pinned to the chart showing live data for every watched symbol.
- Chart Overlays — ATR-based bands, ADR level lines, breaker-block rectangles, divergence trendlines, and a candle countdown timer drawn on the active chart symbol.
Installation
- Copy
Advanced_Market_Maker_MT5.mq5into yourMQL5\Indicators\folder. - The indicator ships with a compiled TDI resource (
Traders_Dynamic_Index.ex5). This file is embedded — no separate install is needed. - Open MetaTrader 5, press Ctrl+N to open the Navigator, expand Indicators, and drag Advanced Market Maker MT5 onto any chart.
- 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.
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:
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):
- ▲ Green arrow — Fast MA crossed above Slow MA (bullish).
- ▼ Red arrow — Fast MA crossed below Slow MA (bearish).
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:
- N PFL — Price Formation Low (bullish).
N= number of daily bars since the swing low. - N PFH — Price Formation High (bearish).
N= number of daily bars since the swing high. - N.C.P (grey) — "No Confirmed PF" — the move hasn't reached 1×ADR yet.
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.
- Blue background — MAX ≥
AdrMultiplier(default 3.0). This triggers the ADR-reached alert. - Default background — Below the threshold.
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.
- Dark blue background — The peak move exceeded
AdrMultiplierRT(default 2.5).
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):
- APL — Active Pivot Low (M15 trend is up with move > ⅓ ADR).
- APH — Active Pivot High (M15 trend is down with move > ⅓ ADR).
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%):
- UP (green) — Yesterday closed bullish in the top 25% of its range, and the H1 trend is also bullish (confluence).
- DN (red) — Yesterday closed bearish in the bottom 25% of its range, and the H1 trend is also bearish.
- UP/DN in grey — The daily candle direction opposes the H1 trend (counter-trend signal).
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 MinDistance–MaxDistance
pips (and the range is < MaxRange pips), the cell displays the pip distance and highlights:
- Green + number — Stop-hunt low detected (bullish implication in an uptrend).
- Red + number — Stop-hunt high detected (bearish implication in a downtrend).
DR — Daily Range
Today's intraday range (High − Low) in pips. The background color changes when the range reaches 1×ADR:
- Green — ADR reached and the low occurred before the high (bullish day structure).
- Red — ADR reached and the high occurred before the low (bearish day structure).
DIV — RSI Divergence
Scans for RSI divergence on the configured RsiTimeFrameDiv (default H1) when the real-time
ADR multiple exceeds AdrMultiplierDiv (default 2.7):
- RD (green) — Regular bullish divergence (price making lower lows, RSI making higher lows).
- HD (green) — Hidden bullish divergence.
- RD (red) — Regular bearish divergence (price making higher highs, RSI making lower highs).
- HD (red) — Hidden bearish divergence.
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:
- Green — Buy breaker (broken above a sell-side structure).
- Red — Sell breaker (broken below a buy-side structure).
- Blue text with TF label — Price is retesting the breaker zone (high-probability entry area).
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:
- H — Price is at yesterday's high.
- L — Price is at yesterday's 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.
- UP (green) — Bullish SharkFin: RSI recovered from below the lower volatility band.
- DN (red) — Bearish SharkFin: RSI dropped from above the upper volatility band through the lower band.
- Empty — No active SharkFin condition.
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 each pair, if the trend is UP: the base currency (first 3 letters) gets
+1and the quote currency (last 3 letters) gets-1. - For each pair, if the trend is DOWN: the base gets
-1and the quote gets+1. - The raw score is divided by the number of pairs containing that currency, producing a normalized value between
-1.0(weakest) and+1.0(strongest).
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 Range | Background | Meaning |
|---|---|---|
| > 0.5 | Green | Strong currency — bullish across most pairs |
| > 0.2 | Dark Green | Moderately strong |
| -0.2 to 0.2 | Grey | Neutral — mixed signals |
| < -0.2 | Dark Red | Moderately weak |
| < -0.5 | Red | Weak currency — bearish across most pairs |
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:
- Upper Band = LWMA(
Length) + ATR(ATRPeriodBack) ×ATRMultiplier - Middle Line = LWMA of price (also the 50 EMA buffer for reference).
- Lower Band = LWMA(
Length) − ATR(ATRPeriodBack) ×ATRMultiplier
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.
- Green dotted — From a PFL (upside targets).
- Red dotted — From a PFH (downside targets).
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:
- Solid line — Regular divergence.
- Dotted line — Hidden divergence.
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:
| Line | Calculation | Default | Purpose |
|---|---|---|---|
| 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)
In plain English:
- The smoothed RSI (Green Line) was below the Market Base Line a few bars back, indicating a weak/oversold state.
- It then dipped below the Lower Volatility Band (extreme oversold).
- 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.
res = -1). The indicator requires that the RSI was genuinely oversold, not merely fluctuating
near the band edge.
SharkFin DN (Bearish Crash)
In plain English:
- The smoothed RSI was above the Upper Volatility Band a few bars back (overbought/extreme strength).
- It was still above the Lower Band on bar 2.
- 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.
Signal Lifecycle
- The TDI is only recalculated when a new bar forms on
TimeFrameTDI(tracked via_LastTime[]). This prevents mid-bar noise. - 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.
- If the Trend Filter is active, the signal is only shown when confluence conditions are met.
- 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
| Parameter | Default | Description |
|---|---|---|
| TimeFrameTDI | M15 | Timeframe on which TDI is calculated |
| InpPeriodRSI | 13 | Base RSI period |
| InpAppliedPriceRSI | Close | Price used for RSI |
| InpPeriodVolBand | 34 | Period for the SMA and StdDev of RSI (volatility bands) |
| InpPeriodSmRSI | 2 | Fast smoothing of RSI (Green Line) |
| InpMethodSmRSI | SMA | Smoothing method for Green Line |
| InpPeriodSmSig | 7 | Slow smoothing of RSI (Signal Line) |
| InpMethodSmSig | SMA | Smoothing method for Signal Line |
| InpOverbought | 68 | Static overbought reference level (for TDI chart overlay, not SharkFin logic) |
| InpOversold | 32 | Static 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:
| Filter | Default | UP signal requires | DN 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.
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
| Parameter | Default | Description |
|---|---|---|
| SymbolStr1 | 14 pairs (AUD..EUR) | First set of symbols, comma-separated |
| SymbolStr2 | 14 pairs (EUR..JPY) | Second set of symbols, comma-separated |
| AdrPeriod | 15 | Number of daily bars used to calculate ADR |
| AdrMultiplier | 3.0 | ADR multiple that triggers the MAX alert |
| AdrMultiplierRT | 2.5 | ADR multiple that highlights the RT column |
| ClosePercent | 75 | Daily candle close threshold (%) for DC column |
| LookBackDays | 5 | Lookback window for certain day-level checks |
| Prefix | "AMD" | Text prefix added to alert messages |
Moving Average & Timeframes
| Parameter | Default | Description |
|---|---|---|
| TimeFrame | H1 | Primary timeframe for trend & PF |
| TimeFrame2 | M15 | Secondary timeframe for IDC (APH/APL) & 50-M15 |
| MaMethod | EMA | Moving average method |
| MaMode | Close | Applied price |
| MaShift | 0 | MA shift |
| FastMaPeriod | 13 | Fast MA period |
| SlowMaPeriod | 50 | Slow MA period |
| SendPushPf | true | Send push notification when a new PF forms |
| PFH_LHistory | 1000 | How many bars back to scan for historical PFH/PFL labels |
RSI Divergence Parameters
| Parameter | Default | Description |
|---|---|---|
| ShowDivergence | true | Enable divergence scanning |
| AdrMultiplierDiv | 2.7 | Minimum RT ADR multiple before divergence is checked |
| RsiTimeFrameDiv | H1 | Timeframe for RSI divergence |
| RsiPeriodDiv | 13 | RSI period for divergence |
| RsiPrice | Close | Applied price for RSI |
Stop Hunt & Daily Range
| Parameter | Default | Description |
|---|---|---|
| ShowDailyRange | true | Enable the DR column |
| MaxRange | 50 | Max initial-range width (pips) to qualify as a stop-hunt setup |
| MinDistance | 10 | Minimum pip penetration beyond the range |
| MaxDistance | 50 | Maximum pip penetration beyond the range |
Breaker Block Parameters
| Parameter | Default | Description |
|---|---|---|
| SendBreakerAlert | true | Show screen alerts for breaker events |
| SendBreakerNotif | true | Send push notifications for breaker events |
| BreakerHistory | 1000 | How many bars back to scan for breakers |
| ShowAllBreakers | false | If true, keep all historical breaker rectangles on chart |
| ShowBreaker1 | true | Enable Breaker 1 |
| BreakerTF1 | M15 | Timeframe for Breaker 1 |
| BuyBreakerClr1 | Green | Color for buy breakers (TF1) |
| SellBreakerClr1 | Red | Color for sell breakers (TF1) |
| ShowBreaker2 | true | Enable Breaker 2 |
| BreakerTF2 | H4 | Timeframe for Breaker 2 |
| BuyBreakerClr2 | Dark Green | Color for buy breakers (TF2) |
| SellBreakerClr2 | Dark Red | Color for sell breakers (TF2) |
Alerts & Notifications
| Parameter | Default | Description |
|---|---|---|
| ShowAlert | true | Screen alert when a pair reaches ADR MAX |
| SendNotif | true | Push notification for ADR MAX |
| ShowShAlert | true | Screen alert for TDI SharkFin signals |
| SendShNotif | true | Push notification for TDI SharkFin signals |
| ShowLines | true | Draw ADR level lines on chart |
ATR Bands Parameters
| Parameter | Default | Description |
|---|---|---|
| LookBack | 500 | Maximum bars for band calculation (0 = disabled) |
| ShowBands | true | Draw ATR bands on startup |
| Method | LWMA | Moving average type for the band center |
| Lenght | 61 | Period for the center MA |
| Source | Close | Price type for the center MA |
| ATRPeriodBack | 110 | ATR period |
| ATRMultiplier | 2.8 | ATR multiplier for band width |
| colorUpperBands | Blue | Upper band color |
| colorMiddleBands | Aqua | Middle line color |
| colorLowerBands | Blue | Lower band color |
TDI Parameters
See the TDI Deep Dive section for the full parameter table and explanation.
Visual & Panel Parameters
| Parameter | Default | Description |
|---|---|---|
| X | 0 | Panel X offset from left edge |
| Y | 30 | Panel Y offset from top edge |
| H | 22 | Cell height in pixels |
| ChangeSymbol | true | Allow clicking symbol names to switch chart |
| Corner | Right Upper | Corner anchor for the ADR box panel |
| Adr1BoxColor | DodgerBlue | Color of 1-ADR measurement boxes |
| Adr3BoxColor | Crimson | Color of 3-ADR measurement boxes |
| ChartOnForeground | false | Set chart foreground mode |
Panel Buttons Reference
| Button | Location | Action |
|---|---|---|
| MIN / MAX | Top-left of panel | Minimize or restore the entire dashboard |
| 1 ADR | Bottom-right panel | Place a 1×ADR rectangle on the chart |
| 3 ADR | Bottom-right panel | Place a 3×ADR rectangle on the chart |
| r (red X) | Next to 1/3 ADR | Remove the last placed ADR box |
| H Bands / S Bands | Bottom-right panel | Toggle ATR bands visibility |
| H old PFHL / S old PFHL | Bottom-right panel | Toggle historical PFH/PFL labels on chart |
| BR M15 / BR H4 (header) | Panel header row | Toggle breaker column visibility |
| Symbol name | Each row | Switch chart to that symbol |
Color Key
| Color | Meaning |
|---|---|
| Green | Bullish signal, buy-side event |
| Dark Green | Strong/historical bullish (PF > 2 days, H4 buy breaker) |
| Red | Bearish signal, sell-side event |
| Dark Red | Strong/historical bearish (PF > 2 days, H4 sell breaker) |
| Blue | ADR MAX threshold reached |
| Dark Blue | ADR RT threshold reached, IDC RT value |
| Grey | Default / neutral / no signal |
| Gold | Active symbol highlight, header buttons |
| Silver | N.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.