⚡ Chuka & Lana Trading Machine
Live Dashboard Analytics Strategy Trade Playbook

Trade Construction Reference

The Trade
Playbook

A side-by-side reference for reading what the bot detects, what passes each gate, and what each operator-facing alert represents. The worked examples below originate from the prior zone strategy; a BOS-specific rewrite is in progress for the next release.

Read on

NOTE: The six worked examples below are illustrative — they describe the shape of a clean, ambiguous, or unsafe BOS setup so the operator can pattern-match against live ones. Real annotated trades from the bot's journal will replace these as the live demo collects them.

🔬 SHADOW-ONLY
Illustrations reference the RETRACE workflow (shadow-only since v1.14.79). The clean-signal shape described below is genuine; only the live-order description ("order fires at OANDA") no longer applies to these examples. Live MOMENTUM entries take a different path — see Section 04 (H4 regime filter).

The perfect BOS setup

These are the setups where every BOS criterion lines up — clean swing break, daily alignment, qualifying retrace zone, RRR above the 2.0 floor, and every pre-entry gate clearing. When the dashboard's BOS PLANNED row matches what one of these describes, you're looking at the cleanest textbook expression of the RETRACE workflow. In shadow-only mode the fill and outcome are simulated to the shadow journal; live orders on MOMENTUM-classified BOSes fire immediately at market and never publish a PLANNED row.

NAS 100 — M5 BULLISH BOS retrace into demand zone
StructurePrior M5 swing high broken with a strong bullish-body close Daily alignmentBullish daily candle — BOS direction matches Retrace zoneCompact demand zone formed at the broken structure level RRR3.2:1 — entry at zone proximal, target at broken swing Card statePLANNED row populated · entry/SL/TP visible on Active BOS Detections

Every criterion clean. When the 🎯 BOS PLANNED Telegram lands, the setup is one retrace away from firing. Watch for the ✅ RETRACE CONFIRMED — then the order is at OANDA.

XAU — H1 BEARISH BOS aggressive 2/2 candidate
StructureH1 swing low broken cleanly · candle body cleared the level Daily alignmentBearish daily — direction matches the H1 BOS Retrace zoneSupply zone built above the broken level · width in regime band RRR2.8:1 · score 10/14 · correlation group slot free ModeAggressive trigger eligible (high score + correct P/D + clear group)

The rare case where the aggressive 2/2 path may fire — two positions on the same setup, doubled risk for a clean signature. The bot only takes this when score, group cap, and direction all line up.

🔬 SHADOW-ONLY
RETRACE workflow examples — shadow-only. The SPX500 card below is doubly illustrative: SPX500 is fully scan-only per the tier matrix (bot_v4_final.py:42311), so no BOS on it ever reaches live even if RETRACE were re-promoted.

Monitor with caution

These RETRACE-path BOS setups clear the minimum bar but one or two signals are softer than ideal. In shadow simulation the bot may take them; the operator should read the shadow journal outcome as a wider distribution than for the textbook cases above.

SPX 500 — M15 BULLISH BOS marginal RRR · NORMAL regime
StructureM15 swing high broken — close beyond the level but body modest Daily alignmentBullish daily — direction matches Retrace zoneZone width at the wider end of the NORMAL band RRR2.05:1 — only marginally above the 2.0 floor Why cautionModest break body + marginal RRR. Stop-out probability higher than the +0.71R M15 expectancy suggests for textbook setups.

Acceptable but not elite. The bot will take it if all 17 gates pass. Operator should expect a wider range of outcomes here than on a clean break with a 3:1 setup.

US 30 — M5 BEARISH BOS late session · 16:45 BST
Structure + dailyBoth clean — body close beyond swing low, bearish daily Retrace zoneTight supply zone formed · RRR 2.4:1 TimingLate session — wider spreads, thinning institutional flow WindowM5 BOS · 4-hour active window started at 16:00 Why cautionThe same setup at 09:30 would be high conviction. Late-session liquidity makes break-and-retrace candles less decisive.

Structure and zone are right; timing is not. The bot does not gate purely on time-of-day, but the operator's eye on the retrace candle quality matters more here than on a 09:00 setup.

⚙ BOTH PATHS
Gate blocks below apply to MOMENTUM and RETRACE alike. Daily-alignment mismatch, RRR-below-floor, and the news / DD / correlation-cap gates refuse the entry regardless of which classifier route the BOS took. Live orders never reach OANDA; shadow rows still get written for post-hoc analysis.

Avoid entirely

