The client's idea
Saeed Moghaddam works GBPUSD on M15; the opening brief was: Take the opening range breakout automatically — but never during a wide spread.
Project and starting point
Manual breakout execution in the opening minutes of the session was error-prone under wide spreads and violent swings, with results varying widely day to day.
Solution architecture
Three independent modules: session-range measurement, a trade-permission filter (spread, time, slippage) and an execution layer with controlled retry.
Why this design
The spread filter runs before the entry logic, because in this session execution cost matters more than the signal. It matches how GBPUSD is actually traded and can be tested against the data already available.
Implemented capabilities
The range window, maximum allowed spread, slippage cap, retry count and daily trade limit were implemented as configurable parameters.
Safeguards and risk control
Each module can be switched off on its own, and the exposure cap and daily stop are part of the expert rather than a later add-on.
Backtest and forward test method
Backtesting on real tick data with variable spread over a high-activity window, then limited optimization and a forward test on a demo account.
Publishable results
Breakout execution became fully mechanical, and execution metrics such as average slippage and order success rate are measurable and reviewable.
Limitations and cautions
Results depend on data quality and broker behaviour in the first minutes of the session; abnormal market conditions require separate testing.
Our next-step proposal
The proposed next step is a reporting module wired into the trade journal.
Portfolio
Measured results
These are the figures the test produced — not a promise about future performance.
- 1.6 pip Spread ceiling enforced
- 0.6 pip Average execution slippage
- 890 Trades reviewed
- 15 min Pause around news releases