The client's idea
Navid Investment Team works US30 / NAS100 on M15; the opening brief was: I have single-symbol results; I want to see how a two-index basket actually behaves.
Project and starting point
The team had tested each index alone; combining them could either worsen drawdown or make it look artificially small.
Solution architecture
A basket backtest with configurable weights, correlation measurement, and drawdown evaluated at basket level rather than per symbol.
The headline number in the report is basket-level drawdown: single-symbol figures were misleading. It matches how US30 / NAS100 is actually traded and can be tested against the data already available.
Why this design
The headline number in the report is basket-level drawdown: single-symbol figures were misleading. It matches how US30 / NAS100 is actually traded and can be tested against the data already available.
Implemented capabilities
Modules and components built: Weight allocation + exposure control.
Delivered output:
Index basket backtest — US30 / NAS100 (M15)
Specification document and the rule-to-code mapping table
Full MQL5 source, commented
Test report: Three basket weightings
Parameter document and install guide (9 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: Three basket weightings.
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, analysis scripts, a basket report.
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 result pointed to a lighter weighting for better risk-adjusted returns, and the team paper-tested it before touching an account.
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.
- 4 years Test window
- 13.9 % Max drawdown in test
- 2 Symbols covered
- 10 scenarios Scenario test coverage