MetaTrader 5 & MetaTrader 4  ·  v1.63

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  ·  v1.63 — UI scaling, alert price levels, per-signal level filter
📊

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.

v1.63What's New in This Release

Six headline upgrades focused on usability, screen-fit, and making alerts useful enough to trade from. Defaults match v1.62 behaviour — every change is opt-in via inputs.

📐 UI scale & per-area fonts
One knob (InpUIGlobalScalePct 50–200) scales every pixel and default font. Plus 17 per-area font-point overrides for HiDPI / 4K / Mac users. Two cross-platform font-family inputs.
🔔 Entry levels in alerts
Scanner SIG and chart entry alerts now append E:price SL:price TP1:price TP2:price at each symbol's correct precision. Toggle: InpAlertIncludeLevels.
🎚️ Per-signal level filter
Restrict T1/T2/T3, ID50, and Safety alerts to specific cycle-level ranges via InpAlert*MinLevel / *MaxLevel. Defaults 1/9 = any level.
📊 Plain-English status line
"L2 UP PFL | Today 65 / Avg 120 pips (54%) | Local 14:32 Broker 16:32" — anchored to the dashboard layout so it never drifts. PFL on buy cycles, PFH on sell cycles.
📖 Paginated scanner ? legend
Click the legend title to flip Page 1 / 2. Self-sizing background, widened to 440 px. F1 dashboard guide widened too with a UI Scale & Fonts block added.
⚡ HTF / scanner performance
Chart HTF panel cached per H4/D1 bar. Per-symbol H4/D1 trends cached on SymbolState so the scanner HTF column and Top Confluence skip indicator reads on every refresh. Faster initial load.
Safe upgrade All v1.63 inputs default to existing v1.62 behaviour. Recompile .ex5 / .ex4, reload the chart — nothing else needs changing unless you want the new features.

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 the BTMM State Engine Pro indicator file into this folder (from your MQL5 Market installation or your broker package).

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 the BTMM State Engine Pro indicator file into this folder (from your MQL4 Market installation or your broker package).

Refresh

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

Attach

Drag the indicator onto any M15 chart.

One File, All Features Both MetaTrader 4 and MetaTrader 5 builds include the same features, scanner logic, and alert systems — use the installer for your platform.
First-time setup When you attach the indicator, keep the standard (default) settings and click OK. You can fine-tune layout, symbols, or sessions later in Properties → Inputs once you understand what each option does (see Part 15).

Two things to check after first install

If the scanner table looks blank or the dashboard text feels too small / too big, you'll fix it with one of two settings. Both are explained in detail in the troubleshooting section, but here's the short version so first-time users don't get stuck.

1. Broker symbol suffix

Many brokers add a suffix like .m, .r, -ECN, or # to symbol names (e.g. EURUSDm). If the scanner shows grey rows, your broker uses a suffix.

Open View → Market Watch, see what your broker actually calls EURUSD, then set InpSymbolSuffix to that suffix (e.g. .m). Hit OK — the indicator appends it to every scanner symbol automatically. No need to retype the whole list.

2. Screen size / Mac / 4K / Parallels

If the dashboard text looks too small (HiDPI / 4K / Mac Retina) or too big (small laptop), change one input.

In the indicator inputs, set InpUIGlobalScalePct. Defaults to 100. Try 115–130 on Mac / Retina / 4K, 80–90 on small laptops, 100 on a typical Windows VPS or Parallels guest. It scales every layout pixel and default font in lockstep, so proportions stay correct everywhere.

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
UNIFIED ENGINE
The scanner and E button share one entry computation. When the scanner shows a signal for your chart symbol, the E button draws the exact same entry, SL, and TP levels — no disagreements, no second guessing. If the scanner signal expires (after the configurable persistence window), E falls back to its own M15 scan so you never miss a setup.

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 SignalsDraws entry/SL/TP lines from the scanner's unified engine. Falls back to its own M15 scan if the scanner signal has expired
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
HTF
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
FULL DASHBOARD STACK (on-chart — top → bottom)

