The client's idea
Sarve Trading Team works XAUUSD / EURUSD on M15; the opening brief was: One build runs on four accounts and change management has become painful — tidy it up.
Project and starting point
The team kept one copied build per account: every fix had to be applied four times and the copies slowly drifted apart.
Solution architecture
A single build with a separate settings file per account, a run id in every log line, and the gratuitous differences between copies removed.
The run id on every log line makes it easy to trace one account's problem without reproducing it. It matches how XAUUSD / EURUSD is actually traded and can be tested against the data already available.
Why this design
The run id on every log line makes it easy to trace one account's problem without reproducing it. It matches how XAUUSD / EURUSD is actually traded and can be tested against the data already available.
Implemented capabilities
Modules and components built: Per-account settings + run ids.
Delivered output:
Multi-account expert cleanup — XAUUSD / EURUSD (M15)
Specification document and the rule-to-code mapping table
Full MQL5 source, commented
Test report: Four accounts from one build
Parameter document and install guide (8 weeks)
Safeguards and risk control
Every change starts from a saved backup, and the previous behaviour is kept as the test reference.
Backtest and forward test method
Test method: Four accounts from one build.
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, settings files, run-id logging.
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
Applying a fix went from four repetitions to one change, and for the first time the team can see every account's version in one table.
Limitations and cautions
Every change starts from a saved backup, and the previous behaviour is kept as the test reference.
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 a full technical review of the expert and clearing the old code's debts.
Portfolio
Measured results
These are the figures the test produced — not a promise about future performance.
- 100 % Parity with the previous build
- 9 Defects fixed
- 12 scenarios Scenario test coverage
- 26 Configurable inputs