Version 2.0 (v1.53) β€” MetaTrader 5 & MetaTrader 4

BTMM STATE ENGINE PRO

The Professional Market Maker Cycle Tracker
Powered by the Beat The Market Maker Methodology β€” Automated by G-Labs
Available on MetaTrader 4 & MetaTrader 5
πŸ“Š

28-Pair Scanner

Monitor every major and minor pair from one screen. Never miss a setup.

🎯

Auto Level Counting

Room-based cycle tracking with Peak Formation detection β€” fully automated.

⚑

Precision Entries

Type 1, Type 2, Safety & ID50 signals with SL/TP β€” the moment they fire.

πŸ“ˆ

HTF Context Panel

H4 & D1 trend and EMA alignment at a glance β€” confirm confluence instantly.

WHAT'S NEW IN v1.53
New Features
Higher Timeframe Context Panel β€” H4 & D1 trend + EMA alignment displayed below the scanner (Part 9)
HTF Status in Alerts β€” Signal alerts now include [H4:Bullish D1:Bearish] for confluence
Improvements
MQL5 Market Validation β€” Passes EURUSD M1, XAUUSD D1, GBPUSD M30 tests
HTF Data Accuracy β€” Fixed stale D1 trend after symbol switch
Performance β€” Persistent indicator handles for HTF EMAs

Part 1The Beat The Market Maker Methodology

The foreign exchange market is not random. Behind every spike, every stop hunt, every reversal lies a single force: the market maker. These institutional participants are contractually obligated to provide liquidity on both sides of the market. To do so profitably, they follow a repeating, mechanical cycle β€” and once you can see it, you can trade alongside it.

The Beat The Market Maker (BTMM) methodology, developed by Steve Mauro, teaches retail traders to recognise this cycle and position themselves on the right side of the institutional order flow. Instead of fighting the market maker, you trade with them β€” entering after the manipulation phase and riding the distribution move.

The Core Insight
🏦
Market Makers Must Fill Orders
They cannot simply buy or sell at will. They must accumulate a position against retail traders β€” buying when retail sells, selling when retail buys.
πŸ”„
The Cycle Repeats Daily
Accumulate during Asia, manipulate at session opens (stop hunts), then distribute in the genuine directional move. Every day, every pair.
πŸ“
The Cycle Has Structure
Price moves in counted levels β€” typically 3 levels in one direction before reversing. This is measurable, trackable, and tradeable.

The Three Phases β€” Every Single Day

The Market Maker Daily Cycle
πŸŒ™
ACCUMULATION
Asian Session β€” 00:00–07:00 GMT
Quiet, low volatility. The market maker quietly builds their position inside a tight range. Retail traders see "nothing happening."
β†’
πŸ’₯
MANIPULATION
London / NY Open
Price hunts stop losses above and below the Asian range. Retail gets shaken out. The market maker fills the rest of their order.
β†’
πŸš€
DISTRIBUTION
The Real Move
Position complete. The genuine directional move begins. This is where we enter.

The Cycle Drawn β€” What It Actually Looks Like on a Chart

This is the pattern you will see playing out on your charts every single day. The indicator draws and labels all of this automatically β€” but understanding the shape of the cycle is essential.

Typical Bullish Market Maker Cycle β€” Intraday Price Action
00:00
04:00
08:00
12:00
16:00
20:00
AR HIGH ─────────────────
AR LOW ──────────────────
ID50
πŸŒ™ ASIAN SESSION
Accumulation β€” tight range
πŸ’₯ STOP HUNT
Sweeps retail stops below AR
βœ— βœ— βœ— Retail stop losses
⚑ EMA CROSS
5 crosses above 13 β†’ ENTRY
πŸš€ DISTRIBUTION
The real move β€” ride this
LONDON KZ
NY KZ

Read it left to right like a chart. During Asia, price chops sideways inside a tight box. At the London open, the market maker spikes price below the range to trigger retail stop losses and fill their buy orders cheaply. Once filled, price reverses sharply β€” the 5 EMA crosses above the 13 β€” and the genuine bullish move begins. This is the distribution phase, and it's where the indicator fires your entry signal.

Typical Bearish Market Maker Cycle β€” The Mirror Image
00:00
04:00
08:00
12:00
16:00
20:00
AR HIGH ─────────────────
AR LOW ──────────────────
ID50
πŸŒ™ ASIAN SESSION
Accumulation β€” tight range
πŸ’₯ STOP HUNT
Sweeps buy stops above AR
βœ— βœ— βœ— Retail buy stops
⚑ EMA CROSS
5 crosses below 13 β†’ SELL
πŸš€ DISTRIBUTION
The real move β€” ride this
LONDON KZ
NY KZ

The bearish cycle is the exact mirror: price spikes above the Asian Range to hunt buy stops, fills the market maker's sell orders, then reverses sharply downward. The 5 EMA crosses below the 13, and the distribution sell-off begins.

The Pattern You're Looking For β€” Every Day
1️⃣
Asian range forms a tight box
2️⃣
Price spikes through one side (stop hunt)
3️⃣
Sharp reversal β€” EMA crossover fires
4️⃣
Strong directional move β€” your trade

The beauty of BTMM is that this cycle doesn't just play out once. It plays out on multiple timeframes simultaneously β€” each daily cycle is one "level" inside a larger multi-day swing. Stack enough levels in one direction, and you get a Peak Formation β€” the high-probability reversal point where the big swing turns.