The scanner includes the HTF column (✓ · ✗ · ~). Directly below it (when enabled) sit three sub-panels: HTF Context (H1/H4/D1 for the chart symbol), Currency Strength (8 majors), and Top Confluence (top 3 pairs by score). They work together — not duplicates.

SYM
LVL
PEAK
DIR
SIG
HTF
KZ
ADR
EURUSD
L2
-
BUY T1
ON
85/120
HTF CONTEXT
H1: L2 ▲
H4: Bull ✓
D1: Bull ✓
CURRENCY STRENGTH
USD +4
GBP +2
JPY -3
TOP CONFLUENCE
1. EURUSD ▲ BUY 4.5
2. USDJPY ▲ Sig 4.0
3. GBPCAD ▼ 3.25

Toggle with InpShowHTFPanel, InpShowCurrencyStrength (shows both CS + Top Confluence strip).

🖱️

Click to Switch

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

💾

Signal Persistence

Signals survive chart switches. They expire after InpSigPersistMins (default 3h) or when direction reverses — keeping the scanner clean for intraday trading.

↕️

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:

HTF in the scanner — The HTF column is between SIG and KZ. It is per pair in the watchlist: = H4 + D1 agree with that row's signal direction; = higher TFs oppose; ~ = mixed. This is separate from the HTF Context panel under the scanner, which applies to the chart symbol only (see Part 9). The full stack diagram above shows scanner + HTF Context + Currency Strength + Top Confluence together.
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.) with an age timer (e.g. 45m). Signals expire after InpSigPersistMins (default 3h) or on direction reversal. Blank when no signal.
HTFHigher TF alignment = H4 + D1 agree with signal direction. = Higher TFs oppose. ~ = Mixed / one agrees, one doesn't. A green ✓ here is the highest-probability filter.
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.
InpSigPersistMins180Signal persistence window (minutes). Signals expire from the scanner after this duration. Default is 180 (3 hours) — ideal for intraday. Set to 0 for legacy 8-hour fallback.
Compact Layout
SymWidth: 45 | ColWidth: 80 | RowH: 15
… PEAK DIR SIG HTF KZ …
EURUSD L2 BUY T1
GBPUSD L1 -
Fits more rows on small screens.
Spacious Layout
SymWidth: 75 | ColWidth: 120 | RowH: 22
… SIG HTF KZ …
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 → PropertiesInputs tab. Change the value, click OK, and the dashboard redraws immediately. No need to remove and reattach.

Part 9Higher Timeframe Context Panel

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 M15 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 9ACurrency Strength Panel

A real-time strength meter for the 8 major currencies, derived directly from the scanner's own bias data across all 28 pairs. No external feeds — it's built from the same engine that powers the scanner.

CURRENCY STRENGTH
USD   +5
GBP   +3
EUR   0
CHF   0
AUD   -2
NZD   -3
CAD   -4
JPY   -5

How It Works

The panel scores each of the 8 major currencies using the scanner's direction data from all 28 pairs:

Colour Coding

ColourMeaning
GreenStrong currency (positive score) — look for BUY signals on pairs where this is the base
RedWeak currency (negative score) — look for SELL signals on pairs where this is the base
GreyFlat / neutral (zero score) — no clear directional bias

How to Use It

💪

Find the Flow

Trade strong vs weak pairs. If USD is +5 and JPY is -5, USDJPY is the highest-momentum pair.

🚫

Avoid Flat Pairs

Two grey currencies = ranging market. Skip those pairs and focus where there's a clear imbalance.

🔄

Confirm Scanner Signals

A BUY signal is higher quality if the base currency is green and the quote is red.

⚙️

Settings

InpShowCurrencyStrength toggles the panel. It auto-hides when the scanner is minimised.

