How it was tested
Anyone can produce a chart that goes up. What matters is what was done to prove it wrong. Five checks, run on every change, and what they caught is reported here.
Every strategy is re-run so that at each moment it sees only what was knowable then. A test that peeks at prices that did not exist yet produces a brilliant result worth nothing.
One failed. A finished strategy was quietly using about eight hours of future prices. Corrected, it went from profitable to slightly losing. It was deleted, with every number that came from it.
A common way to lose money: the strategy is tested in one program, rewritten for live trading, and the two quietly differ.
The tests load the actual live trading file and replay five years through it. It agrees with the tested version on every trade, in all four parts of the system, and the alert software agrees with the engine across thousands of random moments.
Every result is split between the years a strategy was built on and the years it never saw.
Model A’s average trade made 34% of the amount risked in the earlier half and 49% in the recent half. Whether the recent figure holds is the biggest open question, and the reason the live test exists.
A test that only knows each hour’s high and low cannot tell which came first, and tends to assume the good one.
One result looked like a breakthrough. Re-run on minute-by-minute prices, the profit turned into a loss. Every trade is now managed on minute data.
Fees come out of every trade in every figure on this site, at a rate worse than the exchange charges.
They come out when the position is sized, so a full loss costs the intended amount with fees in it, not that amount plus fees.
What five years can prove
The average trade made +0.561R across 295 trades. With that much variation the honest range for the true long-run figure is +0.30R to +0.82R — the real edge could be half what was measured.
The same trades, their order reshuffled 10,000 times. If the result depended on a lucky sequence, most reshuffles would land well below it. They don’t.
| bad case | typical | good case | typical worst drop | bad-case worst drop | |
|---|---|---|---|---|---|
| Central estimate | +730.0% | +1,782.0% | +4,537.2% | -12.3% | -17.8% |
| Pessimistic bound | +544.6% | +1,727.9% | +6,113.0% | -15.4% | -24.4% |
Reshuffling the same trades cannot tell an overfitted rule from a real one — the checks above do that.
A new period of each length, with the edge itself allowed to vary across the range above.
| Horizon | bad case | typical | good case | chance of ending down |
|---|---|---|---|---|
| 1 year (57 trades) | +10.4% | +71.1% | +213.2% | 2.1% |
| 3 years (171 trades) | +102.7% | +420.2% | +1,745.6% | 0.1% |
| 5 years (285 trades) | +280.1% | +1,494.1% | +9,020.6% | 0.1% |
A losing year is possible, and likelier the shorter the window. A projection showing no chance of loss is measuring its own assumptions.
A few large winners. Ten trades out of 295 made 50% of the profit; without the best twenty the rest average +0.11R a trade. The median trade is still positive (+0.54R) and 57% of trades win — but you have to still be trading when the large ones arrive, which is what the sizing below protects.
Share of all profit.
Position size
Step one: take the edge left after removing the ten best trades — Model A +0.27R and Model B +0.33R a trade, against the measured +0.42R and +0.85R. Step two: promise a drawdown limit and take the largest size at which 19 in 20 reshuffled five-year paths stay inside it.
| Setting | Model A risk | Model B risk | limit | bad case, cautious edge | bad case, measured edge |
|---|---|---|---|---|---|
| Balanced | 2.41% | 1.47% | 20% | 20.0% | 15.8% |
| Growth | 3.76% | 2.30% | 30% | 30.0% | 23.8% |
A size picked for its return is picked by hindsight. One picked for the drawdown it survives, on an edge smaller than measured, still holds if the future is worse than the past.
Risk controls
Every trade risks a set, small share of the account. No averaging down, no larger size after a loss.
Placed on the exchange’s own servers the moment a position fills. It works even if our systems are offline — tested twice by unplanned outages.
A new signal is refused once the day’s open risk would pass 2.8% of the account: room for two fresh Model A trades, never a third. A trade stops counting once its stop is in profit.
Model B wins about a third of the time, so long losing runs are normal. Its size comes from the 99th-percentile losing run — 19 in a row — not the average.
Limits
Real data and realistic costs, but no simulation charges for a bad fill in a panic or for systems being down at the worst moment. The Live page measures that gap.
The October 2025 crash alone made 26% of Model A’s five-year profit. It is built to be positioned when everyone is forced to sell.
Enough to say an edge probably exists, not enough to promise a return — see the range above.
Both models rely on how large traders behave around obvious levels. That has held for five years; nothing guarantees the next five, so the system is monitored rather than left alone.
At the balanced size the full book stops scaling at an account of roughly $1.5M–$2.0M (the account, not the position: tight stops make each position larger than the account), because its smallest market is thin; without that market, roughly $5.9M–$17.6M; BTC alone, $25.6M–$76.7M. Beyond that, orders would have to be split over time, which costs exactly the precise entries these setups rely on.
Without its ten best days the balanced setting’s Calmar falls from 6.5 to 2.5, and its Sortino from 8.0 to 3.5. With only a handful of losing months, one bad new month moves Sortino a lot.