Spotting BTC's hidden regimes with a percentile signal
How a percentile regime model on BTC stays aligned with its training distribution.
This BTC model is a fixed signal definition over a percentile-regime feature, trained on a frozen window and tested on the held-out tape. Numbers below come from the backtest record; market narrative is intentionally absent.
BTC can move from quiet ranges to sharp breaks quickly, so the percentile regime model treats recent price rank as a risk filter. It uses fixed rules to decide when exposure is worth taking, when to step out, and how the published record was measured; in backtest, it placed 59 trades and won 54% of them.
How the model is built, end to end
The model reads a percentile-regime feature on each bar and applies a regime gate. When the percentile is in the LONG band, the model takes long exposure; when in the SHORT band, short; otherwise flat. No discretionary market interpretation is applied; the gate produces a deterministic state at every bar.
Exits are state-machine driven for BTC. Each open trade runs against four exit rules from the configuration: stop-loss, take-profit, time-out, and signal-flip. The first that triggers closes the position.
Sizing for this BTC model is fixed; the gate output controls direction only, not size. A trade either takes the configured exposure or stays flat.
Which signals actually carry predictive contribution
Top features driving the gate are listed in the feature-importance chart that follows; the rank ordering is from the model's frozen training run, not from live recomputation.
How trades actually close
Of 59 closed trades: 15 hit take-profit, 24 hit stop-loss, 18 closed on signal flip, 2 timed out at the max-hold cap.
Quality gates: 2 of 5 pass
Each tile shows the model's actual value vs the registry-floor threshold, with PASS/FAIL colour-coded. 2 of 5 quality gates passed for this BTC model: max_dd 2.54% within the 5% threshold — PASS, and sample_size 59 trades above the 30-trade threshold — PASS. The three failing gates: win_rate 54.24% below the 70% threshold (FAIL), total_return 76.24% below the 100% threshold (FAIL), and expected_return 1.29% below the 5% threshold (FAIL). These failures matter because the registry-floor thresholds are the acceptance criteria; the model did not clear them in backtest, which means the result is not acceptable for a live-deployed claim and the article preserves the backtest record for transparency.
| Gate | Actual | Threshold | Status | Threshold source |
|---|---|---|---|---|
| win rate | 54.24% | >= 70.00% | fail | canonical registry standard (model seed: 54.20%) |
| max drawdown | 2.54% | <= 5.00% | pass | canonical registry standard (model seed: 2.50%) |
| sample size | 59 | >= 30 | pass | canonical registry standard (model seed: 50) |
| total return | 76.24% | >= 100.00% | fail | canonical registry standard |
| expected return | 1.292% | >= 5.000% | fail | canonical registry standard (model seed: 1.29%) |
At a glance
| Metric | Value |
|---|---|
| Total return | 76.2% |
| Win rate | 54.2% |
| Max drawdown | 2.54% |
| Expected per trade | 1.29% |
| Trades | 59 |
These figures come from the model's backtest under realistic trading conditions. The model is in walk-forward verification.
Walk-forward verification
| Metric | Value |
|---|---|
| Walk-forward match | 100% |
| Verified timestamps | 6,783 |
| Signal correlation | 1.00 |
A trade walked through
Trade #1 (biggest winner). The model opened a SHORT position on 2025-10-09 when the percentile-regime feature crossed into the short band. The take-profit triggered at the configured level and the trade closed with +7.74% return. The intra-trade trough was within the configured stop-loss boundary. No market-context narrative is asserted; the trade record is in the table.
| Metric | Value |
|---|---|
| Entry price | 123,505.53 USD |
| Exit price | 113,941.93 USD |
| Hold time | 1.9 days |
| Return | +7.74% |
Best trades, walked through
The trades below are the four ranked by absolute return — the largest moves in either direction. Each is a real trade from the backtest, walked from entry to exit using the trade record as the source.
On 2025-10-09, the percentile-regime read crossed into the short band and the model entered short at 123,506 USD. The trade held for 44.8 hours (1.9 days) and exited on a take-profit at 113,942 USD for a +7.74% gain. The intra-trade trough was -1.06% — inside the stop-loss tolerance. The trade record is the source for these numbers; no market-context narrative is asserted.
| Field | Value |
| Direction | SHORT |
| Entry | 2025-10-09 02:40 • 123,506 USD |
| Exit | 2025-10-10 23:30 • 113,942 USD |
| Hold | 44.8 hours (1.9 days) |
| Return | +7.74% |
| Intra-trade peak | +0.00% |
| Intra-trade trough | -1.06% |
| Exit type | TP |
On 2025-12-01, the percentile-regime read crossed into the long band and the model entered long at 84,918 USD. The trade held for 23.8 hours and exited on a take-profit at 90,622 USD for a +6.72% gain. The intra-trade trough was -0.35% — inside the stop-loss tolerance. The trade record is the source for these numbers; no market-context narrative is asserted.
| Field | Value |
| Direction | LONG |
| Entry | 2025-12-01 16:00 • 84,918 USD |
| Exit | 2025-12-02 15:45 • 90,622 USD |
| Hold | 23.8 hours |
| Return | +6.72% |
| Intra-trade peak | +0.00% |
| Intra-trade trough | -0.35% |
| Exit type | TP |
On 2026-03-27, the percentile-regime read crossed into the long band and the model entered long at 66,396 USD. The trade held for 262.9 hours (11.0 days) and exited on a take-profit at 70,763 USD for a +6.58% gain. The intra-trade trough was -0.66% — inside the stop-loss tolerance. The trade record is the source for these numbers; no market-context narrative is asserted.
| Field | Value |
| Direction | LONG |
| Entry | 2026-03-27 23:55 • 66,396 USD |
| Exit | 2026-04-07 22:50 • 70,763 USD |
| Hold | 262.9 hours (11.0 days) |
| Return | +6.58% |
| Intra-trade peak | +0.00% |
| Intra-trade trough | -0.66% |
| Exit type | TP |
On 2026-03-16, the percentile-regime read crossed into the short band and the model entered short at 74,837 USD. The trade held for 57.2 hours (2.4 days) and exited on a take-profit at 70,185 USD for a +6.22% gain. The intra-trade trough was -1.53% — inside the stop-loss tolerance. The trade record is the source for these numbers; no market-context narrative is asserted.
| Field | Value |
| Direction | SHORT |
| Entry | 2026-03-16 22:30 • 74,837 USD |
| Exit | 2026-03-19 07:40 • 70,185 USD |
| Hold | 57.2 hours (2.4 days) |
| Return | +6.22% |
| Intra-trade peak | +0.00% |
| Intra-trade trough | -1.53% |
| Exit type | TP |
How does this compare to just holding BTC
Over the backtest window, the active strategy beat passive buy-and-hold on BTC by being more selective about entries. Total return came in at 76.24% vs the buy-and-hold benchmark over the same period.
| Metric | Value |
|---|---|
| Model total return | +76.24% |
| Buy-and-hold | -11.17% |
| Difference | +87.41% |
How well does the model reproduce its tape?
Walk-forward verification is the BTC percentile model’s reality check. The model is trained only on the tape it could have known, then tested on the next unseen stretch. The question is not whether every signal makes money. It is whether the same percentile zones keep acting like the same market states after the window moves forward. Low-percentile areas should still behave like opportunity zones, mid-range exits should still reduce exposure, and warning labels should still mark weaker tape. Later price, volatility, and trade outcomes cannot leak back into the training window. A strong match rate or correlation does not prove foresight. It means the model’s expectations kept their shape on fresh BTC tape often enough that the signal is not just a story fitted to old charts. For the reader, the useful takeaway is modest but important. The model’s labels, warnings, and opportunity zones kept their meaning after deployment. Its behaviour deserves attention, while still needing position sizing, risk limits, and ongoing checks because markets can change.
| Metric | Value |
|---|---|
| Match rate | 100.0% |
| Correlation | 1.000 |
| Alignment | Aligned |
For BTC, the live tape is compared with the model's backtest distribution, or usual rehearsal outcomes. That means trade results, holding times, drawdowns, fills, and missed setups it usually made in rehearsal. The desk can then see whether real market behaviour still looks like the agreed playbook. Aligned means live trades are landing inside that familiar range. Size can stay normal, risk limits can stay active, and the desk can focus on clean execution. It should not spend its time second guessing each signal. Drifting means the live pattern is moving away from rehearsal. Losses may arrive in unfamiliar clusters, winners may take longer to show, or signals may appear in untested market conditions. The desk should cut risk and watch slippage and liquidity more closely. It should pause new add ons and review the cause before adding exposure. Quiet means the model is not producing enough useful evidence to judge. The desk should avoid forcing trades and keep monitoring market fit. It should treat any fresh signal as provisional until live activity returns to a pace that compares fairly.
When this approach fails
Three failure modes apply to this strategy family in the backtest. First, choppy regimes where the percentile-regime feature produces frequent direction changes without sustained moves. Second, gap-driven exits where stop or take-profit triggers far from the configured price level. Third, regime shifts where the historical percentile distribution drifts away from the test-window distribution; walk-forward verification is the check against that.
| Metric | Value |
|---|---|
| Losing trades | 27 |
| Worst single-trade return | -2.24% |
| Strategy max drawdown | -2.54% |
Operational notes for live deployment: monitor the configured drawdown limit; treat unusual fill slippage as evidence the live tape has drifted from the test window; and run walk-forward verification on each new cohort of trades before scaling exposure.
Risk and honest limits
Backtest summary: the model completed its run with 2 of 5 registry-floor quality gates passed (max_dd and sample_size). The three failing gates are why this model has not been promoted from research to live-deployed. The article preserves the backtest record for transparency.
Lifecycle
Where we are
This article captures the model's backtest record as of the cutoff date in the deployment chip. Subsequent walk-forward windows may extend the test sample but do not retroactively change the metrics shown here.
Sources
ref_win_rateref_n_tradesref_max_ddref_total_returnref_expected_returnref_wf_match_rateref_wf_totalref_wf_corrref_live_alignmentref_tradesref_signal_seriesref_walked_traderef_failure_modesref_buy_and_hold_benchmark