No External Data Currency Strength is calculated purely from the scanner's own level/direction analysis across the 28-pair watchlist. It updates every scanner cycle (2 seconds) and requires no external indicators or data feeds.

Part 9BTop Confluence Panel

The Top Confluence panel ranks the top 3 highest-scoring pairs from the scanner — the pairs where the most factors align for a trade right now.

TOP CONFLUENCE
EURUSDBUY T1-4.5
USDJPYBUY SafetyPFL4.0
GBPCADSELL T2PFH3.25

Scoring System

Each pair earns points for every factor that supports a trade:

FactorPointsWhy It Matters
HTF Alignment+1.0H4 + D1 agree with the signal direction
Peak Alignment+1.0Confirmed PFH/PFL supports the direction
Pot Rev (Potential Reversal)+0.5EMA shift detected — reversal building
Kill Zone Active+1.0London or NY session is open — volume supports the move
Active Signal+0.5A fresh T1/T2/Safety/ID50 signal is firing right now
Recent Signal+0.25A persisted signal is still within the persistence window
Level 3++0.5Deep in the cycle — reversal or continuation is significant
Level 2+0.25Trend confirmed — directional moves are more reliable

Panel Columns

ColumnShows
SymbolPair name
DirDirection arrow (▲ bullish / ▼ bearish)
SigActive signal type (T1, T2, Safety, ID50) or dash
PeakPeak formation status (PFH/PFL) or dash
ScoreTotal confluence score (gold number)

How to Use It

🏆

Best Trade Right Now

The top-ranked pair is the one with the most factors aligned. Start your analysis there.

📊

Score Threshold

Scores above 3.0 indicate strong multi-factor alignment. Below 2.0 is weaker.

🔗

Unified with E

If the chart symbol appears in the top 3, the E button draws entry lines from the same engine data — scanner and E always agree.

📌

Signals First

Pairs with active signals are always prioritised over pairs that only have structural alignment.

The "Sniper" Workflow Wait for a pair to appear in the Top Confluence panel with a score of 3.0+, an active signal, and an HTF ✓ in the scanner. Click it to switch charts, confirm the EMA cross on M15, and take the trade. This is the highest-probability setup the indicator can offer.

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 PFL   |   Today 65 / Avg 120 pips (54%)   |   Local 14:32  Broker 16:32

Plain-English line under the toggles: cycle level + direction + the peak formation that started the cycle (PFL on buy cycles, PFH on sell cycles), today's range vs 10-day average ADR with a percent, and your local clock alongside the broker server clock. A trailing ? appears when an unconfirmed peak has just been spotted (e.g. L3 UP PFL?).

Alert System

Alerts fire across three channels simultaneously: MT popup, phone push notification, and on-chart toast. Every alert is tagged with the cycle context (e.g. [L3 PFH]) so you can read the message and know exactly where in the cycle the signal fired.

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
Chart Entry SignalActive chart fires Type 1 / 2 / Safety / ID50InpAlertEntrySignal

Entry Price Levels in Alerts v1.63

Scanner SIG and chart entry alerts now append the actual prices so you can act straight from the message — no need to open the chart to read SL/TP.

BTMM Scanner: EURUSD BUY T1 [KZ] [H4:Bullish D1:Bullish] [L2 PFL] | E:1.08423 SL:1.08124 TP1:1.08714 TP2:1.09005

Toggle with InpAlertIncludeLevels (default on). Each symbol uses its own digit precision (FX, JPY, XAU, BTC).

Per-Signal Level Filter v1.63

Keep every signal type on by default but suppress noisy levels per signal class. Defaults 1 / 9 mean any cycle level alerts.

Signal classMin level inputMax level input
T1 / T2 / T3InpAlertT123MinLevelInpAlertT123MaxLevel
ID50InpAlertID50MinLevelInpAlertID50MaxLevel
SafetyInpAlertSafetyMinLevelInpAlertSafetyMaxLevel