These BOS conditions are exactly what the bot was designed to reject. The Active BOS Detections row may or may not even appear — what's certain is no live order reaches OANDA. Trust the bot. The temptation to override on a "feels right" gut read is the precise bias the strategy was built to remove.

NAS 100 — M5 BULLISH BOS daily misalignment — rejected at Stage 2
StructureBullish BOS — swing high broken with a clean body close Daily alignmentBEARISH daily candle — direction conflict ActionSetup never advances past Stage 2 · no PLANNED row publishes Shadow journalReject reason logged as BOS_GATE_BLOCKED for offline analysis Card stateNo active detection · no Telegram

The single most common losing trade across all timeframes: a clean break against the daily direction. Stage 2's hard filter is doing exactly its job. Do not override.

XAU — H1 BEARISH BOS RRR below 2.0 floor
StructureH1 swing low broken with a strong bearish-body close Daily alignmentBearish daily — direction matches Retrace zoneSupply zone built · wide given a HIGH regime gold environment RRR1.65:1 — below the 2.0 floor Why avoidEven with structure and daily aligned, the planned RRR doesn't clear the floor. Setup silently dropped — never appears as a PLANNED row.

The 2:1 minimum is the single non-negotiable parameter of the strategy. If RRR is below 2.0 the bot will not publish a plan, won't fire an order, won't pretend the setup exists. Mirror the bot's discipline.

⚡ LIVE — MOMENTUM path
This section describes the classifier gate that every LIVE MOMENTUM entry passes through. The H4 regime filter runs on every BOS, on every timeframe, alongside the departure_r magnitude bar. The two are separate per-symbol calibration knobs.

What the bot checks on the higher timeframe

Before any BOS becomes a MOMENTUM entry, the classifier (_classify_bos_momentum, bot_v4_final.py:40722) reads the current H4 structure — UPTREND, DOWNTREND, or RANGE — from the same swing-point pipeline the bot uses on the trade timeframe. This runs the same way regardless of which timeframe (M5, M15, H1) produced the BOS: the H4 context tells the classifier whether the break lines up with a directional macro backdrop or is happening inside chop.

The three H4 states

UPTREND

Recent H4 swing highs step higher; swing lows step higher. A BULLISH BOS on any timeframe is aligned — a top-quality MOMENTUM candidate.

DOWNTREND

H4 highs and lows both step down. A BEARISH BOS is aligned; a BULLISH BOS is counter-trend and — on the default rule — cannot classify as MOMENTUM.

RANGE

H4 highs and lows churn inside a band — no directional structure. A BOS in either direction is unaligned by default.

Default behaviour — MOMENTUM requires H4 alignment

A BOS classifies as MOMENTUM only when its direction matches the H4 trend — bullish BOS on H4 UPTREND, or bearish BOS on H4 DOWNTREND. When H4 is RANGE, or when H4 is trending in the opposite direction, the same BOS is normally downgraded to RETRACE (departure_r ≥ 0.5 without H4 alignment) or WEAK (departure_r below 0.5).

This is the guardrail that keeps MOMENTUM from firing into chop or against the higher-timeframe tape. It's a large part of the reason MOMENTUM-classed entries have a materially higher win-rate baseline than RETRACE-classed signals in the shadow journal.

The _relax_h4 override — per-symbol calibration

Four instruments — ... — carry an override at bot_v4_final.py:40800. For these four, a BOS can still classify as MOMENTUM when H4=RANGE, provided departure_r clears the per-symbol threshold. H4=UPTREND / DOWNTREND behaviour is unchanged; the relax is an OR-branch on the H4 check, not a replacement for it.

Each of the four was added on evidence, not by symmetry:

XAG_USD carries the relaxation despite not being live-promoted — v1.14.34 shipped it deliberately to unblock MOMENTUM shadow-journal accrual, since XAG's 87% H4=RANGE distribution would otherwise leave the shadow with zero MOMENTUM rows and no basis for a future promotion decision. The relaxation starts the data clock; live promotion (adding XAG to BOS_MOMENTUM_LIVE_PROMOTED) is a separate downstream decision that follows the shadow sample reaching the n≥20 floor and the WR reaching the 33.3% breakeven bar.

Instruments without the relaxation — stricter standard

Five instruments — AUD_USD, EUR_USD, GBP_USD, NAS100_USD, SPX500_USD, US30_USD, USD_JPY, XAG_USD, XAU_USD — do NOT have the H4 relaxation. On these, a BOS can only reach MOMENTUM classification when H4 is in a directional trend matching the BOS direction. If H4=RANGE, the best they can get is a RETRACE classification (which, under the current BOS_RETRACE_LIVE_PROMOTED = set() policy, is shadow-only).

