The client's idea
Farshid Asadi works EURUSD on H1; the opening brief was: My experts' settings panel broke, and I want the set files organised too.
Project and starting point
The old settings panel had become incompatible with newer terminal builds, and unnamed set files made correct configuration guesswork.
Solution architecture
The input panel was rebuilt with save/restore, set files got a consistent naming scheme, and every expert kept its previous behaviour.
All four experts share one naming pattern so support work no longer needs guessing. It matches how EURUSD is actually traded and can be tested against the data already available.
Why this design
All four experts share one naming pattern so support work no longer needs guessing. It matches how EURUSD is actually traded and can be tested against the data already available.
Implemented capabilities
Modules and components built: Settings save and restore.
Delivered output:
MT4 input panel and set-file rebuild — EURUSD (H1)
Specification document and the rule-to-code mapping table
Full MQL4 source, commented
Test report: Tested against four legacy experts
Parameter document and install guide (6 weeks)
Safeguards and risk control
New code lives in pure functions without hidden global state, and order-execution errors are caught and logged.
Backtest and forward test method
Test method: Tested against four legacy experts.
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: MQL4, the legacy environment, set files.
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
Reconfiguring every expert fell from hours to minutes, and set-file mix-ups disappeared from the reports.
Limitations and cautions
New code lives in pure functions without hidden global state, and order-execution errors are caught and logged.
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 automated tests over the calculation functions and documentation of the internal API.
Portfolio
Measured results
These are the figures the test produced — not a promise about future performance.
- 11 Defects fixed
- 0 Regressions caught
- 34 Configurable inputs
- 6 scenarios Scenario test coverage