Bring your own data, and check it before it checks you
Every backtesting tool eventually reduces to one sentence: it is as good as the file you gave it. Ours is deliberately a bring-your-own-data product — we do not resell or redistribute historical prices — which means the data step is yours, and it is the step worth being slow about.
What you can feed it
- MT4/MT5 Strategy Tester exports — M1 candle exports and tick archives, including zipped bundles. If you have a platform install, this is usually the highest-quality free source available to you, and the tick archives are the only way to get recorded spread.
- Broker and vendor CSV — generic OHLC CSVs from historical-data sites, or whatever your data vendor hands you.
- Tick archives with bid and ask — the important one. A file that carries both prices plus real bar open times lets the engine use the actual tick sequence, which is what resolves same-bar stop/target collisions instead of guessing.
A file with only close prices is not a dataset, it is a rumour. If the importer has to invent a price, it will tell you rather than proceed quietly.
The five-minute validation pass
Nothing is imported silently, but the report is only useful if you read it. Four things to check on every new dataset:
- The covered range. Does it actually start where you think it starts? Multi-file imports are where a missing year hides.
- Gaps. A weekend gap is normal. A three-day gap inside a Tuesday is not, and if your strategy trades breakouts, that hole is where a fake move will be invented by your imagination rather than by the data.
- Time-of-day coverage. This is the one nearly everyone skips. Many free sources are thin or missing outside peak London/New York hours. A dataset that has no Asian session cannot tell you anything about an Asian-session mean-reversion strategy — and it will happily let you test one.
- Skipped rows. Malformed lines are reported, not repaired. A handful is fine; a few percent means the wrong file or the wrong format assumption.
Base timeframe: keep it as fine as you can afford
M1 is the practical floor for candle data. If you have tick or second-level data, keep that as the dataset base: replay timeframes are built on top of the base series, so an M15 session over tick-backed data still walks the fine series underneath, and intrabar events are not lost. You can always display a coarser timeframe; you can never recover resolution you threw away at import.
Sizes, realistically
Roughly 48 bytes per candle: a year of M1 for one instrument is around 11 MB, and tick tiers are stored as compact binary chunks rather than per-tick objects. Two years of M1 across five instruments is tens of megabytes. That matters because everything lives in your browser's storage — which also means the disk in your laptop is the thing that runs out, and the app will tell you when it does.
Version everything
Each dataset carries a version and its provenance: which file it came from, which instrument, which base timeframe. Tests pin the dataset version they ran on, which is the difference between "this strategy made money" and "this strategy made money on this data, which I can reopen and verify". When you re-download a source — and providers revise history — you now have two versions, and a result that says which one it used.
Then back the thing up
Export a backup before you clear browser data, because for this app that is a delete button. Data you imported is yours: export it in JSON, CSV or zip and keep it next to your results, so a report from last quarter can still be reproduced next year.
Related
- Importing Data — formats, batch import, the validation report.
- Data & Storage — where datasets live, and how backups work.
- Troubleshooting — when an import refuses a file.