This is deliberate. The four relaxed instruments earned the OR-branch on documented H4=RANGE-dominant shadow distributions; the other five haven't shown the same pattern. Adding a new instrument to the relax set requires the same evidence — a real shadow distribution showing H4=RANGE dominance, not a symmetry argument.

Two separate knobs — do not conflate

The H4 regime filter and the departure_r threshold are independent per-symbol calibrations. A BOS must clear BOTH to reach MOMENTUM.

departure_r threshold

How strong the break candle needs to be, measured as (|close − swing| / ATR).

  • NAS100_USD, SPX500_USD, US30_USD — 0.3 (indices have disproportionately large ATR)
  • AUD_USD, EUR_USD, GBP_USD, USD_JPY, XAG_USD, XAU_USD — 0.7 (data-calibrated default)

Defined in BOS_MOMENTUM_THRESHOLDS, bot_v4_final.py:504. Calibration re-confirmed via 2026-07 shadow-replay.

_relax_h4 override

Whether H4=RANGE is acceptable for MOMENTUM classification on this symbol.

  • ...
  • AUD_USD, EUR_USD, GBP_USD, NAS100_USD, SPX500_USD, US30_USD, USD_JPY, XAG_USD, XAU_USD

Defined in _classify_bos_momentum, bot_v4_final.py:40800.

Failing the departure_r bar drops the BOS to WEAK — never traded, never journaled beyond the detection log. Passing departure_r but failing the H4 rule drops it to RETRACE — shadow-only under the current policy. Passing both = MOMENTUM classification, which is what the live entry path (_try_bos_momentum_entry, bot_v4_final.py:43478) actually acts on.

⚡ LIVE — MOMENTUM path
Even when a BOS classifies as MOMENTUM, one more gate decides whether the entry fires live or writes shadow-only. The tier matrix at bot_v4_final.py:42296 holds a per-(instrument, timeframe) verdict: live or scan_only. This is orthogonal to BOS_MOMENTUM_LIVE_PROMOTED; both must approve.

Which timeframes are actually live

MOMENTUM classification says "this BOS looks like a real directional move." The tier matrix says "on THIS timeframe of THIS instrument, we are willing to place a live OANDA order today." Both gates must clear before _try_bos_momentum_entry (bot_v4_final.py:43478) reaches the market-order call.

Symbol M5 M15 H1 Momentum live-promoted?
XAU_USD live live scan_only ✓ live-promoted (v1.14.18)
NAS100_USD live live scan_only ✓ live-promoted (v1.14.66)
US30_USD live live scan_only ✓ live-promoted (v1.14.66)
SPX500_USD scan_only scan_only scan_only no (v1.14.70 demoted, WR below breakeven)
XAG_USD scan_only scan_only scan_only no (awaiting n≥20 shadow floor — see Section 04)
EUR_USD / GBP_USD /
AUD_USD / USD_JPY
scan_only scan_only scan_only no (below-breakeven shadow WR to date)

Why H1 is scan_only on the three live-promoted syms

H1 scan_only across XAU, NAS100, and US30 is intentional. Two reasons:

The v1.16.1 fix (ADV-48) enforces this at runtime: _bos_momentum_live_eligible now returns False for any (sym, tf) whose tier matrix cell is not live, with refusal reason SCAN_ONLY_TF. Before v1.16.1 there was a gap where an H1 BOS on a live-promoted sym could reach the live entry path even though the tier matrix said scan-only. That gap is now closed by two independent gates: the tier check in the eligibility function AND the tier check in the block-reason enumerator.

Promoting a new (sym, tf) cell to live

The tier matrix is a data-gated decision, not a preference. Adding a cell to live requires:

Everything else stays scan_only. Removing a cell from live (demoting) requires only sustained WR regression; the change is a single dict edit + a PARAM_VERSION bump.

🔬 SHADOW-ONLY
RETRACE is not currently placing live orders. Since v1.14.79 (2026-06-24) BOS_RETRACE_LIVE_PROMOTED = set() — RETRACE-classed signals write to momentum_shadow_journal.csv only; no OANDA order is placed regardless of instrument. The mechanics below describe how the shadow simulator scores fills so the journal is readable. Live entries fire on the MOMENTUM path — see Section 04.

How deep is the retrace?

