How we run backtests
The value of a backtest is not a pretty equity curve but the fact that anyone can reproduce it and get the same numbers. Here is what our engine runs on, how, and where the honesty line is.
Data
Every reproducible run uses one sample: EUR/USD (дневные бары), 400 bars over 2025-06-16 — 2026-07-20. Source — Binance Spot REST API (api.binance.com/api/v3/klines).
The sample files are open for download so you can run the logic yourself and check the metrics.
- CSV: /data/eurusd-daily.csv (400 rows, OHLCV)
- JSON: /data/eurusd-daily.json (with source and period metadata)
Execution costs
A cost-free backtest is an ad, not research. Every run factors in real costs:
- Spread: 1.0 pip (0.0001) per round-trip
- Commission: folded into the spread
- Slippage: fills at bar close, no look-ahead
Overfitting guard
The hypothesis is stated before the result is seen; overfitting is checked on the out-of-sample tail of the window.
We report drawdown, trade count and time-in-market next to return, so it is visible the result is not three lucky trades.
What we do not do
- We do not compute a result for an instrument absent from our sample — we describe the limitation instead of inventing numbers.
- We do not test intraday, arbitrage, news or pairs hypotheses: they need data the portal does not have.
- We do not publish metrics without a methodology to reproduce them.