Lab · ML Experiments

ML — Pattern Discovery

Inverted workflow: find conditional edges in BTC data first, build strategies second.
55 experiments

VRP Filter — Universal Scan Across All Viable Entries

Promoted
2026-05-19 filtervrpuniversalexploration
Hypothesis
vrp_filter@p20 (block entries when VRP 90d-percentile < 0.2) helps some profitable entry types. Expected mechanism: blocks low-VRP regimes where vol expansion ahead. Mean-reversion entries should benefit, trend entries should not (or even be hurt).
Verdict
**CANDIDATE FILTERS** — 2 profitable strategies lift ≥ 5% with vrp_filter: BB_EXTREME_2, DONCHIAN_50. Run shuffle-test (D5) before adding to COMPATIBLE_FILTERS.
n_marginal
0
n_filter_helps
2
n_filter_hurts
1
n_strategies_tested
7
strategies_filter_helps
[BB_EXTREME_2, DONCHIAN_50]

VRP Filter — Universal Scan Across All Viable Entries

2026-05-19 · status: promoted · 53.7s

Hypothesis: vrp_filter@p20 (block entries when VRP 90d-percentile < 0.2) helps some profitable entry types. Expected mechanism: blocks low-VRP regimes where vol expansion ahead. Mean-reversion entries should benefit, trend entries should not (or even be hurt).

Verdict: CANDIDATE FILTERS — 2 profitable strategies lift ≥ 5% with vrp_filter: BB_EXTREME_2, DONCHIAN_50. Run shuffle-test (D5) before adding to COMPATIBLE_FILTERS.

Key metrics

metric value
n_strategies_tested 7
n_filter_helps 2
n_marginal 0
n_filter_hurts 1
strategies_filter_helps [BB_EXTREME_2, DONCHIAN_50]

Approach

Run each strategy with/without vrp_filter@p20 over 2023-01-012026-04-01. vrp_filter blocks entries when VRP rolling 90d-percentile < 0.2 (= IV cheap vs RV → expansion regime). Mirrors bocpd_filter_universal scope; mean-reversion vs trend asymmetry should re-appear with this filter too (per Exp #19 mechanism).

Results per strategy

strategy off_pnl on_pnl off_trades on_trades off_sharpe on_sharpe off_dd_pct on_dd_pct lift_pct is_profitable category
BB_EXTREME_2 17.66 20.09 139 113 2.182 2.886 -0.04 -0.03 +13.8% True FILTER HELPS (profitable + lift)
HOLY_GRAIL -0.83 0.29 27 22 -2.895 1.765 -0.01 -0 +135.2% False BASELINE UNPROFITABLE
DONCHIAN_50 5.52 7.6 120 94 1.208 2.019 -0.03 -0.02 +37.7% True FILTER HELPS (profitable + lift)
SFP_20 -4.72 -3 375 321 -0.909 -0.745 -0.06 -0.05 +36.4% False BASELINE UNPROFITABLE
RSI_MR_LONG_ONLY 0.01 -0.33 10 5 0.026 -7.142 -0.01 -0 -6203.6% True FILTER HURTS (profitable + drag)
BURJ_KHALIFA -4.46 -4.9 147 102 -1.861 -3.494 -0.07 -0.05 -10.0% False BASELINE UNPROFITABLE
FIBDIV -1 -1.24 338 267 -0.236 -0.365 -0.03 -0.03 -24.3% False BASELINE UNPROFITABLE

per-strategy pnl

VRP filter vs BOCPD filter — side-by-side

strategy lift_pct_vrp category_vrp lift_pct_bocpd category_bocpd
BB_EXTREME_2 +13.8% FILTER HELPS (profitable + lift) +17.0% FILTER HELPS (profitable + lift)
BURJ_KHALIFA -10.0% BASELINE UNPROFITABLE +8.7% BASELINE UNPROFITABLE
DONCHIAN_20 nan BASELINE UNPROFITABLE
DONCHIAN_50 +37.7% FILTER HELPS (profitable + lift) -14.9% FILTER HURTS (profitable, drag)
FIBDIV -24.3% BASELINE UNPROFITABLE -13.2% BASELINE UNPROFITABLE
HOLY_GRAIL +135.2% BASELINE UNPROFITABLE +0.0% BASELINE UNPROFITABLE
RSI_MR_LONG_ONLY -6203.6% FILTER HURTS (profitable + drag) +0.0% MARGINAL (profitable + small lift)
SFP_20 +36.4% BASELINE UNPROFITABLE -12.2% BASELINE UNPROFITABLE

Verdict per category

Filter HELPS (profitable + lift ≥ 5%)

  • BB_EXTREME_2: $+17.66 → $+20.09 (+13.8%), Sharpe 2.18 → 2.89, trades 139 → 113

  • DONCHIAN_50: $+5.52 → $+7.60 (+37.7%), Sharpe 1.21 → 2.02, trades 120 → 94

Marginal (profitable + 0-5% lift)

(none)

Filter HURTS (profitable + drag)

  • RSI_MR_LONG_ONLY: $+0.01 → $-0.33 (-6203.6%), Sharpe 0.03 → -7.14, trades 10 → 5

Baseline unprofitable

  • HOLY_GRAIL: $-0.83 → $+0.29 (+135.2%), Sharpe -2.90 → 1.77, trades 27 → 22

  • SFP_20: $-4.72 → $-3.00 (+36.4%), Sharpe -0.91 → -0.75, trades 375 → 321

  • BURJ_KHALIFA: $-4.46 → $-4.90 (-10.0%), Sharpe -1.86 → -3.49, trades 147 → 102

  • FIBDIV: $-1.00 → $-1.24 (-24.3%), Sharpe -0.24 → -0.36, trades 338 → 267

Overall verdict

CANDIDATE FILTERS — 2 profitable strategies lift ≥ 5% with vrp_filter: BB_EXTREME_2, DONCHIAN_50. Run shuffle-test (D5) before adding to COMPATIBLE_FILTERS.