12 checks before you trust an equity curve
Free. Print it, use it on any MT5 report — ours or anyone’s. Each check says what to look for and how to verify it, using only the report and the files behind it.
Use your browser’s print command; the page prints as a checklist with a box beside each check. If a check cannot be run because the evidence is missing, mark it unverified, not passed.
The 12 checks
-
Bar indexing
- Look for
- Entries that open on a different candle from the one the signal formed on.
- Verify
- Take the first ten trades and compare each open time with the MT5 report. The EA decides on the last completed bar; a re-run that reads the forming bar is off by one. Example finding
-
Trade-count parity
- Look for
- An independent re-run that produces fewer or more trades than MT5 over the same dates.
- Verify
- Count trades in both over identical dates. Treat any gap beyond a stated tolerance as a fault in the re-run until it is explained. Example finding
-
Lot sizing
- Look for
- Position sizes that do not follow the stated risk per trade.
- Verify
- Recompute the first trade: (balance × risk %) ÷ (|entry − stop-loss| × value per price unit per lot). Take the value per unit from the broker’s symbol specification. Example finding
-
Commission and swap accounting
- Look for
- Results shown before costs, commission assumed at a rate the broker does not charge, or swap ignored on overnight holds.
- Verify
- Rebuild one closed trade: gross result minus round-turn commission minus swap. Compare the commission with the broker’s published rate.
-
History quality
- Look for
- A history-quality figure below full coverage, or ticks and bars that look too few for the period.
- Verify
- Read it in the report header. If coverage is partial, treat every other conclusion as limited by it.
-
Model choice
- Look for
- A tester model that does not match how the EA trades, such as open-prices-only for an EA that acts mid-bar.
- Verify
- Read the model in the header. Every-tick enters at the first tick after the bar closes, not at the close price, so a bar-based re-run differs by design; know which one you are comparing.
-
Spread assumption
- Look for
- A spread in the test that is not the spread the broker charges at the times the EA trades.
- Verify
- Compare the tester’s spread setting, or the data vendor’s spread, with the broker’s published or measured spread for that instrument.
-
Cooldowns and filters
- Look for
- Guards that block new signals while a trade is open, or cooldowns the EA does not have.
- Verify
- List every filter in the re-run and find its counterpart in the EA’s inputs. A filter with no counterpart is a finding.
-
Parameters against trades
- Look for
- Many tuned inputs fitted to few trades.
- Verify
- Count the inputs that were optimised and divide the trade count by that number. The fewer trades per input, the less the result shows.
-
Walk-forward sanity
- Look for
- An out-of-sample claim made by splitting one optimised run after the fact.
- Verify
- Look for separate, dated in-sample and out-of-sample runs and a written boundary for parameter selection. If a Monte Carlo is quoted, find its method; shuffling trade order tests sequencing, not independent validation.
-
Data-source note
- Look for
- A report that does not say where its prices came from, which server, or which symbol specification.
- Verify
- Find the data source, broker server and time zone stated beside the result. If they are missing, mark the check unverified.
-
Reproducibility hash
- Look for
- A result you cannot tie to a specific EA file, settings file and report file.
- Verify
- Check that hashes are recorded for all three, then re-hash your copies and compare. A result that cannot be run again is a claim, not evidence.
quantkit.co/verify/checklist/ · Free to print. A passed checklist is not a profitability verdict or financial advice.
A passed checklist says the arithmetic holds. It does not say the expert advisor will make money, and nothing here is financial advice. Claims policy: how QuantKit is paid and what it claims.