Case studies

Case study: Trade journal exporter engine

Trade analysis was manual: every trade copied out of the terminal, and a typo in the data would invalidate the results.

  • XAUUSD / EURUSDMarket
  • M15TF
  • MT5Platform
  • 6 weeksDelivery window
  • 5Deliverables
Backtest and forward test method

The client's idea

Elham Nouri works XAUUSD / EURUSD on M15; the opening brief was: I want my trades exported with full detail into a clean file — not screenshots of the terminal.

Project and starting point

Trade analysis was manual: every trade copied out of the terminal, and a typo in the data would invalidate the results.

Solution architecture

An export module writing each trade to a daily CSV with the fields that matter — session, stop distance, signal module — reconciled against the terminal report.

The columns were agreed with the client up front, because the analysis questions follow from them. It matches how XAUUSD / EURUSD is actually traded and can be tested against the data already available.

Why this design

The columns were agreed with the client up front, because the analysis questions follow from them. It matches how XAUUSD / EURUSD is actually traded and can be tested against the data already available.

Implemented capabilities

Modules and components built: Daily CSV + custom fields.

Delivered output:
Trade journal exporter engine — XAUUSD / EURUSD (M15)
Specification document and the rule-to-code mapping table
Full MQL5 source, commented
Test report: Reconciled against terminal reports
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: Reconciled against terminal reports.

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, CSV, a Python analysis script.

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

Monthly data collection dropped from two days to minutes, with no numeric difference from the terminal report.

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.

  • 12 Configurable inputs
  • 60 ms Order round-trip time
  • 1,480 Trades reviewed
  • 7 scenarios Scenario test coverage