What This Indicator Automates The BTMM State Engine Pro tracks the entire cycle β€” Asian Range boxes, level counting, room boundaries, Peak Formation detection, and EMA crossover entries β€” across multiple pairs simultaneously. Available on MT4 and MT5, it turns weeks of manual chart analysis into a real-time, alert-driven system.

Part 1BRoom-Bound Staircase Levels

This is the concept that makes BTMM unique. Every multi-day swing is built like a staircase β€” each step is a "level," and each level is contained inside a "room."

What Is a Room?

A room is a price range defined by Asian Range boxes at the same level. Think of it as a floor in a building β€” price enters the room, bounces around inside it across one or more sessions, and eventually breaks out to start a new level.

How a Room Is Built
ROOM β€” Level 2 (UP)
AR BOX 1
Day 1
Room bounds set
from this box
AR BOX 2
Day 2
Overlaps Room β†’
Room extends
AR BOX 3
Day 3
Overlaps Room β†’
Still Level 2
β†’
AR Box 4 breaks ABOVE the room β†’
β–²
NEW ROOM β€” Level 3 (UP) β€” PEAK ZONE
AR BOX 4
Day 4
⚠ Level 2+ = Watch for reversal

The rule is simple: if the next Asian Range overlaps the current room, it stays at the same level. If it breaks cleanly above or below, a new level begins and a new room opens.

Close-Based Level Breaks β€” Why the Close Matters
Level breaks are determined by candle close prices, not wicks. This is a core BTMM principle: the close is what matters, not the wick.
Wicks Lie
Wick spikes are the market maker's tool for stop hunting. A wick through a level is often a trap, not a genuine break. Using wicks for level breaks would trigger false signals constantly.
Closes Confirm
When price closes beyond a room boundary, the market maker has committed. The level break is genuine. This prevents false triggers from wick spikes and stop hunts.

The Complete 3-Level Cycle + Reset

A typical market maker swing runs 3 levels in one direction, then reverses. Here's what the full cycle looks like β€” this is exactly what the indicator tracks automatically:

Full Bullish 3-Level Cycle β†’ Peak Formation β†’ Bearish Reset
Neutral start
L1
ROOM 1
β†—
Trend confirmed
L2
ROOM 2
β†—
⚠ PEAK ZONE
L3
ROOM 3
PFH CONFIRMED βœ“
Rooms repaint RED
β†˜
RESET
New cycle begins
L1
DOWN
Bearish staircase
now begins…
Day 1–2
Day 3–5
Day 6–8
Day 9+
Level 1 β€” Start
First room opens. Direction is neutral (grey) until the next breakout determines UP or DOWN.
Level 2 β€” Trend
Direction confirmed. Price has moved cleanly to a new range. Trade with the trend here.
Level 2+ β€” Peak Formation Zone
From L2 onward, the market maker may be fully loaded. Any reversal here can trigger PFH/PFL.
Reset β€” New Cycle
PFH/PFL confirmed. Rooms repaint. The opposite staircase begins from L1 in the new direction. After an initial peak, even an L1 reversal creates a peak reset β€” a new peak reference without needing L2+.
Stale β€” Forced Reset
Too many overlapping Asian Range boxes in one room with no breakout. The cycle resets but preserves direction. The market is ranging β€” wait for a fresh breakout.
Why This Indicator Is Powerful
Manually counting levels across 28 pairs, watching for Asian Range overlaps, tracking room boundaries, and spotting Peak Formations β€” this would take a professional trader hours per day. The State Engine does it in milliseconds, updating every tick, and alerts you the instant a tradeable setup appears. You go from "I hope I didn't miss anything" to "I see every setup on every pair, in real time."

Part 1CThe Five EMAs β€” Your Institutional Roadmap

BTMM uses a specific set of Exponential Moving Averages, each serving a distinct purpose. Together they create a layered view of institutional momentum β€” from the fastest scalp-level pulse to the longest-term trend anchor.

EMA Stack β€” Fast to Slow
5
Fast EMA
Immediate momentum. The trigger line for crossover entries.
13
Slow EMA
Short-term trend. When 5 crosses 13, a signal fires.
50
ID50 β€” Institutional Decision
The key pullback level. Safety & ID50 entries fire here.
200
Mayo Line
The "mayo level." Above = bullish environment. Below = bearish.
800
Blueberry
Long-term directional anchor. Confluence with this = highest-quality setups.

How The Crossover Works

The 5/13 EMA crossover is the primary entry trigger. When the Fast (5) crosses above the Slow (13), it signals bullish momentum. When it crosses below, bearish. But a raw crossover alone produces noise β€” which is why the indicator adds multiple confirmation layers:

Crossover β†’ Multi-Layer Confirmation β†’ Signal
5/13 Cross
+
AR Context
Where in the range?
+
Vector Candle
Above-avg range
+
TDI Filter
RSI momentum
+
Cycle Dir
Aligned?
=
SIGNAL
T1 / T2 / Safety / ID50
EMAPeriodColourToggleRole in BTMM
Fast5β–  Goldenrod[MA]Entry trigger β€” the aggressive line. Reacts first to momentum shifts.
Slow13β–  Red[MA]Entry confirmation β€” when Fast crosses Slow, the setup is active.
Water50β–  Aqua[MA]The "Water level." Pullbacks to here are Safety / ID50 entries.
Mayo200β–  White[M]Macro bias. Above Mayo = bullish, below = bearish. The "tide."
Blueberry800β–  Slate Blue[MA]Long-term anchor. Confluence here amplifies any signal's quality.