Examples: "ID50 only at L1–L2"InpAlertID50MaxLevel = 2. "Skip L1 chop on T1/T2/T3"InpAlertT123MinLevel = 2. "Mute everything at L3+ peaks" → set every *MaxLevel = 2.

Alert Intelligence Weekend suppression, per-symbol cooldown, KZ-only filter, per-signal level range — 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

Recommendation — keep standard settings G-Labs advises running the indicator with the default (standard) inputs until you are fully comfortable with the methodology. The defaults are tuned for typical brokers and intraday use. Only change settings when you have a specific need — for example broker symbol suffixes, session auto-detect that does not match your server time, or layout preferences (scanner position, font size). Changing alerts, filters, or persistence without understanding them can hide signals or make the dashboard harder to read.

Most settings work well out of the box. The tables below explain each group so you can adjust deliberately when needed.

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.
InpAlertScannerKZOnlyfalseIf true, scanner trade alerts fire only during active Killzones. Off by default so you don't miss Asian-session setups.
InpAlertLondonKZStarttrue"London Killzone is open" reminder.
InpAlertNYKZStarttrue"NY Killzone is open" reminder.
InpAlertID50trueInclude ID50 in scanner / entry alerts (needs the master toggle on).
InpAlertSafetytrueInclude Safety in scanner / entry alerts (needs the master toggle on).
InpShowHTFInAlertstrueAppend [H4:… D1:…] trend status to alert messages.
InpAlertIncludeLevels v1.63trueAppend E:price SL:price TP1:price TP2:price to scanner SIG and chart entry alerts at each symbol's correct digit precision (FX, JPY, XAU, BTC).
InpAlertCooldownMins15Minimum minutes between repeated alerts for the same symbol.
InpAlertPopuptrueShow the on-chart popup toast.
InpAlertPopupSeconds10How long the popup toast stays visible.

Per-Signal Level Filter v1.63

Constrain which cycle levels are allowed per signal class. Defaults preserve current behaviour (any level alerts). Lower the max to skip late peaks; raise the min to skip L1 chop.

InputDefaultEffect
InpAlertT123MinLevel1T1 / T2 / T3 alerts: only when cycle level >= this.
InpAlertT123MaxLevel9T1 / T2 / T3 alerts: only when cycle level <= this.
InpAlertID50MinLevel1ID50 alerts: only when cycle level >= this.
InpAlertID50MaxLevel9ID50 alerts: only when cycle level <= this.
InpAlertSafetyMinLevel1Safety alerts: only when cycle level >= this.
InpAlertSafetyMaxLevel9Safety alerts: only when cycle level <= this.

UI Scale & Fonts (Mac / HiDPI / 4K) v1.63

One global knob plus per-area font-point overrides means the dashboard always fits on any screen. If anything looks cramped or oversized after attaching the indicator, change InpUIGlobalScalePct first — it's almost always the only setting you need.

InputDefaultWhat It Controls
InpUIGlobalScalePct100One global knob (50–200). Scales every layout pixel and default font in lockstep. HiDPI / Mac: try 115–130. Tiny laptops: 80–90.
InpUIFontProp"Arial"Proportional font family for buttons / labels / titles. Mac users who prefer native: "Helvetica".
InpUIFontMono"Courier New"Monospace family for the status line, HTF rows, F1 help, room labels. Mac native alternatives: "Menlo" or "Monaco".

Plus 17 per-area font-point overrides (default 0 = follow scaled default; >0 = fixed point size, clamped 6–24): InpUIFontScanner, InpUIFontHTF, InpUIFontCurrency, InpUIFontTopConf, InpUIFontDashTF, InpUIFontDashToggle, InpUIFontDashTitle, InpUIFontDashMin, InpUIFontDashHelp, InpUIFontDashStatus, InpUIFontHelpF1, InpUIFontScanHelp, InpUIFontTradeLatest, InpUIFontTradeHist, InpUIFontStatLine, InpUIFontToast, InpUIFontCycleLbl.

