+First time on the top traders desk?
The desk runs its own numbers and publishes its calls next to the account that trades them. The short route:
Donchian breakout: what the rule does, and what the controls showed
A 100-day channel on Binance spot: a bar closes above the highest high of the prior 100 days, you buy the next open, and a stop trailing 8 daily ATRs below the highest close since entry takes you out. No ranking, no profit target, no moving averages. 594 instruments including delisted ones, 2017-08 to 2026-08, 0.1% taker plus 0.05% slippage per side.
The two constraints
It cannot lose more than the capital: no leverage, total notional never exceeds the account, and the engine asserts on negative cash. It does not hedge: the short side does not exist in this book. It is absent, not netted.
What the controls showed
The base rule fails its own nulls. Two hundred fixed name permutations reach a 95th percentile of +170.5% against the strategy's +137.1%, and 18 of them beat it outright. All of the money was made before February 2022: +251.5% in the first half of the window against -31.7% in the second.
| Variant | Strategy | Placebo, the lucky 5% | Beat it | Verdict |
|---|---|---|---|---|
| 1h base | +137% | +170% | 18/200 | fails |
| 1d + fvg | +197% | +127% | 0/200 | clears both |
One of the thirty variants tested clears both nulls. The daily bar with a breakout-quality filter. A break counts only if the bar's body clears one bar-level ATR(14) and leaves a fair value gap in the breakout direction. It is the only variant whose second half is positive: +7.7% against -31.7% for the base rule. It also clears the random-entry null, 5 of 200.
| Variant | Total | Sharpe | Sortino | Drawdown | Second half |
|---|---|---|---|---|---|
| 1d + fvg | +197% | 0.53 | 0.74 | -58% | +7.7% |
| 4h + vol + regime + fvg | +177% | 0.51 | 0.71 | -57% | -7.1% |
| 1h + vol + regime | +184% | 0.50 | 0.69 | -61% | -16.5% |
| 1h base | +137% | 0.45 | 0.61 | -71% | -31.7% |
| 1h + adx | +86% | 0.38 | 0.52 | -71% | -38.1% |
| BTC, buy & hold | +1416% | 0.79 | 1.16 | -83% | — |
| alt index null | -3% | 0.41 | 0.55 | -93% | — |
What this is not
The best of thirty cells is a form of fitting however carefully it is described. Until the surviving variant is confirmed on a window nobody has looked at, it is evidence about breakout timing rather than a product. And over the same window, holding BTC returned +1416% at Sharpe 0.79. The book loses to bitcoin by a factor of three.
Equity, log scale
Hover to read every visible series at that date; click a legend entry to drop a series. Log scale, because a book that triples and a book that multiplies by fifteen cannot be compared on a linear axis.
Drawdown over time
How deep the book sat below its own peak on each day of the window. The base rule's longest stagnation is 1916 days without a new high.
Where the money comes from
Losses cluster at one risk unit. That is the stop working. The right tail is thin and long and pays for everything to its left. The top three trades are 32% of the profit; without them 134.5% remains.
| instrument | entry | exit | price | R |
|---|---|---|---|---|
| DOGEUSDT | 2021-01-03 | 2021-04-23 | 24.7× | 38.3R |
| BNBUSDT | 2020-08-02 | 2021-02-27 | 10.3× | 28.2R |
| WRXUSDT | 2021-02-10 | 2021-04-24 | 19.1× | 28.1R |
| ETHUSDT | 2020-07-23 | 2021-05-24 | 7.9× | 24.4R |
| CHZUSDT | 2020-12-29 | 2021-04-04 | 16.4× | 22.3R |
| MATICUSDT | 2021-02-06 | 2021-07-09 | 19.0× | 21.9R |
Month by month
Monthly return of the 1d + fvg book; hover a cell for the exact value. 33% of months are positive, best 93%, worst -31%.
The same for the base hourly rule: 37% positive, best 110%, worst -35%.
All thirty curves
One shared log scale across every cell. Green marks variants at sharpe 0.50 or better. They run almost identically until 2022 and differ in how they survive what came after.
Every variant, measured the same way
Thirty cells: three decision bars crossed with ten rule variants. One engine, one universe, one window, one cost model. Click a column header to sort.
| bar | variant | total % | cagr % | dd % | sharpe | sortino | calmar | pf | rf | stagn. d | trades | win % | 2nd half % |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 1d | fvg | 197.06 | 12.90 | -58.38 | 0.53 | 0.74 | 0.22 | 1.54 | 0.53 | 1038 | 630 | 35.87 | 7.69 |
| 4h | vol + regime + fvg | 177.33 | 12.04 | -56.68 | 0.51 | 0.71 | 0.21 | 1.41 | 0.53 | 1035 | 866 | 32.45 | -7.06 |
| 1h | vol + regime | 183.98 | 12.33 | -61.10 | 0.50 | 0.69 | 0.20 | 1.30 | 0.45 | 1294 | 1238 | 31.02 | -16.49 |
| 1d | vol + regime + fvg | 150.38 | 10.77 | -53.51 | 0.49 | 0.67 | 0.20 | 1.61 | 0.56 | 1035 | 664 | 35.09 | 10.22 |
| 1h | vol + corr + regime | 148.92 | 10.70 | -55.11 | 0.48 | 0.66 | 0.19 | 1.38 | 0.49 | 1023 | 1453 | 32.07 | -6.27 |
| 1h | vol + regime + fvg | 155.24 | 11.01 | -58.43 | 0.48 | 0.66 | 0.19 | 1.33 | 0.48 | 1028 | 1049 | 32.70 | -12.36 |
| 4h | fvg | 166.00 | 11.52 | -65.57 | 0.48 | 0.67 | 0.18 | 1.27 | 0.38 | 1916 | 848 | 30.90 | -18.79 |
| 1h | corr | 152.04 | 10.85 | -61.74 | 0.47 | 0.65 | 0.18 | 1.25 | 0.40 | 1302 | 1447 | 31.24 | -19.69 |
| 1h | regime | 153.81 | 10.94 | -68.32 | 0.47 | 0.63 | 0.16 | 1.21 | 0.31 | 1916 | 1066 | 30.68 | -25.29 |
| 1h | vol | 159.08 | 11.19 | -64.13 | 0.47 | 0.65 | 0.17 | 1.23 | 0.40 | 1294 | 1386 | 30.16 | -26.54 |
| 4h | vol + regime | 159.74 | 11.22 | -62.54 | 0.47 | 0.65 | 0.18 | 1.29 | 0.41 | 1301 | 1115 | 31.48 | -19.93 |
| 1d | vol + regime | 148.56 | 10.68 | -63.90 | 0.46 | 0.64 | 0.17 | 1.33 | 0.39 | 1306 | 967 | 29.89 | -16.55 |
| 1h | vol + corr | 137.30 | 10.11 | -56.26 | 0.46 | 0.64 | 0.18 | 1.30 | 0.46 | 1025 | 1589 | 30.84 | -12.74 |
| 1d | vol | 143.67 | 10.43 | -66.44 | 0.45 | 0.63 | 0.16 | 1.28 | 0.36 | 1306 | 1081 | 28.12 | -19.65 |
| 1h | база | 137.06 | 10.10 | -71.13 | 0.45 | 0.61 | 0.14 | 1.17 | 0.27 | 1916 | 1184 | 29.73 | -31.68 |
| 4h | vol | 142.01 | 10.35 | -64.91 | 0.45 | 0.62 | 0.16 | 1.22 | 0.35 | 1301 | 1253 | 30.09 | -27.85 |
| 4h | vol + corr + regime | 132.72 | 9.87 | -57.12 | 0.45 | 0.63 | 0.17 | 1.37 | 0.43 | 1034 | 1281 | 32.24 | -10.44 |
| 1d | vol + corr + regime | 112.66 | 8.77 | -57.13 | 0.43 | 0.59 | 0.15 | 1.37 | 0.42 | 1036 | 1153 | 31.14 | -10.34 |
| 4h | corr | 121.12 | 9.24 | -63.59 | 0.43 | 0.60 | 0.15 | 1.23 | 0.34 | 1306 | 1317 | 31.13 | -26.10 |
| 4h | vol + corr | 115.76 | 8.95 | -59.17 | 0.43 | 0.59 | 0.15 | 1.28 | 0.37 | 1034 | 1421 | 30.40 | -18.04 |
| 4h | regime | 114.08 | 8.85 | -68.23 | 0.42 | 0.57 | 0.13 | 1.20 | 0.26 | 1916 | 952 | 30.15 | -28.23 |
| 1d | corr | 106.74 | 8.43 | -65.78 | 0.41 | 0.56 | 0.13 | 1.27 | 0.31 | 1918 | 1142 | 30.65 | -19.41 |
| 1d | vol + corr | 104.52 | 8.30 | -60.14 | 0.41 | 0.57 | 0.14 | 1.32 | 0.39 | 1303 | 1247 | 29.43 | -14.51 |
| 1d | база | 103.07 | 8.21 | -71.24 | 0.40 | 0.55 | 0.12 | 1.19 | 0.23 | 1917 | 947 | 27.56 | -27.59 |
| 1d | regime | 104.70 | 8.31 | -70.48 | 0.40 | 0.55 | 0.12 | 1.21 | 0.23 | 1917 | 851 | 28.79 | -22.64 |
| 1h | fvg | 93.02 | 7.60 | -69.25 | 0.39 | 0.53 | 0.11 | 1.15 | 0.22 | 1916 | 1034 | 30.27 | -30.63 |
| 4h | база | 93.61 | 7.64 | -71.09 | 0.39 | 0.53 | 0.11 | 1.14 | 0.20 | 1916 | 1077 | 28.04 | -35.78 |
| 1h | adx | 86.09 | 7.16 | -70.89 | 0.38 | 0.52 | 0.10 | 1.13 | 0.19 | 1916 | 1155 | 28.31 | -38.10 |
| 1d | adx | 84.04 | 7.03 | -72.46 | 0.37 | 0.51 | 0.10 | 1.17 | 0.20 | 1918 | 920 | 26.85 | -24.32 |
| 4h | adx | 71.97 | 6.23 | -71.45 | 0.35 | 0.49 | 0.09 | 1.12 | 0.17 | 1916 | 1042 | 27.74 | -37.17 |
The control's distribution
Left: the base rule against its placebo. The strategy sits INSIDE the control's cloud. Right: 1d + fvg sits to the right of all of it, the only such case of the four computed.
Update: a time exit instead of the trail
The exit laboratory (560 runs: 14 exit rules against 4 entries on 10 markets, each exit with its own random-entry null) showed that stop rules cut the breakout's edge before it shows: the top of the replication table is held entirely by time exits, and this page's 8-ATR trail sits mid-ranking. The top rule. A 20-day channel, sell at the close of the 10th bar, no stop, cleared the 95th percentile of its own null on 7 of 10 markets.
An honest sequential portfolio on ten majors (2020-09 to 2026-08, equal sleeves, no overlapping trades): +1382% total, 58.3% annualised, -30% drawdown, Sharpe 1.51, 463 trades, 53% winners, 24% time in market. The caveat weighs as much as the tiles: DOGE's sleeve made +8058%, and without it +641% falls below the null's 95th percentile (+852%). The candidate "donchian-time-20-10" is registered with a spec and an execution profile; promotion is blocked until the rule is re-run on the store's full point-in-time universe.
The rules in full
This says WHAT the rule does and how the risk is bounded. The exact settings: channel length, trail multiple, share of equity at risk: are not published: they are enough to reproduce the algorithm without reading the code, while the result below is checkable without them. The table is built from the same spec a bot imports, so it has no way to drift from the engine.
| field | value |
|---|---|
| timeframe | 1h bar; decide at close, fill at next bar open |
| entry | a bar closes above a multi-day channel; the current bar is excluded from it, and there is no second condition |
| exit | a volatility (ATR) trail from highest close since entry, up only; checked at bar close, filled at next bar open |
| intrabar stop | no: only closes trigger — an intrabar stop would let the test see a price the decision did not have |
| trailing | yes, the ATR trail above |
| averaging down | none |
| position % of equity | a fixed share of equity is risked per trade; size comes from the distance to the stop, with a cap per name and a cap on gross exposure |
| max simultaneous positions | as many as the gross cap allows; no count limit |
| universe | dynamic cross-section, built from stored coverage; quotes USDT, USDC, USDT preferred over USDC |
| data source | MDS binance_spot; the grain is chosen by mds.population_grain — one for the whole universe, the widest-covered of those that divide an hour — and the hourly bar is aggregated from it |
| excluded | leveraged tokens, tokenised equities, stable-to-stable; names the desk does not trade: LUNC |
| window and why | 2017-08-17..2026-08-08 — from the first spot bar in the store; earlier data does not exist, it was not skipped |
| costs | 0.15% per side: taker 0.1% + slippage 0.05%; spot, long only: there is no funding leg and nothing is borrowed |
| leverage / short / hedge | 1.0 / no / no |
| corporate actions | token swaps and reused tickers end the instrument and start a new one; DREPUSDT's 1:100 swap was 62% of the return before this was handled |
| measured when | 2026-08-09; the hour was folded from the previous grain (15m). Spot moved to 5m on 2026-08-15 and this run was not recomputed |
| engine | the same file runs the backtest and the bot's book |
Year by year
| year | the rule | BTC buy & hold | alt index |
|---|---|---|---|
| 2017 (09–12) | +2.1% | +190.3% | +116.4% |
| 2018 | -1.7% | -73.0% | -77.7% |
| 2019 | +0.6% | +94.3% | +5.9% |
| 2020 | +15.7% | +302.0% | +127.9% |
| 2021 | +243.6% | +59.8% | +769.1% |
| 2022 | -34.7% | -64.2% | -79.1% |
| 2023 | +25.9% | +155.6% | +72.4% |
| 2024 | +47.4% | +121.3% | +4.1% |
| 2025 | -46.5% | -6.3% | -63.2% |
| 2026 (01–08) | -8.8% | -25.9% | -30.3% |
From the same months as the grid above: months partition a year exactly. A partial year is labelled with its month range. The yearly table does not replace the monthly grid. A rule that earned in one year and stood still for six looks like an even row of cells in the grid.
What this leaves
The breakout moment carries information: the strategy beats a random-entry null at every one of 200 seeds. The choice of instrument does not. The base rule does not survive a name permutation. All thirty variants are stored as specs with Binance spot execution profiles, so a confirmation can be checked with the same file a bot would trade from.
A research record, not investment advice and not a return claim. The timing audit is clean on 100 truncated rebuilds, which proves the absence of look-ahead on the paths checked and nothing else. Back to the lab →