When the classifier routes a BOS to RETRACE — departure_r in the 0.5-0.7 band, or above 0.7 without H4 alignment on the non-relaxed instruments — the shadow simulator builds a planned entry at the zone proximal and scores a fill against the subsequent price path. The depth of the retrace into the planned demand or supply zone changes the character of the simulated fill. Five tiers, each with a different meaning for shadow-fill probability and follow-through.

0%
No retrace yetBOS formed but price hasn't pulled back at all. PLANNED row exists but no fill possible. Window can expire without a touch — the strategy never chases.
Wait or expire
1–29%
Shallow approachPrice drifting toward the zone but hasn't actually touched the proximal yet. Entry not triggered. Monitor — strong momentum away from here usually means the BOS continues without a fill.
Monitor only
30–69%
Touched proximalPrice has reached the entry side of the zone. All 17 gates run; if they clear, the order fires. This is the most common fill depth — institutions usually defend on first touch.
Order fires
70–89%
Deep retracePrice pushed well into the zone before reversing. Entry filled near the distal — slightly worse than the planned entry, but the SL still holds. Often the cleanest reversal signature.
Wider entry · same R
90–100%
Full retrace · zone testedPrice drove all the way through the zone to the SL. Either the trade is open and the SL closed it, or the BOS was invalidated mid-retrace. The bot moves on — no second chance on the same structure.
SL hit / invalidated
🔬 SHADOW-ONLY
RETRACE fill-momentum reference — shadow simulation. Directional urgency described below applies to shadow-journal fill scoring. Live MOMENTUM entries do not sit on a planned row — they fire immediately on BOS candle close.

Arriving or leaving?

Once a RETRACE-classed BOS produces a PLANNED row in the shadow simulator, the next question is how price is moving relative to the retrace zone. The distance-to-entry field and how fast it closes or widens shape the simulated fill probability and the follow-through band on the shadow journal.

↓↓
Toward · Fast

BULLISH BOS · demand retrace

Price falling fast into the planned demand zone. Distance to entry closing rapidly. Stay at screen — RETRACE CONFIRMED is imminent.

Toward · Slow

BULLISH BOS · demand retrace

(M5: 6h, M15: 12h, H1: 24h)

Flat

Stalled retrace

No movement either way. Watch the window countdown — if it ticks to zero with price still flat, the BOS expires and the PLANNED row disappears.

Away · Slow

BULLISH BOS · drifting up

Price continuing in the BOS direction without retracing. Fill probability dropping. Often the BOS plays out without ever offering an entry — and that's fine.

↑↑
Away · Fast

BULLISH BOS · runaway

Strong continuation away from the zone. Entry will not fire on this BOS. Do not chase a runaway with a manual order.

↑↑
Toward · Fast

BEARISH BOS · supply retrace

Price rising fast into the planned supply zone. Same urgency as the bullish-retrace fast case. RETRACE CONFIRMED is imminent.

⚙ BOTH PATHS
One-page checklist covers gate rules that apply to both MOMENTUM and RETRACE classifications. A few flags are RETRACE-specific (retrace-momentum, PLANNED row publication); those apply to the shadow simulator only under the current policy.

Green flags · red flags

The one-page check. When in doubt, scan these two lists — if more greens than reds line up on a card, trust the bot. If reds dominate, the bot will protect you at the gate; your job is to not override it.

Green flags

Trust the BOS setup
  • Daily candle direction matches the BOS direction
  • Strong-body break close — not a wick-only poke
  • Active BOS Detections row with PLANNED entry/SL/TP populated
  • RRR comfortably above 2.0 (closer to 3:1 or higher)
  • Toward · Fast retrace momentum into the zone
  • Zone width sits comfortably inside the regime band
  • Correlation group still has a slot free
  • Window has plenty of time left on the clock

Red flags

Mirror the bot's restraint
  • Daily candle direction opposite the BOS — Stage 2 hard block
  • Wick-only break, no body close beyond structure
  • BOS DETECTED Telegram fired but no PLANNED row publishes
  • RRR just above 2.0 (1.65:1 = silent drop)
  • Away · Fast momentum on a planned retrace
  • Multiple losses already today on the same direction (per-dir cap)
  • Account at the daily DD cap (-5%) — all new entries blocked
  • Tier-A correlation group already full

Wait for bot confirmation

The dashboard surfaces everything. The bot's gate decides. This playbook helps you read the dashboard the way the gate reads it — so the two of you arrive at the same conclusion in real time.

Last updated · v1.16.15 · July 2026
Updated as the strategy evolves · check the changelog for what changed