Skip to content

View translation

EthCoinMVolRegimeDirectionalSwitchLS

Hypotheses

ETH COIN-M Volatility-Regime Directional Switch — Long the Low-Realized-Vol Risk-On Regime, Short Only High-Vol Downtrends, Flat in the Middle (Single-Instrument ETHUSD_PERP.BINANCE_CM, Daily Bars, Plain OHLCV, 3-Parameter)

Hypotheses

A LONG-SHORT, SINGLE-INSTRUMENT directional strategy on BINANCE_CM ETHUSD_PERP (inverse, coin-margined, ~0.06% RT taker → 0.10% fee floor), deliberately chosen to fill THREE gaps at once while avoiding the two infrastructure walls that have killed every recent options idea: it fills the under-represented COIN-M venue (3.2% vs 5% target) and the long_short direction bucket (13.1% vs target), it runs on PLAIN OHLCV (no options-chain 90-day cap, no supplementary-feed span problem, no 300s per-bar-rescan timeout risk — everything is O(1) via rolling deques), and it is a genuinely DIFFERENT family from the factory's saturated/dead templates (it is NOT dual-timeframe momentum confluence, NOT cross-sectional rotation, NOT a non-price supplementary gate, NOT a liquidation/basis feed edge, NOT a long-only structural basket). The core mechanism is the documented crypto VOLATILITY-REGIME risk premium: low trailing realized vol predicts positive forward returns (risk-on grind), while sustained high realized vol clusters with drawdowns. The strategy therefore holds a coin-margined LONG through calm, low-vol regimes; goes to CASH when vol is middling (this exit-to-flat caps bear-market beta and addresses the L48 drawdown failure mode directly); and takes a SHORT only in the specific case of high realized vol combined with a negative slow trend (capitulation/continuation). Positions persist for weeks per regime, so turnover is low and per-trade moves are multiple percent — clearing the 0.10% COIN-M floor with wide margin (this is NOT sub-fee scalping, and NOT a price-impulse gated by a non-price feed; the signal is 100% price-derived). ETHUSD_PERP.BINANCE_CM has multi-year history, so trade count (~40-120 over the sample) and a 3-window walk-forward + 15-day holdout are all supportable — unlike the 90-day options chain. Only 3 parameters, to resist the overfit death mode.

Hypotheses

I recommend ABANDON, and the only code change is a docstring recording why - I did not re-tune the mechanism, because doing so would be curve-fitting rather than a fix. The QA verdict said both legs are coin flips; I tested that directly by conditioning the real ETHUSD_PERP daily history (2,118 bars, 2020-08 to 2026-06) on the exact RV percentile rank this code computes, and the premise is refuted in both directions. Twenty-day forward returns by RV rank bucket are: [0.0,0.2) -0.43% (win 41%), [0.2,0.4) +3.66%, [0.4,0.6) +2.65%, [0.6,0.8) -0.83%, [0.8,1.0) +0.67%. The calmest bucket - precisely what the LONG leg is built to hold - is the WORST of the five, so 'low realized vol predicts positive forward returns' has the wrong sign here. The SHORT leg's exact condition (rank >= 0.70 and close below the 100-day SMA, n=232) shows POSITIVE forward returns of +1.52% at 20 days, i.e. negative expectancy for a short. Both findings reproduce the engine's numbers (long-calm win 0.486, short-stressed win 0.476, Sharpe 0.09, IR -0.58 versus buy-and-hold), which also confirms QA's point that the earlier private dry-run was unreliable - I take that as a lesson to reconcile against the engine's own inverse-contract accounting before claiming a plateau. There is no parameter inside this family that rescues it: the one bucket with a genuine edge is a narrow interior band (rank 0.2-0.4), and shipping a calm floor tuned to that band on one instrument over one window is exactly the overfit that this class dies of, on top of a single-instrument directional OHLCV base whose Sharpe is its ceiling. The mechanism may still be sound on other assets, but on ETH COIN-M the conditional evidence says it is not.

Hypotheses

The strategy's defining premium is falsified on its own instrument, as the developer's iteration-2 docstring pre-registers and the full backtest confirms — not worth 2 hours of optimization. Conditioning the real ETHUSD_PERP history on the same RV percentile rank the code uses gives the LONG leg's own bucket (rank <0.2) a NEGATIVE -0.43% 20-day forward return (win 41%, the calmest bucket is the worst) and the SHORT leg's exact condition (rank≥0.70 AND close<SMA100) a POSITIVE +1.52% forward return (wrong sign for a short) — negative expectancy in both legs, non-monotone across buckets. The engine agrees: Sharpe 0.109 with CI [-0.74, 0.95] straddling zero, PSR 0.589, information_ratio -0.70 vs buy-hold, total_return only +2.4% over 6 years (58 trades), long-calm and short-stressed win rates both ~48%, max_drawdown 28.7% (CI to 64.6%), stressed tercile -7.7%, and the headline further dragged by -13.3% open-position unrealized. avg_trade_return_pct 0.68% clears the COIN-M floor, so it is not fee-dead — but there is no edge to carry. The only positive bucket is a narrow interior band (0.2-0.4) whose selection the developer correctly calls curve-fitting one instrument on one window, so there is no robust parameter region for the optimizer to tune toward. Failure pattern: no_edge single-name COIN-M vol-regime directional switch, premise falsified (calm bucket worst / short wrong-signed).

Implementation

