Plain-English guide to how the simulator trades · for the strategy / business team
Subject: the part of the simulator that makes the trading decisions.
Audience: no coding knowledge needed. Purpose: a shared understanding so we can
review together — what's right, what's missing, what should change.
The engine is a simulator. You give it a price history for an instrument (e.g. Gold) and a set of
strategy settings (a "profile"), and it replays the market one candle at a time, making the same
decisions a live trading robot would make. When a strong move breaks out, it places a two-sided
"straddle" of pending orders — a ladder of buy orders above the price and a ladder of sell orders
below it — then lets the market choose the direction, builds into the winning side, holds the losing
side open as a built-in hedge, and banks the whole basket once it is a set percentage ahead. It never
touches a real broker — it produces a report (equity curve, trade list, profit/loss, win rate) so we can
judge whether the strategy would have worked before risking real money.
2. The strategy in everyday terms
The core idea is "cover both directions at the breakout, then let the market pick the winner."
Spot the trend. On the 4-hour chart the engine watches whether price is clearly heading up
or down, using a few standard signals together (a fast vs. slow average price — EMA 40 vs EMA 110,
the angle of a regression "trend line," and a strength gauge). A quiet or choppy market produces no trade.
Wait for the breakout. When price decisively pushes through the trend line (confirmed at the
close of a 1-hour candle, not on a brief spike), that's the trigger.
Place both ladders at once (the "straddle"). Instantly it places 7 buy orders stacked above
the price and 7 sell orders stacked below it, evenly spaced (default 40 pips apart). All are pending
"stop" orders that activate only if price reaches them, left open with no stop-loss and no take-profit
— exactly like the broker screenshots.
Let the market choose the direction. Whichever side fills first becomes the main direction;
the opposite ladder automatically becomes the hedge. They are always the same size.
Build into strength. As price keeps running, more rungs on the winning side activate — the position
grows only while the trade is working ("averaging up," never down).
Never close at a loss. Rungs that go offside are held open, protected by the opposite ladder,
rather than being stopped out at a loss.
Lock in the winners. Once the main ladder is fully filled and comfortably ahead, all its safety
levels move to break-even (a small locked profit). If a protected rung is later closed in profit, the
engine re-places it at the same level so there are always 7 buy + 7 sell orders working.
Bank the whole basket at a profit target. When the combined floating profit of everything (main +
hedge, after costs) reaches a set percentage of the account (default 5%), it closes everything, takes
the win, waits 15 minutes, and looks for the next breakout.
A useful mental image: it's like backing both sides of a race, then doubling down on whichever horse
breaks ahead while your other tickets cap the downside — and cashing the whole book once you're a set amount
up.
3. The life of a trade (step by step)
Watch & wait — no breakout, no trade. Filters can also block trading (see §4).
Confirmed breakout — both ladders (7 buy orders above + 7 sell orders below) are deployed
instantly around the breakout price.
Direction decided — the first rung to fill sets the "main" direction; the opposite ladder
becomes the hedge.
Building & hedging — as price runs, more winning-side rungs activate (averaging up); rungs on the
other side fill too and act as the hedge.
Break-even protection — once the main ladder is fully filled and ahead, all its safety levels move to
break-even (a small locked profit). Nothing is ever closed at a loss.
Keeping it full (7 + 7) — if a protected rung is closed in profit, the engine re-places that same
order at its level when price returns, so both ladders always stay complete.
If it stalls — if a fully-built basket sits without hitting its target for a set time, the engine
adds a few extra rungs on both sides (once), to catch a renewed move either way.
Target hit — when total floating profit (after costs) reaches the target %, everything closes and
profit is realised.
Cooldown & repeat — after a 15-minute pause, the engine is ready for the next breakout.
4. Safety & risk controls
Quality filters before entering: skips trading when the spread (trading cost) is too wide, when the
market is too quiet (low volatility), optionally unless volume is rising, or outside chosen trading hours
(e.g. London / New York).
Position sizing — margin & leverage. Each order commits a chosen margin % of the account
per position (default 2% each), multiplied by a leverage ratio (e.g. 30 = 1:30). Both ladders
use the same size, so the hedge always matches the main direction.
No stop-loss and no take-profit, no daily-loss stop, no drawdown limit — by design. The strategy
never closes a position at a loss. The opposite ladder is the loss protection, so there is no daily
stop and no drawdown cap that would force a losing exit.
The hedge side is always present. Both ladders are placed at every breakout — the opposite-side
orders are there even before they're needed (deliberately hard-coded). There is no hedge expiry
and no time limit; positions close only when the whole basket is banked at its target.
Costs are counted. The profit target is measured on net profit — after spread, commission, and
overnight financing (swap) — so the +5% is a true, all-in figure.
Currency: internal maths is in USD; results can be shown in USD or GBP only.
5. What the engine gives us (the report)
Headline numbers: starting balance, final balance, net profit/loss, % return.
Quality numbers: number of trades, win rate, profit factor (winnings ÷ losses), and
maximum drawdown (worst peak-to-trough dip).
Cost & cycle detail: total commission and swap paid, the basket's main direction, and how
many full cycles (baskets banked) the run completed.
Equity curve: a chart of account value over time.
Trade list & open positions: every entry/exit with its profit or loss.
Run log, chart markers & action legend: a timestamped narrative of every action, colour-coded on
the price chart with a small legend, so anyone can see what happened and why (straddle placed,
direction set, rung filled/refilled, break-even, target hit).
6. Important assumptions & limitations
It's a simulation, not live trading. Slippage, broker behaviour, and liquidity gaps are
approximated, not guaranteed.
Two timeframes. The trend is read on the 4-hour chart; entries are decided on the
1-hour close.
By design, a finished cycle can end lopsided. In the worst case you may hold one position offside on
one side and several in profit on the other — the strategy accepts this and waits, because it never closes
in the red and only banks at the +5% net target.
Results depend entirely on the data fed in. Different sources (or the built-in synthetic fallback
used offline) give different results.
Past performance is not future performance — a profitable backtest is evidence, not a promise.
Some settings are deliberately fixed in code (e.g. the always-on hedge side, the 7+7 refill, and how
many extra steps the "stalled basket" adds), trading flexibility for consistency.
7. Discussion points for the meeting
Areas where the current behaviour may need a business decision:
Profit target = 5%. Is 5% of the account the right basket target across all instruments and account
sizes?
Ladder size & spacing. Are 7 orders per side, 40 pips apart, right across instruments (Gold,
Crude, Nasdaq) with their very different price scales?
Fixed vs. adjustable settings. Are we comfortable with the hard-coded items (always-on hedge side,
7+7 refill, stall extension), or should any be dashboard-controllable?
Trend definition. The engine confirms trends on the 4-hour chart from price averages (EMA 40 /
EMA 110) + slope + strength. Does this match how the desk actually defines a tradeable trend?
Resolved (team review, 2026-06-17): at every breakout the engine places both
ladders — 7 buy orders above and 7 sell orders below — and keeps them full (re-placing any rung closed in
profit). The first side to fill is the main direction, the other is the hedge, always the same size. There is
no stop-loss, no take-profit, no daily-loss stop, no drawdown limit, and no hedge expiry; a position is
never closed in the red, and the basket is banked only at +5% net (after spread, commission and swap).
8. Feedback log
Fill this in during/after the review (print this page or copy the table). The notes come
back to the team that maintains the engine for corrections to the engine and/or this document.