The client's idea
Arash Nikpour works EURUSD on M15; the opening brief was: Read my strategy text, and ask about every ambiguity so the code means exactly one thing.
Project and starting point
The strategy text was full of qualitative phrases — "calm market", "clear move" — and without numbers every implementation behaved differently.
Solution architecture
A clarification session turned every phrase into a number, the conditions were written into the specification, and the code implements exactly those.
The specification was signed off before any code, so no disagreement could appear after delivery. It matches how EURUSD is actually traded and can be tested against the data already available.
Why this design
The specification was signed off before any code, so no disagreement could appear after delivery. It matches how EURUSD is actually traded and can be tested against the data already available.
Implemented capabilities
Modules and components built: Numeric conditions + trade rejection.
Delivered output:
Mean reversion bot — EURUSD (M15)
Specification document and the rule-to-code mapping table
Full MQL5 source, commented
Test report: Edge scenario testing
Parameter document and install guide (7 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: Edge scenario testing.
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, the client's strategy document, M15 data.
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
The mapping table showed every rule in the client's text landing on a code condition, and off-rule trades dropped to zero.
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.
- 11 scenarios Scenario test coverage
- 18 Configurable inputs
- 700 Trades reviewed
- 9.9 % Max drawdown in test