Part 1DMulti-Timeframe Thinking β€” H1 Levels, M15 Entries

Traditional BTMM analysis uses two timeframes working together. The State Engine combines both into one chart β€” but understanding the logic helps you read the indicator with confidence.

Two Timeframes, One System
H1
The Structural View
✦ Count the levels (L1 β†’ L2 β†’ L3)
✦ Identify room boundaries
✦ Spot Peak Formations
✦ Determine the macro direction
✦ See where the cycle is in its lifespan
"Where are we in the big picture?"
β†’
feeds into
M15
The Precision View
✦ 5/13 EMA crossover detection
✦ Entry signal classification (T1/T2/Safety/ID50)
✦ Exact SL and TP placement
✦ Asian Range box drawing
✦ Killzone timing
"When exactly do I pull the trigger?"
One Chart Does Both The indicator runs on an M15 chart (on MT4/MT5) but all core level detection β€” Asian Range levels, rooms, and peaks β€” always uses H1 data regardless of chart timeframe. Entry signals come from M15. This gives you institutional-grade level counting and precision entries in a single window, with no need to flip between timeframes.

Why M15?

The 15-minute chart is the sweet spot for BTMM entries because:

Granularity

Enough resolution to see EMA crossovers clearly and place tight stop losses β€” without the noise of M1 or M5.

Asian Range Precision

32 candles per Asian session (8 hours Γ— 4 per hour). This gives a clean, well-defined range box β€” not too few candles, not too many.

Killzone Windows

The London KZ (3 hours) = 12 candles. Enough time to see manipulation, wait for the crossover, and enter during distribution.

Part 1EWhat This Tool Replaces

Without the State Engine, a BTMM trader must do all of this manually β€” every day, across every pair they want to trade:

Without the State Engine
βœ— Draw Asian Range boxes by hand on every chart
βœ— Track which boxes overlap and which break out
βœ— Count levels manually β€” L1, L2, L3…
βœ— Monitor for Peak Formation conditions
βœ— Flip through 28 charts checking for crossovers
βœ— Remember which pair is at what level
βœ— Calculate daily range vs ADR manually
βœ— Set individual alerts on every chart
Time required: 2–3 hours/day
With the State Engine
βœ“ Asian Range boxes drawn automatically
βœ“ Room boundaries calculated every tick
βœ“ Levels counted and displayed per pair
βœ“ PFH/PFL detected with 2-stage confirmation
βœ“ 28-pair scanner shows all setups at once
βœ“ Level, direction, peak status per symbol
βœ“ ADR calculated and colour-coded live
βœ“ Alerts push to your phone automatically
Time required: Glance at scanner, click, trade.
The Three Pillars β€” Automated Level Count β€” the engine tracks room boundaries and level breaks across all 28 pairs. Peak Formation β€” 2-stage PFH/PFL detection with retroactive room recolouring. Entry Signal β€” 5/13 EMA crossover with Vector Candle, TDI, cycle direction, and Asian Range context filters. All running in real time. All with instant alerts.

Part 2Installation Guide

MetaTrader 5

Open Data Folder

In MT5: File β†’ Open Data Folder.

Navigate

Go to MQL5 β†’ Indicators.

Copy File

Copy BTMM_State_Engine_Pro.ex5 into this folder.

Refresh

Right-click Indicators in the Navigator panel and select Refresh.

Attach

Drag the indicator onto any M15 chart.

MetaTrader 4

Open Data Folder

In MT4: File β†’ Open Data Folder.

Navigate

Go to MQL4 β†’ Indicators.

Copy File

Copy BTMM_State_Engine_Pro.ex4 into this folder.

Refresh

Right-click Indicators in the Navigator panel and select Refresh.

Attach

Drag the indicator onto any M15 chart.

One File, All Features Both versions (MT4 and MT5) contain the exact same features, scanner logic, and alert systems. The .ex5 file is for MetaTrader 5, and the .ex4 file is for MetaTrader 4.

Part 3The Asian Range β€” Where It All Begins

During the Asian session, the market is quiet. The market maker uses this period to build their position inside a tight range. The indicator automatically draws this range as a filled box.

Asian Range Box β€” Anatomy
AR HIGH β†’
Resistance / Stop cluster above
ID50 β€” 50% Level
Institutional Decision Level β€” where the market maker's average position sits
AR LOW β†’
Support / Stop cluster below
Auto-Detection On MetaTrader, the indicator automatically calculates the correct Asian session hours from your broker's GMT offset β€” just attach and it works.

Part 4Level Counting β€” The Engine

This is the heart of the indicator. Every new Asian session box is compared to the current room's bounds. Core level detection (Asian Range levels, rooms, peaks) always uses H1 data regardless of chart timeframe, while entry signals are generated from M15.

New Asian Range Box Closes
β–Ό
Compare to Current ROOM Bounds
β–Ό
OVERLAP
Extend Room β†’
No level change
CLEAR BREAK UP
LVL+1 Direction UP
Blue room opens
CLEAR BREAK DOWN
LVL+1 Direction DOWN
Red room opens

The Staircase

Rooms visually connect like stairs β€” the right edge of each room ends where the left edge of the next room begins, with no overlap between them.

L1
Start
β†’
L2
Trend
β†’
L2+
⚠ PEAK ZONE
β†’
REVERSAL
PFH / PFL

Room Colours

DirectionColourMeaning
β–² UPβ–  Dodger BlueBullish accumulation
β–Ό DOWNβ–  CrimsonBearish accumulation
β€” Neutralβ–  GrayFirst L1, no direction
STALEβ–  Grey + labelToo many boxes β€” forced reset

