How to check a forex track record, and why mine fails four of these checks

G10Grid · research notes

You mostly can't. That is the honest answer to the question that gets asked here every few weeks, and everyone who has answered it with a checklist has been slightly wrong, including me until I tried to pass my own.

A retail track record is a set of numbers on a page owned by the person the numbers flatter. You cannot audit fills you never saw. You cannot see the trades that were deleted, because deleted things leave no trace. You cannot tell a strategy from a survivor, because the ones that blew up stopped posting. Every check below is a check on whether someone made it harder for themselves to lie, not proof that they didn't.

That is worth doing anyway. Here is the list I ended up with, and then the four places my own record fails it.

Was each entry published before the outcome, somewhere the author does not control? A timestamp on your own server is worth nothing, because you own the clock. An archive, a public repo with signed commits, a broker feed, anything with a third party in it, is worth something.

Is it the complete set or a selection? A record with no losers in it is a record with a filter in front of it. The interesting number is not the win rate, it is whether anything ever leaves the ledger quietly.

Are the numbers net of costs? Gross returns on FX are a genre of fiction. Spread and carry decide whether a small edge survives contact with a broker, and most published records skip both.

Is the sample large enough to mean anything? Twenty trades is a coin. Ranked returns of a hundred random strategies will produce something that looks brilliant for a year. If the author cannot tell you their sample size in one number, the sample size is the answer.

Is the model that produced the record the same model being described to you now? This one gets missed almost universally. People rebuild their system, keep the old results, and present them as one continuous history. Two engines pooled into one track record is not a track record, it is an average of two strangers.

Now mine, against the same list.

The sample is three. Three closed A+ positions. All three closed in the direction they were opened, which sounds like something until you notice that a coin called correctly three times in a row happens one try in eight. I publish it as three out of three rather than as a percentage, because the percent version is designed to hide how small three is. There is one position open. That is the whole trade ledger.

The independent timestamp only starts on 2 September 2026. Before that date every entry existed solely on a server I control, which means for everything older than this week you have my word and nothing else. The archive copies from that day exist and can be checked. Whether they keep being made depends on a job that has to actually run every week, which is a weaker guarantee than I would like and worth saying out loud rather than implying. Either way I cannot retroactively prove what the page said in June. Nobody can. That is the part of the checklist that cannot be repaired after the fact, only started.

The published win rate is gross. It compares the closing price against the entry price, in the direction traded, and stops there. Spread and carry are recorded per signal in the research ledger, but the headline number on the track record page does not subtract them, and I would rather say that than let you assume otherwise.

And the engine changed underneath it. The research ledger holds eleven signals, all of them closed, every one produced by a version of the model that has since been replaced. The count does not carry across a version change, so under the engine running today that ledger stands at zero. On top of that, the tier consistency on the live positions reads zero out of four. Four weekly checkpoints, and at not one of them did an A+ position still score A+ on the criteria it was opened under. That number is on the page. It is the least flattering thing there and it took the longest to decide to publish.

So the record fails four of five checks, and the fifth is only clean because nothing has been deleted yet, which is easy when there are three trades.

What is the point of publishing it then. Two things, and they are smaller claims than the ones usually made here.

The first is that entries go up before outcomes exist, so the ordering is checkable. The second is that nothing gets removed, so if the next twenty go badly the record will say so in the same place and in the same format. That one deserves a caveat rather than a promise: the schema does have a way to void an entry, it has not been used, and you are taking my word for that part exactly like everything else on this list. Those are the only two properties a self-hosted ledger can actually establish. Everything beyond that is a claim about my character, which is exactly what you should not accept from a stranger with a spreadsheet.

If you want to hold it to the checklist above, the ledger and every weekly checkpoint are at g10grid.com/track-record, and I would rather it got broken by someone here than quietly believed.

Login

Welcome back. Sign in to open the Desk.