Higher Timeframe Panel

InputDefaultWhat It Controls
InpShowHTFPaneltrueShow or hide the Higher Timeframe Context Panel below the scanner.
InpHTFPanelOffsetY4Vertical 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.

Sub-Panels (Currency Strength & Top Confluence)

InputDefaultWhat It Controls
InpShowCurrencyStrengthtrueShow or hide the Currency Strength strip below the scanner.
InpShowTopConfluencetrueShow or hide the Top Confluence panel — independent toggle from Currency Strength.
InpScannerSigFilterToPeakfalseWhen enabled, scanner signals only appear when they align with the peak formation direction — reduces noise but may hide valid setups.
InpMaxBoxesPerLevel5Maximum boxes allowed at the same level before the cycle is flagged STALE and resets. Lower values detect ranging markets sooner.

Signal Persistence & Unified Entry

InputDefaultWhat It Controls
InpSigPersistMins180Maximum time (in minutes) a scanner signal remains visible after firing. Default 180 = 3 hours. Set to 0 for legacy 8-hour fallback. Signals also clear on direction reversal.
Unified Entry Engine
The E button and the scanner now share the same entry computation. When a signal appears in the scanner for the chart symbol, the E button draws entry/SL/TP lines from the scanner's stored data — they always match. If the scanner signal expires, E falls back to its own M15 scan so setups can still appear independently. Entry data is saved to the persistence file and survives MT restarts.

Chart Appearance

InputDefaultWhat It Controls
InpCandleBullColorBlueBull candle colour. Applied on indicator init.
InpCandleBearColorRedBear candle colour.
InpChartBGColorBlackChart background colour.
InpChartFGColorWhiteChart foreground colour (axis text, labels).
InpChartGridColorDimGrayChart grid line colour.
InpAlertPopupBuyClrLimeToast popup colour for buy signals.
InpAlertPopupSellClrRedToast popup colour for sell signals.
InpAlertPopupInfoClrGoldToast popup colour for info alerts (KZ, PF).

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.

Easier method — InpSymbolSuffix Instead of retyping every symbol, just leave InpSymbols as-is and set InpSymbolSuffix to your broker's suffix (e.g. .m, .r, -ECN, #). The indicator appends it to every symbol automatically and skips ones the broker doesn't have. This is the recommended approach.
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. Currency Strength panel parses XAU* / GOLD* / BTC* / USDT automatically.

Dashboard text too small / too big — Mac, 4K, VPS, Parallels v1.63

The default size is tuned for a 1920×1080 Windows display at 100% Windows scaling. On any other setup — Mac Retina, 4K monitors, ultrawides, small laptops, Parallels VMs, remote VPS, or Windows DPI scaling above 100% — the dashboard can look too small, too big, or have clipped text. Fix it in the indicator inputs.

Step 1 — One global knob

Set InpUIGlobalScalePct (range 50–200) and reload the chart. This scales every layout pixel and every default font in lockstep, so columns, rows, and fonts grow / shrink together.