Part 5Peak Formations β€” The Reversal Signal

At Level 2+, the market maker may have accumulated enough. The cycle reverses. Peak Formations are the exact moment this happens.

Two-Stage Confirmation β€” No False Alarms
STAGE 1 β€” PENDING
PFH?
Swing extreme detected
Watch closely β€” potential reversal
β†’
STAGE 2 β€” CONFIRMED
PFH βœ“
Confirmed by next box
Act now β€” rooms repaint RED
Retroactive Recolouring When PFH confirms, all rooms in the current cycle instantly repaint Crimson β€” revealing the entire UP run was bearish distribution. PFL confirms β†’ rooms repaint Blue.
Peak Resets After an initial peak (PFH or PFL), if the market reverses even at L1 in the opposite direction, that creates a peak reset β€” a new peak reference point is established without requiring L2+. This means once the first peak fires, subsequent reversals are tracked more sensitively.

Part 6Entry Signals β€” Precision Timing

Four distinct entry types, each based on the 5/13 EMA crossover with multi-layer confirmation filters.

T1

Type 1 β€” Stop Hunt Reversal

Price broke the Asian Range extreme (stop hunt), then the 5/13 EMA cross fires in the opposite direction. The classic BTMM setup β€” strongest signal type because the market maker has just filled their orders against trapped retail traders.

β˜…β˜…β˜…β˜…β˜†
T2

Type 2 β€” Basic Crossover

Standard 5/13 EMA crossover without a preceding stop hunt. Price breaks from within the Asian Range on pure momentum. Reliable but lacks the stop-hunt confirmation of T1.

β˜…β˜…β˜…β˜†β˜†
ID50

ID50 β€” Institutional Decision Point

EMA cross fires near the 50 EMA (the Identity/Water level) β€” the key institutional decision point. High probability because this is where the market maker's average position sits. Exceptional risk-to-reward.

β˜…β˜…β˜…β˜…β˜†
SAFETY

Safety β€” Premium Pullback

AR already broken, price pulls back to the 50 EMA, then the EMA crossover catches the re-entry. A safe re-entry after the initial break has proven direction. The highest-quality signal.

β˜…β˜…β˜…β˜…β˜…

Multi-Layer Confirmation

πŸ“ˆ
EMA Cross
πŸ“Š
Vector Candle
🎯
TDI / RSI Filter
πŸ”„
Cycle Direction
πŸŒ™
Asian Filter

Part 7The Toolbar β€” One-Click Control

TOOLBAR PREVIEW
MA
W
Y
P
Z
ZN
E
EH
ADR
ALL
?
Blue = ON  |  Grey = OFF  |  States persist across chart switches
ButtonFull NameWhat It Toggles
MAMoving AveragesFast (5), Slow (13), Water (50), Mayo (200), Blueberry (800) EMAs
MMayo Line200 EMA horizontal reference β€” the institutional "mayo level"
YYesterdayYesterday's High and Low as dashed reference lines
PPsychologicalRound-number levels (00, 25, 50, 75 pip increments)
ZKillzonesColoured strips marking London (green) and NY (orange) windows
ZNLevel ZonesCycles: Off β†’ ZN1 (AR union) β†’ ZN2 (true candle range)
EEntry SignalsCurrent session entry arrows + SL/TP projection lines
EHEntry HistoryHistorical entry signals across all visible sessions
ADRDaily RangeADR-based TP projection + DR/ADR in status bar
LVLLevel FilterFilter scanner: ALL β†’ L1-2 β†’ L2-3 β†’ L1-3
?HelpIn-chart quick reference overlay

Part 8The 28-Pair Scanner

The single most valuable feature for active traders. One screen. 28 pairs. Zero missed setups.

SYM
LVL
PEAK
DIR
SIG
KZ
L3!
ADR
EURUSD
L2
-
β–²
BUY T1
ON
-
85/120
GBPUSD
L1
PFH?
β–Ό
-
ON
-
72/95
USDJPY
L3
PFL βœ“
β–²
BUY Safety
-
β–²
45/68
AUDUSD
L2
Pot Rev
β–²
-
-
-
52/74
XAUUSD
L2
-
β–Ό
SELL T1
ON
-
2450/1800
πŸ–±οΈ

Click to Switch

Click any symbol to instantly switch the main chart to that pair on M15.

πŸ’Ύ

Signal Persistence

Signals survive chart switches. They only clear when direction reverses.

↕️

Draggable

Drag the title bar to reposition the scanner anywhere on the chart.

βš™οΈ

Fully Customisable

Font size, row height, column width, position β€” all adjustable in Inputs.

Reading the Scanner Dashboard β€” Column Reference

Every column tells you something specific about the cycle state for that pair. Here's exactly what each one means:

