The client's idea
Mehdi Sadeghi works GBPUSD on M30; the opening brief was: Turn my variance breakout idea — currently only on paper — into something testable.
Project and starting point
The idea was clear on paper, but nobody knew how many signals it produced historically or whether execution cost justified them.
Solution architecture
A configurable calculation window, a filter against duplicate signals inside one time window, and a report of signal count per setting.
The first deliverable was a signal-count report rather than a trading bot, on purpose. It matches how GBPUSD is actually traded and can be tested against the data already available.
Why this design
The first deliverable was a signal-count report rather than a trading bot, on purpose. It matches how GBPUSD is actually traded and can be tested against the data already available.
Implemented capabilities
Modules and components built: Calculation window + duplicate filter.
Delivered output:
Variance breakout bot — GBPUSD (M30)
Specification document and the rule-to-code mapping table
Full MQL5 source, commented
Test report: Four-year backtest and forward test
Parameter document and install guide (9 weeks)
Safeguards and risk control
Every rule that was ambiguous in the strategy text became an explicit, approved decision in the specification.
Backtest and forward test method
Test method: Four-year backtest and forward test.
Testing runs in three stages: a backtest on historical data, limited optimisation inside the contract's scope, and a forward run with the parameters frozen.
Tools and stack: MQL5, M30 data, spread simulator.
Every figure from this project is published together with its measurement conditions: the data window, the tick model, the spread, the commission and the build of the executable. Without them a number cannot be compared with anything.
Publishable results
After reading the report the client changed the window parameter, and the final build behaved the same way on fresh data.
Limitations and cautions
Every rule that was ambiguous in the strategy text became an explicit, approved decision in the specification.
Every test result depends on the quality of the historical data, the broker's spread and market conditions, and none of it is a promise about the future. Through a severe price gap or a broker disconnection a stop loss cannot be guaranteed, so behaviour in those conditions must be reviewed separately.
Our next-step proposal
The next step is documenting the second version of the strategy after a few weeks on demo.
Portfolio
Measured results
These are the figures the test produced — not a promise about future performance.
- 4 years Test window
- 6,500 Bars in the test set
- 15 Configurable inputs
- 8 scenarios Scenario test coverage