Every post on this site follows the same rules, written down before the data is opened. If a result can't be reproduced from this page and the files attached to the post, it doesn't get published.
The strategy, variants and pass/fail gates are frozen before any result is looked at.
Commission and slippage on every trade. Gross results are shown only to explain a death.
Development, validation and holdout periods. The holdout is spent the moment it's opened.
Same exits and sizing on random entries. No edge over the dice means no edge.
"We tried N, M survived." No quietly dropped versions, no best-of-N headlines.
Trade logs and code are published with each post, so you can check our arithmetic.
Before running anything we write down the entry and exit rules, every variant we plan to test, the instruments and periods, and the pass/fail gates (section 04). That specification is saved with a date and published with the post.
Each test splits history into three windows. Which dates apply to each strategy is stated in its post.
| Period | Purpose | Rule |
|---|---|---|
| Development | Where the idea is first run and gates are checked. | May be looked at repeatedly, but variants are fixed beforehand. |
| Validation | An unseen second period the idea must also pass. | Only strategies that clear development get here. |
| Holdout | The final exam. Usually the most recent months. | Opened once. After that it's used up: new ideas need forward data, not another run on it. |
Every number on this site is net of costs unless it's explicitly labelled gross.
When the gross result is positive but the net result is negative, the cause of death is Costs.
A strategy has to clear all of these. Clearing most of them is still a burial.
| Gate | Requirement (net of costs) |
|---|---|
| Profit factor | PF ≥ 1.2 in each validation window. |
| Sample size | At least 50 trades in each window (200 for long histories); otherwise the verdict is "inconclusive", not "pass". |
| Significance | t-statistic ≥ 2.0 on the development period. |
| Beats the dice | Result above the 95th percentile of random-entry runs (section 05). |
| Not fragile | Still positive after removing the 10 best trades. |
| Holdout | Opened once, and the result must stay positive. |
Passing every gate does not mean "trade this". It means the idea survived our tests, and it moves to forward testing on a simulator before anyone should risk money.
A strategy can look good simply because the market drifted, or because the exits are doing the work. So each test also runs a control: the same exits, stops, sizing, session and trade count, but with entries chosen at random.
Every post states the count: variants tried, variants that passed, instruments and periods covered. Multiple tries make a lucky result more likely, so the count is part of the verdict.
Every strategy ends up with one verdict and, if buried, one primary cause of death.
| Verdict | Meaning |
|---|---|
| Buried | Failed one or more gates. |
| Inconclusive | Not enough data or trades to decide either way. |
| Survivor | Cleared every gate. Still needs forward testing. |
| Cause of death | What it means |
|---|---|
| No edge | Net and gross results are indistinguishable from random entries. |
| Costs | Gross is positive, net is negative. |
| Overfit | Passes development, fails validation or holdout. |
| Fragile | Passes barely, and falls apart without a handful of trades. |
| Late fill | The signal confirms after most of the move, so the realistic entry has no edge. |
We test rules and public claims, never people. No ratings of individuals, only of strategies.
Each post links to the frozen specification, the code used and the full trade log. If you run the same rules on the same kind of data and get a different answer, tell us. A corrected result gets published as a correction, not quietly edited.
Where the idea and the code come from. Every post names the source of the claim being tested, so you can check the original. It also states the provenance of the code: our own code, written from public rules; open-source code used under its licence, with credit; or not published, when the original is closed or paid, in which case we rebuild the rules from the author's public description. We never publish anyone else's closed, paid or decompiled code.
2026-10-07 · Clarification, no change to the gates: code provenance statement added to section 09.
v1.0 · 2026-10-07 · First public version. Earlier internal tests predate this page and used slightly different gates; they are labelled "legacy" where they appear.