ColumnWhat It ShowsHow to Read It
PAIR / SYMSymbol nameClick to switch the main chart to this pair.
LVLCurrent cycle levelL1 = starting level, L2 = trend confirmed, L3+ = deep in cycle, peak zone.
PEAKPeak Formation statusPFH?/PFL? = pending (watch closely), PFH βœ“/PFL βœ“ = confirmed (act now), β€” = no peak detected.
DIRCycle directionβ–² = bullish, β–Ό = bearish, β€” = neutral (L1 with no direction yet).
SIGNAL / SIGCurrent entry signalShows the active signal type (BUY T1, SELL Safety, etc.) if a crossover is firing. Blank when no signal.
KZKill Zone statusActive = London or NY session is open. Wait = outside Kill Zone hours.
L3!EMA shift warningFlags when price is at Level 3+ β€” the EMAs may be lagging due to the extended move. Extra caution warranted.
PHASECycle phaseInit = first level, Trend = directional, Peak = reversal forming, Rev = post-peak reversal, STALE = range-bound reset.
ADRAverage Daily RangeThe pair's normal daily pip range (e.g. 120 pips for EURUSD). Used as the TP reference.
RNGToday's rangeHow many pips price has moved so far today. Compare against ADR to gauge remaining potential.
ADR%Range exhaustionToday's range as a percentage of ADR. <60% = fresh, 60–80% = normal, 80–99% = caution, 100%+ = exhausted.

Resizing, Repositioning & Customising the Dashboard

The scanner dashboard is designed to fit any screen size and layout preference. Everything can be adjusted β€” here's how.

Moving the Dashboard

The scanner panel is drag-and-drop. Click and hold the title bar at the top of the scanner, then drag it anywhere on your chart. The position is saved and persists when you switch symbols or timeframes.

You can also set a precise starting position using the Inputs tab:

InputDefaultWhat It Controls
InpDashboardX10Horizontal position in pixels from the left edge of the chart. Increase to move right.
InpDashboardY150Vertical position in pixels from the top edge. Increase to move down.
Tip If the scanner overlaps your Asian Range boxes or toolbar buttons, simply drag it to an empty corner. Many traders position it in the top-right or bottom-left of their chart.

Adjusting Column Widths & Row Height

If symbol names are clipped, signals are overlapping, or you want a more compact or spacious layout, adjust these in the Inputs tab:

InputDefaultWhat It Controls
InpScannerSymWidth55 pxSymbol column width. Increase if your broker uses long names with suffixes (e.g. EURUSD.raw needs ~75px). Decrease if you want a narrower panel.
InpScannerColWidth100 pxSignal column width. Controls the width of the SIG column where entry signals display (e.g. "BUY Safety"). Increase if text is cut off.
InpScannerRowH18 pxRow height. The vertical spacing for each symbol row. Increase for readability on high-DPI screens, decrease for a compact look.
Compact Layout
SymWidth: 45 | ColWidth: 80 | RowH: 15
EURUSD L2 β–² BUY T1
GBPUSD L1 β–Ό -
Fits more rows on small screens.
Spacious Layout
SymWidth: 75 | ColWidth: 120 | RowH: 22
EURUSD.raw  L2  β–²  BUY Safety
GBPJPY.raw  L3  β–²  SELL T1
Easier to read on large / 4K monitors.

Font Size & Text Readability

InputDefaultWhat It Controls
InpFontSize8Status bar & label font size. Controls the text size for the status bar, room labels, and level annotations on the chart.
InpScannerFontSize9Scanner font size. Controls the text size inside the scanner panel. Increase to 10–11 for high-DPI or if you sit far from your monitor.
InpTextColorWhiteDashboard text colour. Default white works on the dark background. Change if using a light chart theme.
All changes are instant To adjust any of these settings: right-click the chart β†’ Indicators List β†’ select the State Engine β†’ Properties β†’ Inputs tab. Change the value, click OK, and the dashboard redraws immediately. No need to remove and reattach.

Part 9Higher Timeframe Context Panel

New in v1.53. A compact panel that sits below the scanner, showing H4 and D1 trend direction and EMA alignment β€” so you can instantly see if higher timeframes support your H1 BTMM setup.

HTF CONTEXT
H1: L3 β–²
H4: Bullish βœ“
D1: Bullish βœ“
βœ“ ALL BULLISH

What Each Row Shows

RowDataHow to Read It
H1Current BTMM level + directionYour main indicator state β€” e.g. L3 β–² means Level 3 Bullish.
H4H4 trend + EMA alignmentBullish/Bearish based on EMA 5 vs 13. βœ“ = EMAs 5>13>50 (or 5<13<50) are stacked.
D1D1 trend + EMA alignmentSame logic as H4 but on Daily timeframe.
SummaryAll-TF alignment checkβœ“ ALL BULLISH / βœ“ ALL BEARISH = high confidence. ⚠ MIXED TFs = conflicting β€” use extra caution.

Colour Coding

ColourMeaning
GreenBullish trend with aligned EMAs (5>13>50)
RedBearish trend with aligned EMAs (5<13<50)
YellowTrend present but EMAs not fully stacked β€” transitioning

How to Use It

βœ…

All TFs Aligned

H1 bullish + H4 bullish + D1 bullish = highest confidence. Trade with full size.

⚠️

Mixed TFs

H1 and higher TFs disagree. Reduce size, tighten stops, or wait for alignment.

πŸ””

In Alerts

All signal alerts now include HTF status: [H4:Bullish D1:Bullish]

βš™οΈ

Settings

InpShowHTFPanel to toggle. InpHTFPanelOffsetY to adjust spacing below scanner.

Pro Tip The best BTMM setups occur when your H1 Level 2+ signal fires during a Kill Zone AND all three timeframes agree on direction. This is the "triple alignment" β€” the highest-probability trade the methodology offers.

Part 10Zone Visualisation (ZN)

Press [ZN] to cycle through three modes. Each reveals a different layer of supply and demand.

ZN OFF

Only the hollow room rectangle. Height = first AR box only.

ZN1 β€” AR Union

+ Dashed box covering ALL AR highs/lows at this level.

ZN2 β€” True Candle