SetupTry this valueNotes
Standard Windows 1080p100Default. Don't change.
4K / 1440p / HiDPI Windows115–130If Windows display scaling is set to 125% or 150%, the indicator already looks the right size at 100; only bump if text feels small.
Mac Retina (native MT5 / MT4)115–130Mac Retina renders MT at 2x — text at 100 is readable but tight. 120 is the sweet spot for most.
Mac Parallels / VMware (Windows guest)100–115Behaves like Windows. If the Parallels guest is set to "Best for Retina display", treat it like 4K and use 115–125.
VPS / RDP from a HiDPI client100The VPS itself is usually 1080p — keep at 100. The RDP client handles your local scaling separately.
Small laptop (13" or below)80–90Frees screen real estate so the scanner doesn't push the chart out.
External 4K with sharp eyes90–95Fits more pairs without scrolling.

Step 2 — Per-area font overrides (optional)

If a specific area is still off after the global scaler, override just that area. Default 0 = follow the scaled default; set >0 for a fixed point size (clamped 6–24).

What's wrongInput to set
Scanner table cramped or oversizedInpUIFontScanner
HTF context panelInpUIFontHTF
Currency strength stripInpUIFontCurrency
Top confluence panelInpUIFontTopConf
Dashboard TF / toggle buttonsInpUIFontDashTF / InpUIFontDashToggle
Status line under togglesInpUIFontDashStatus
F1 user guide popupInpUIFontHelpF1
Scanner ? legend popupInpUIFontScanHelp
Toast alert bannerInpUIFontToast
On-chart entry / SL / TP labelsInpUIFontTradeLatest / InpUIFontTradeHist

Step 3 — Font family for Mac users

Defaults are Arial + Courier New (both ship on Mac and Windows). Mac users who prefer native fonts can change them:

  • InpUIFontProp = "Helvetica" — proportional family (buttons, labels, titles).
  • InpUIFontMono = "Menlo" or "Monaco" — monospace family (status line, HTF rows, F1 help, room labels).

Drag to position

If the dashboard / scanner blocks something on your chart, just click-drag the scanner header — the whole stack (scanner, HTF, currency strength, top confluence) moves together. Position is remembered for that chart while the indicator is loaded.

If text disappears entirely You probably set a per-area override too small (below 6pt). Set the offending input back to 0 to follow the scaled default and the area will reappear.

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 indicator file is in MQL5\Indicators\ (MT5) or MQL4\Indicators\ (MT4). 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.
Built-in throttling v1.63Scanner table redraws every 2 s, HTF context every 5 s, currency strength + top confluence every 15 s. HTF panel text caches per H4/D1 bar. Per-symbol H4/D1 trends are cached on the symbol state so the scanner HTF column and Top Confluence panel skip redundant indicator reads on every refresh.
Optimised CodeFull Strategy Tester optimisation: the indicator detects tester mode and skips heavy graphical operations.

Mac, VPS, Parallels — what to expect

SetupNotes
Mac (native MT5 / MT4)Works fine. The indicator uses Arial + Courier New by default — both fonts ship on macOS. If you prefer native fonts, set InpUIFontProp = "Helvetica" and InpUIFontMono = "Menlo". For Retina screens, set InpUIGlobalScalePct = 115–130.
Mac via Parallels / VMwareBehaves like a Windows PC inside the VM. If Parallels is set to "Best for Retina", the guest sees a HiDPI screen — set InpUIGlobalScalePct = 115–125. Otherwise leave at 100.
Windows VPS / RDPRecommended for 24/5 alerts and push notifications. Most VPS providers run 1080p — keep the scaler at 100. Push only fires while the desktop terminal is connected — VPS keeps it online.
4K / UltrawideEither turn Windows display scaling up to 125%/150% (then keep InpUIGlobalScalePct = 100), or leave Windows at 100% and set InpUIGlobalScalePct = 115–130. Both work — pick whichever looks cleaner.
Tester modeThe indicator auto-detects Strategy Tester and skips dashboards, scanner, and HTF panels. No setup needed.

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 scanner HTF column (✓/✗/~)
  • 4. Check HTF Context panel (chart symbol)
  • 5. Wait for Killzone
  • 6. Enter on aligned signal
  • 7. Manage with ADR + PF status

HTF Panel

  • All green = Triple alignment ★★★★★
  • Mixed = Reduce size / wait
  • N/A = Data loading, wait

Currency Strength

  • Green = Strong (positive score)
  • Red = Weak (negative score)
  • Grey = Flat (zero)
  • Trade strong vs weak pairs

Top Confluence

  • Top 3 pairs ranked by score
  • HTF + Peak + KZ + Signal
  • 3.0+ = High probability
  • E draws from scanner (unified)
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