The client's idea
Leila Sadr works GBPUSD on M30; the opening brief was: I accept the optimum, but tell me how far the result falls if the parameters shift a little.
Project and starting point
Optimisation produced a single good point with no way to tell a real peak from a random bump in the data.
Solution architecture
A grid sweep over two key parameters, a stability map, and a report of how much the result falls for a small shift in each parameter.
The parameters were sorted by interdependence so the map carries a readable meaning. It matches how GBPUSD is actually traded and can be tested against the data already available.
Why this design
The parameters were sorted by interdependence so the map carries a readable meaning. It matches how GBPUSD is actually traded and can be tested against the data already available.
Implemented capabilities
Modules and components built: Two-parameter map + warning threshold.
Delivered output:
Parameter sensitivity report — GBPUSD (M30)
Specification document and the rule-to-code mapping table
Full MQL5/Python source, commented
Test report: Grid sweep on held-out data
Parameter document and install guide (7 weeks)
Safeguards and risk control
No parameter was optimized on the whole set: part of the data was held back for out-of-sample testing.
Backtest and forward test method
Test method: Grid sweep on held-out data.
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, Python scripts, a heat map.
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 report showed one parameter sat on an edge; shifting it slightly made the result more stable without giving up return.
Limitations and cautions
No parameter was optimized on the whole set: part of the data was held back for out-of-sample testing.
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 running the selected build on demo and reviewing weekly deviation from the test.
Portfolio
Measured results
These are the figures the test produced — not a promise about future performance.
- 48 Configurable inputs
- 8 scenarios Scenario test coverage
- 4 years Test window
- 97 % Runtime stability in test