+ Dotted box covering true candle extremes across the full visual width of the room β€” including London and NY sessions between Asian boxes, not just candles within the Asian session itself.

Part 11ADR, Status Bar & Alerts

Average Daily Range (ADR)

DR vs ADRStatusAction
< 60%FreshTrade with confidence β€” plenty of range
60–80%NormalGood range remaining β€” normal management
80–99%β—‹ OrangeNearing full range β€” tighten stops
100%+● RedDaily range complete β€” take profit

Status Bar

L2(UP) Trend |W Y Z | ADR:85/120 | LC:14:32|SRV:16:32

Level, direction, phase, active layers, ADR, and both local + server time β€” all in one line with a dark background for readability.

Alert System

Alerts fire across three channels simultaneously: MT popup, phone push notification, and on-chart toast.

AlertTriggerToggle
PFH/PFL ConfirmedPeak Formation confirmedInpAlertPFConfirmed
London KZ StartLondon Killzone opensInpAlertLondonKZStart
NY KZ StartNY Killzone opensInpAlertNYKZStart
Scanner SignalAny pair fires a crossoverInpAlertScannerSignal
Scanner PFAny pair confirms PFH/PFLInpAlertScannerPF
Alert Intelligence Weekend suppression, per-symbol cooldown, KZ-only filter β€” no noise, no spam.

Part 12Colour Coding β€” The Visual Language

Blue β€” Bullish / UP / PFL
Red β€” Bearish / DOWN / PFH
Grey β€” Neutral / Stale
Gold β€” Peak Zone warning / KZ active
Green β€” Buy signals / London KZ
Orange β€” NY KZ / Warning
Cyan β€” Asian Range box
Lime β€” Buy signal arrow / TP line
White β€” Mayo EMA / AR midline

Part 13The Complete Trading Playbook

London Killzone β€” Entry Decision Flow
London KZ Alert Fires (08:00 GMT)
β–Ό
Scanner shows signal on any pair?
β–Ό
YES
Check: Level + Direction + PF
NO
Monitor & wait
β–Ό
Signal aligned with cycle direction?
β–Ό
YES
ADR < 80%?
NO
SKIP β€” against cycle
β–Ό
βœ… ENTER β€” Type 1 / Type 2 / Safety
SL and TP drawn automatically on chart

The Golden Rules

RuleWhy
Trade during Killzones80%+ of profitable moves happen during London/NY
Respect the level countL1 = trend trades, L2+ = reversal watch (PFH/PFL zone)
Wait for confirmationPFH? is pending β€” PFHβœ“ is confirmed
Check ADR before entryIf 80%+ used, the daily move may be done
Align with cycle directionNever trade against the market maker
Use the scannerTrade the best setup across 28 pairs β€” not just one

Part 14How to Trade BTMM with the Software β€” Step by Step

Whether you're on MT4 or MT5 β€” the workflow is the same. Follow these nine steps from setup to trade management.

Open your chart

Open an M15 chart on MT4 or MT5. EURUSD is a good starting point.

Apply the State Engine indicator

Attach the indicator to the chart by dragging it from the Navigator. Accept the default settings and click OK.

Wait for the Asian session to end

The Asian Range box draws automatically during the Asian session (00:00–08:00 GMT). Wait for the box to complete β€” this is the accumulation phase. Once it closes, the day's reference levels (AR High, AR Low, ID50) are locked in.

Check the dashboard

Read the status bar and scanner panel: Level (L1/L2/L3), Direction (β–²/β–Ό), Phase (Init/Trend/Peak/Rev), and Kill Zone status (Active/Wait). This tells you where the cycle is and whether to look for trades.

Wait for a Kill Zone + EMA crossover

During the London Kill Zone (08:00–11:00 GMT) or NY Kill Zone (13:00–16:00 GMT), watch for a 5/13 EMA crossover signal. 80%+ of profitable moves happen during these windows.

Verify confirmation filters

Before entering, confirm: Vector candle present (above-average range candle), TDI/RSI aligned with the signal direction, and cycle direction matches the trade. All three filters must agree.

Enter the trade

Enter at the signal with SL placed below/above the Asian Range + buffer (drawn automatically), and TP = Asian Range height. The indicator draws SL/TP projection lines directly on the chart.

Watch for Peak Formations at L2+

At Level 2 and above, the market maker may be fully loaded. Watch for PFH?/PFL? (pending peak) in the dashboard. These signal that the big reversal is forming β€” the cycle may be about to flip.

Trade the Peak reversal

When PFH βœ“ or PFL βœ“ confirms, the cycle flips. Rooms repaint. The opposite staircase begins. Trade in the NEW direction β€” this is the highest-conviction setup in BTMM.

Session Times The best trading windows are the London Killzone (08:00–11:00 GMT) and the New York Killzone (13:00–16:00 GMT). The indicator highlights these automatically and can alert you when they open.
ADR Check Always check ADR% before entering. If the daily range is already 80%+ exhausted, the day's move may be done β€” tighten stops or skip the trade entirely.

Part 15Configuration Guide

Most settings work perfectly out of the box. Below are the ones you may want to adjust.

Session & Time Settings

