Portfolio

Walk-forward testing framework

A framework splitting history into consecutive windows, optimizing on one and evaluating on the next, with a report showing the gap per period.

MT5 Team / company Abtin Quant Team Strategy development team

Project specifications

Project specifications

Market
EURUSD
TF
H1
Platform
MT5
Client type
Team / company
Delivery window
11 weeks
Stack
MQL5, Python scripts, HTML reporting
Strategy
Period splitting + rolling optimization
Modules
Window reporting + overfit detection
Testing
Run across three of the team's strategies

Who this was for

Abtin Quant Team

Role
Strategy development team
City
Tehran
Project reference
TBT-1409-33
Trade flow

The client's idea

Abtin Quant Team works EURUSD on H1; the opening brief was: Tell me whether a backtest result repeats, or whether it belongs to one lucky period.

Initial challenge

The team optimized on one period and then reported that same period — and the result never repeated on fresh data.

Solution

A framework splitting history into consecutive windows, optimizing on one and evaluating on the next, with a report showing the gap per period.

Why this design

Each window is reported separately so a good average cannot hide weak halves. It matches how EURUSD is actually traded and can be tested against the data already available.

Safeguards and risk control

No parameter was optimized on the whole set: part of the data was held back for out-of-sample testing.

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.

  • 5 years Test window
  • 12 Configurable inputs
  • 9 scenarios Scenario test coverage
  • 98 % Runtime stability in test

Portfolio

How the delivery ran

Every project moves through these five phases, with the window for each agreed in the specification.

  1. Discovery and problem framing

    Completed

    Reviewing the client's current test method and the quality of the available EURUSD data.

    Day 3–8

  2. Written specification

    Completed

    Fixing the assumptions: spread, commission, slippage and the tick model used.

    Day 9–23

  3. Implementation

    Completed

    Preparing the test environment, the run scripts and results that can be compared. The HTML report carries a comparison chart for every window.

    Day 24–51

  4. Testing and validation

    Completed

    Controlled optimization, out-of-sample testing and forward testing on fresh data.

    Day 52–69

  5. Handover and support

    Completed

    A report separating the optimized part from the robust part, plus the remaining risks.

    Day 70–73