Trading Book · crypto research / 28 September 2026

Crypto thresholds:
what survived the six-month replay

1,536 seeded threshold profiles, exact hourly trade and mark execution, $100 risk per trade, and a locked-period failure that changes the conclusion.

Period 27 Mar–26 Sep 2026Capital $6,000Risk up to $100Published 28 Sep 2026

The answer

There is no honestly validated optimum yet. The automatically selected development winner lost $-377.29 in the locked August–September period. The balanced profile below is the best paper candidate after inspecting the complete six months; it is not ready for live capital.

Balanced high-R$+1,512.369/20 wins · 45.0%
Profit-oriented$+1,742.978/24 wins · 33.3%

The balanced candidate produced 20 closed trades, nine wins (45%), $+1,315.69 closed profit, $+196.68 open P&L after reserved exit costs, profit factor 3.37, and 7.4% maximum hourly-close drawdown. It preserves the requested high reward/risk: a six-historical-ADR target and at least 4R at plan and simulated fill.

The crypto numbers

GateBalanced crypto thresholdLogic retained
G1Close ≤2% above SMA10Do not chase the short moving average
G2Close ≤8% above SMA20; forgive through 12% when momentum ≥30%Cap extension but allow exceptional strength
G330-day return ≥0%Mandatory trend direction
G4Daily base and contraction ≤8%Mandatory, objectively bounded setup
G530-day return minus BTC ≥−10 pointsCrypto leadership context
G6Last completed funding observation ≥−0.01%Historical setup-time context; missing blocks
G730-day universe percentile ≥60Cross-sectional leadership proxy
G8Historical ADR20 between 1% and 8%Volatility at entry, never today's ADR written backward
AdmissionG1–G4 mandatory; at least 6/8Current equity tolerance shape; missing inputs never pass
Exit6 ADR target; minimum 4RHigh reward/risk requested by the user

Every ADR reading uses only the twenty completed daily UTC candles available at that historical signal. BTC-relative strength, return percentile and funding are likewise frozen at the setup timestamp.

Full six-month results and stress

All results use 5bps fees and 5bps adverse slippage on each side plus 3bps/day adverse funding unless the row says doubled costs. The $1,200 notional cap and integer contracts often reduce actual structural risk below $100.

Profile / scenarioClosedWinsWin rateClosed netOpen netTotalPFDrawdown
156 / base20945.0%$+1,315.69$+196.68$+1,512.363.377.4%
156 / double_costs20945.0%$+1,234.56$+187.84$+1,422.413.108.0%
156 / one_hour_later231043.5%$+1,223.92$+28.01$+1,251.932.847.7%
156 / risk_to_disaster20945.0%$+1,315.69$+196.68$+1,512.363.377.4%
226 / base24833.3%$+1,546.29$+196.68$+1,742.972.788.1%
226 / double_costs24833.3%$+1,456.20$+187.84$+1,644.052.598.3%
226 / one_hour_later26830.8%$+1,465.89$+28.01$+1,493.902.548.1%
226 / risk_to_disaster24833.3%$+1,546.29$+196.68$+1,742.972.788.1%

The balanced candidate retained $+1,234.56 closed profit under doubled costs and $+1,223.92 with entry delayed one hour.

Why this is still paper-only

The first 768 profiles copied equity-scale ranges. None qualified. The June–July development section had only five BTC-above-EMA50 dates, so treating each calendar half as if it should trade equally was wrong.

The expanded search tested another 384 runners and 384 high-R profiles. Exact-hourly development ended on 31 July. A profile needed at least 15 closed trades, positive closed profit, profit factor at least 1.2, drawdown no more than 25%, and a positive one-sided 90% lower confidence score. No equity-style uncapped runner qualified. Eight high-R profiles did.

The locked winner had 20 development trades, six wins, +$623.83 closed profit and 8.0% drawdown. In August–September it produced six closed trades, one win and $-377.29 closed profit. Two open positions marked at $+196.68, leaving total P&L $-180.61. That is a failed locked test.

Seven other qualifying profiles were positive in the locked-period diagnostic, but selecting among them after seeing those outcomes would be data snooping. The balanced candidate is therefore a frozen forward-paper hypothesis. Changing its thresholds during forward observation restarts validation.

All eight development-qualified profiles over the complete, already-inspected six months

ProfileClosedWinsWin rateClosed netTotalPFDrawdown
expanded_high_r_00922731.8%$+1,129.23$+1,325.912.379.8%
expanded_high_r_02621733.3%$+1,225.81$+1,422.492.688.4%
expanded_high_r_10118633.3%$+1,251.92$+1,448.602.888.3%
expanded_high_r_12221628.6%$+1,158.57$+1,355.242.478.0%
expanded_high_r_15620945.0%$+1,315.69$+1,512.363.377.4%
expanded_high_r_18327829.6%$+298.82$+495.491.2810.0%
expanded_high_r_22624833.3%$+1,546.29$+1,742.972.788.1%
expanded_high_r_29121628.6%$+649.25$+845.921.707.4%

Reproduction and evidence

The offline command now accepts crypto-specific SMA extension, momentum, BTC-relative, funding, percentile, ADR, gate-count, mandatory-gate and reward/risk parameters. The balanced command reproduced the saved summary exactly: 20 closed, nine wins and $+1,512.36 total P&L.

Verification: 808 tests passed with one existing skip. Changed source files pass Ruff and strict mypy. The repository-wide Ruff check is blocked by a pre-existing long line in crypto_service/tasks.py; repository-wide mypy is blocked by two pre-existing errors in backtest_tis_chop.py.

Downloads: summary · full finalist table · locked frontier diagnostic · cost and latency stress · selection lock · command replay.

Production configuration was not changed, no order was placed, and both agent processes remain intended to stay at zero dynos.