InputDefaultWhat It Does
InpAsianStartHour0 (Auto)Asian session start in broker time. 0 = auto-detect from GMT. Only change if auto-detect is wrong.
InpAsianEndHour8 (Auto)Asian session end in broker time. Auto-calculated as start + 8 hours.
InpLondonStartHour0 (Auto)London Killzone start. 0 = auto-calculate from GMT offset. Override for unusual brokers.
InpNYStartHour0 (Auto)New York Killzone start. Same auto-detect logic as London.
How Auto-Detection Works
The indicator compares TimeGMT() with broker server time to calculate the GMT offset. It then shifts all session boundaries accordingly. For example, if your broker is GMT+2, the Asian session (normally 00:00 GMT) starts at 02:00 broker time. This happens automatically every time you attach the indicator.

Scanner Symbol List

InputWhat It Does
InpSymbolsComma-separated list of all 28 symbols the scanner monitors. You must match your broker's exact symbol names β€” see suffix guide below.
InpScannerHistDaysHow many days of history to scan per symbol (default: 20).
InpHistoryDaysHistory depth for the main chart's level counting (default: 60).

Entry Signal Filters

InputDefaultEffect
InpUseTDIFiltertrueRequires TDI/RSI confirmation before firing a signal. Reduces false entries.
InpUseVectorCandletrueRequires the crossover candle to be a Vector candle (above-average range).
InpUseCycleFiltertrueOnly fires signals aligned with the current cycle direction.
InpShowID50trueEnable/disable ID50 entry signals.
InpShowSafetytrueEnable/disable Safety entry signals.
InpSLBuffer150Stop loss buffer in points (150 points = 15 pips on 5-digit brokers).

Alert Configuration

InputDefaultWhat It Controls
InpAlertPFConfirmedtrueAlert when PFH/PFL is confirmed on the main chart.
InpAlertEntrySignaltrueAlert when an entry signal fires on the main chart.
InpAlertScannerSignaltrueAlert when any scanner pair fires a crossover signal.
InpAlertScannerPFtrueAlert when any scanner pair confirms a Peak Formation.
InpAlertScannerKZOnlytrueScanner signal alerts only during active Killzones β€” kills noise outside session hours.
InpAlertLondonKZStarttrue"London Killzone is open" reminder.
InpAlertNYKZStarttrue"NY Killzone is open" reminder.
InpAlertCooldownMins15Minimum minutes between repeated alerts for the same symbol.
InpAlertPopuptrueShow the on-chart popup toast.
InpAlertPopupSeconds10How long the popup toast stays visible.

Higher Timeframe Panel

InputDefaultWhat It Controls
InpShowHTFPaneltrueShow or hide the Higher Timeframe Context Panel below the scanner.
InpHTFPanelOffsetY5Vertical pixel gap between the bottom of the scanner and the top of the HTF panel.
InpShowHTFInAlertstrueAppend HTF trend status (e.g. [H4:Bullish D1:Bearish]) to all signal alerts.

Part 16Troubleshooting & Common Issues

!

Scanner shows grey / no data β€” Broker Symbol Suffix

This is the #1 setup issue. Many brokers add a suffix to symbol names:

Broker StyleExampleWhat You See in Market Watch
StandardEURUSDEURUSD
Micro suffixEURUSDmEURUSDm, GBPUSDm, etc.
Dot suffixEURUSD.rEURUSD.r, GBPUSD.r, etc.
ECN suffixEURUSD-ECNEURUSD-ECN, GBPUSD-ECN, etc.
Hash suffixEURUSD#EURUSD#, GBPUSD#, etc.
PrefixrEURUSDrEURUSD, rGBPUSD, etc.

How to fix:

Check your Market Watch

Open View β†’ Market Watch (Ctrl+M). Look at the exact symbol names your broker uses. Note the suffix or prefix.

Edit InpSymbols

Double-click the indicator in the Navigator β†’ Inputs tab β†’ find InpSymbols. Add your broker's suffix to every symbol. For example, if your broker uses .r:

EURUSD.r,GBPUSD.r,USDJPY.r,AUDUSD.r,NZDUSD.r,USDCAD.r,USDCHF.r,EURGBP.r,EURAUD.r,EURNZD.r,EURCAD.r,EURCHF.r,EURJPY.r,GBPJPY.r,GBPCHF.r,GBPAUD.r,GBPNZD.r,GBPCAD.r,AUDJPY.r,AUDCAD.r,AUDCHF.r,NZDJPY.r,NZDCAD.r,NZDCHF.r,CADJPY.r,CADCHF.r,CHFJPY.r,XAUUSD.r

Click OK and wait

The scanner will reload. All 28 rows should populate with coloured data within a few seconds.

Gold / XAUUSD Some brokers name Gold differently β€” GOLD, XAUUSD, XAUUSDm, or Gold.r. Check your Market Watch and update the last entry in InpSymbols to match. If your broker doesn't offer a symbol, simply remove it from the list.
⏰

Asian Range boxes appear at the wrong time

The indicator auto-detects your broker's GMT offset by comparing TimeGMT() with server time. This works on 99% of brokers. If the boxes look wrong:

Possible CauseFix
Weekend / market closedTimeGMT() needs a live connection. Restart MT5 during market hours (Sunday evening onwards).
Broker uses unusual offsetManually set InpAsianStartHour and InpAsianEndHour in broker time. Check your broker's server clock against time.is/GMT.
DST changeoverDuring Daylight Saving transitions, the offset may be off by 1 hour for a session. The indicator recalculates on every load, so restarting MT5 after the transition fixes it.
How to verify Check the status bar β€” it shows both LC (local clock) and SRV (server time). If SRV matches your broker's chart time, auto-detection is working correctly.
πŸ“±

Push notifications not arriving on phone

The indicator uses MetaTrader's built-in SendNotification() function. For it to reach your phone:

Install the Mobile App