Long-short volatility-regime switch on the ETH COIN-M inverse perpetual (ETHUSD_PERP.BINANCE_CM, daily bars, pure OHLCV). Each bar it computes realized volatility over 20 days and its percentile rank within a trailing 252-day history, plus a 100-day SMA trend. It holds LONG while the RV rank is in the calm bottom 40%, SHORT when the RV rank is above 70% AND price is below the SMA, and FLAT otherwise - the middle band being the risk control rather than a stop. Sizing deploys a fixed 40% of equity as an integer count of $10-face inverse contracts. Iteration 2 changes only the module docstring, which now records the measured refutation of the strategy's own premise.

Verification Results

CLEAN RESTART 2026-09-04 — this run's verdict history and learning records were removed and it was restarted from verification. Its previous abandonment came from the pipeline, not from the market: the Layer-2 harness mis-bound @staticmethod helpers (fixed), QA issued terminal performance verdicts on an unoptimized smoke test (removed — QA now judges correctness only), and sandbox timeouts came from backtest-slot starvation (fixed). The hypothesis and the strategy code are unchanged. Verify the code on its merits; performance is decided later by the full backtest and the optimizer.

Verification Results

Analyst to confirm on the full backtest + walk-forward; if the wrong-sign forward returns persist, abandon. Do NOT re-tune calm_pct into the 0.2-0.4 interior band — that is single-instrument/single-window overfitting, as the developer notes.

Verification Results

The code faithfully implements the hypothesis's stated mechanism (calm RV -> long, stressed RV + downtrend -> short, else flat), but the hypothesis's core empirical PREMISE ('low realized vol predicts positive forward returns') is refuted on this exact instrument per the developer's own conditional analysis, which reproduces the engine's near-coin-flip win rates and negative IR. An edge/premise failure, not a code bug — flagged as the basis for the edge_concern.

Backtest Review

Clean 3-parameter pure-OHLCV build, correct inverse COIN-M contract sizing, O(1) rolling state; scale-invariant percentile-rank regime; honest pre-registered refutation of its own premise

Backtest Review

avg_trade_return_pct 0.68% clears the ~0.10% COIN-M floor; low fee drag (2.06% of gross)

Backtest Review

Premise refuted on this instrument: LONG bucket (RV rank <0.2) has -0.43% forward return (calmest bucket is worst); SHORT condition has +1.52% forward return (wrong sign) — negative expectancy in both legs

Backtest Review

No significant edge: Sharpe 0.109 with CI [-0.74, 0.95] straddling zero, PSR 0.589, IR -0.70 vs buy-hold, total_return +2.4% over 6 years; both legs ~coin-flip win rate

Backtest Review

Only 58 trades; max_drawdown 28.7% (CI to 64.6%); stressed tercile negative; headline dragged by -13.3% open-position unrealized

Backtest Review

The only edge bucket is a narrow interior band (0.2-0.4) whose selection is one-instrument/one-window curve-fitting — no robust region to tune toward

Iteration History

Verification failed (Layer 4 — QA review) [class=no_edge]: - NO VIABLE RISK-ADJUSTED EDGE on the full 2117-day sandbox. The developer stakes the value proposition on vol-regime switching IMPROVING risk-adjusted return ('Sharpe 0.57-0.98 versus 0.30 for buy-and-hold'). The engine, on the same default params and real ETHUSD_PERP data, produces the opposite: Sharpe 0.09 (CI [-0.62, 0.78] straddling zero), BELOW buy-hold's ~0.30; alpha -0.0127 and information_ratio -0.58 vs buy_hold (the overlay makes risk-adjusted return WORSE than holding ETH); +2.4% total return over 5.8 years; end_unrealized -17.8%. Both legs are coin-flips (long-calm win 0.486, short-stressed 0.476), so the core premise (low realized vol predicts positive forward returns) shows no predictive power in the data. The developer's dry-run Sharpe is directly contradicted by the engine, so the claimed plateau is unreliable. Single-instrument directional OHLCV family where base Sharpe is the ceiling (0/213 survival); a 3-param sweep cannot lift a 0.09 base past the 0.5 OOS floor, and the broad-grid claim already collapsed in the sandbox. - 58 trades over 5.8 years is a thin population that reinforces (not excuses) the near-zero Sharpe. The developer's claimed metrics do not reproduce in the engine — future submissions in this class should reconcile the private dry-run against the real inverse-contract engine before claiming a plateau.

Iteration History

Verification failed (Layer 4 — QA review) [class=premise_falsified]: - Re-review of iteration 2 (code unchanged except a docstring; developer concurs with abandon). The developer directly conditioned the real ETHUSD_PERP daily history on the strategy's own RV percentile rank and REFUTED the premise in both legs. 20-day forward returns by RV rank bucket: [0.0,0.2) -0.43% (win 41%), [0.2,0.4) +3.66%, [0.4,0.6) +2.65%, [0.6,0.8) -0.83%, [0.8,1.0) +0.67% — the calmest bucket, which the LONG leg holds, is the WORST of the five, so 'low realized vol predicts positive forward returns' has the wrong sign and is non-monotone. The SHORT leg's exact condition (rank >= 0.70 AND close < SMA100, n=232) has POSITIVE forward returns (+1.52% at 20d), i.e. it short-sells positive drift. These reproduce the engine's coin-flip win rates (long-calm 0.486, short-stressed 0.476), Sharpe 0.09, IR -0.58 vs buy-hold, +2.4% over 5.8 years. The only bucket with a real edge is a narrow interior band (0.2-0.4) the hypothesis doesn't specify; selecting it would be single-instrument/single-window curve-fitting on a directional-OHLCV base whose Sharpe is its ceiling. The effect is absent/inverted; no parameter fixes it.
Strategy report

Backtest and paper results are hypothetical. Trading involves risk of loss.