Download MetaTrader 4 or 5 (matching your desktop version) from the App Store or Google Play. Log in to your account.

Get your MetaQuotes ID

In the mobile app: Settings β†’ Messages β†’ MetaQuotes ID. Copy this code (it looks like A1B2C3D4).

Enter it in Desktop Terminal

On your PC: Tools β†’ Options β†’ Notifications. Tick "Enable Push Notifications" and paste your MetaQuotes ID. Click Test to verify.

Keep Terminal running

Push notifications only work while the desktop terminal is running and connected. Consider running it on a VPS for 24/5 alerts.

⚠

Indicator looks wrong or shows nothing

SymptomCauseFix
No boxes, no levels, no dataWrong timeframeSwitch to M15. The indicator requires the 15-minute chart.
Very few boxes visibleNot enough history loadedScroll left on the chart to load more history bars. Increase InpHistoryDays if needed.
Chart colours didn't changePermissions not tickedWhen attaching, ensure "Allow DLL imports" (if prompted) and "Allow modification of indicator's signals" are enabled. On MT5 also check Tools β†’ Options β†’ Charts β†’ "Maximum bars in chart" is at least 50,000.
Indicator not in NavigatorWrong folderEnsure the .ex5 file is in MQL5\Indicators\ or .ex4 is in MQL4\Indicators\. Right-click Indicators β†’ Refresh.
Scanner loads some pairs but not allPairs not in Market WatchThe indicator auto-adds symbols via SymbolSelect(), but some brokers block this. Manually add missing pairs to your Market Watch first.
↻

Level shows "STALE" β€” what does this mean?

If too many consecutive Asian Range boxes fall within the same room without triggering a new level, the room is marked STALE. This means the market is ranging sideways with no clear direction.

The threshold is controlled by InpMaxBoxesPerLevel (default: 5). When reached, the level resets. This is normal β€” it prevents the indicator from sitting in a dead zone forever. Wait for a fresh breakout to re-establish directional levels.

⚑

Performance tips

TipDetails
One instance onlyOnly attach the indicator to one chart. The scanner monitors all 28 pairs from that single chart β€” no need for multiple instances.
Reduce history if slowLower InpHistoryDays from 60 to 30 if your terminal feels sluggish on older hardware.
Remove unused pairsIf you only trade majors, trim the InpSymbols list to reduce CPU usage.
Close other indicatorsHeavy indicators on the same chart can slow down rendering. The State Engine draws many objects β€” give it space.
Optimised Codev1.53 includes full Strategy Tester optimisation. The indicator automatically detects tester mode and skips all graphical operations.

Quick ReferenceCheat Sheet

Print this page and keep it next to your screen.

BTMM STATE ENGINE PRO β€” QUICK REFERENCE

Levels

  • L1 = Start (grey/direction colour)
  • L2 = Trend confirmed (blue/red)
  • L2+ = Reversal triggers PFH/PFL
  • STALE = Too many boxes β€” forced reset
  • !ADR = Large gap warning (>1.5x ATR)

Peak Formations

  • PFH? = Bearish reversal PENDING
  • PFL? = Bullish reversal PENDING
  • PFH βœ“ = Confirmed β€” rooms turn RED
  • PFL βœ“ = Confirmed β€” rooms turn BLUE

Colours

  • Blue = Bullish / UP / PFL
  • Red = Bearish / DOWN / PFH
  • Grey = Neutral / Stale
  • Gold = Peak Zone / KZ active
  • Green = Buy signals / London KZ
  • Orange = NY KZ / Warning

Entry Signals

  • T1 = Stop hunt reversal β˜…β˜…β˜…β˜…
  • T2 = Internal range break β˜…β˜…β˜…
  • Safety = Pullback to 50 EMA β˜…β˜…β˜…β˜…β˜…
  • ID50 = Entry at Water (50 EMA) β˜…β˜…β˜…β˜…

Buttons

  • MA=EMAs M=Mayo Y=Y-H/L
  • P=Psy Z=KZ ZN=Zones
  • E=Entry EH=History
  • ADR=Range LVL=Filter ?=Help

Workflow

  • 1. Scan for L2/L3 pairs
  • 2. Check PEAK + DIR + ADR
  • 3. Check HTF Panel alignment
  • 4. Wait for Killzone
  • 5. Enter on aligned signal
  • 6. Manage with ADR + PF status

HTF Panel

  • All green = Triple alignment β˜…β˜…β˜…β˜…β˜…
  • Mixed = Reduce size / wait
  • N/A = Data loading, wait
Trade WITH the market maker, not against them.

SupportNeed Help? Get In Touch

Whether you have a setup question, a feature request, or need help configuring the indicator for your broker β€” we're here to help.

🌐
Website
g-labs.software
Product pages, documentation, custom development enquiries
πŸ“§
Email Support
info@g-labs.software
Technical support, licensing, setup help β€” we typically reply within 24 hours
πŸ’¬
Telegram Community
@glabssoftware1
Join the community β€” setups, tips, live discussion with other traders
🎬
YouTube
@glabssoftware1
Video tutorials, indicator walkthroughs, live trading examples
πŸ“ˆ
MQL5 Market
G-Labs on MQL5.com
Official MetaTrader marketplace β€” reviews, ratings, verified purchases
πŸ› οΈ
Custom Development
Request a Quote
Need a custom EA, indicator, or strategy coded? MQL4, MQL5.
G-Labs is a trading name of Apex Pro Group Ltd  |  Harwich, Essex, United Kingdom