SolDailyVolTargetedTimeSeriesMomentumLS
Hypotheses
SOL USD-M Daily Volatility-Targeted Time-Series Momentum, Long-Short (Single-Instrument BINANCE Perp, Trend Signal with HARD-BOUNDED Inverse-Realized-Volatility Exposure Scaling for Drawdown Control, Pure OHLCV, Tail-Safe, Low-Parameter)
Hypotheses
A LONG-SHORT, SINGLE-INSTRUMENT, DAILY time-series momentum strategy on SOLUSDT.BINANCE (USD-M perpetual) whose distinguishing feature is a HARD-BOUNDED VOLATILITY-TARGETING overlay on the validated trend signal: scale exposure INVERSELY to recent realized volatility (Moreira-Muir volatility-managed momentum), de-risking in high-vol regimes and re-risking when calm. SOL is the deliberate choice because it is the HIGHEST-VOLATILITY core trender (its promoted TS-momentum sibling carries the deepest drawdowns of the BTC/ETH/SOL set), so the vol-targeting overlay — whose entire purpose is drawdown/tail control — delivers its MAXIMAL Calmar/Sharpe benefit precisely here. This completes the vol-targeted drawdown-control family (the ETH sibling is pending) on the asset where it matters most. It is the evidence-forced choice after the design space collapsed to a single viable point: signals restricted to OHLCV+funding (all census feeds — liquidations/OI/account-ratio/taker — confirmed multi-year data-walled); contrarian/fades all closed out; plain single-name PRICE trend clones add no edge/diversification beyond the promoted siblings; spot overlays artifact-prone; multi-instrument (incl. single-position rotation) engine-broken. The vol-targeting overlay is the one documented modification that changes the validated edge's RETURN PROFILE (drawdown) rather than re-skinning it. Engineered strictly inside proven-safe ground: SOL (validated core trender, paper_stage sibling); OHLCV-ONLY (deepest wall-free data); MOMENTUM/with-trend (not a fade); DAILY (adequate sample); USD-M PERP (vol-scaling via qty/leverage, NOT spot — avoiding the spot equity-marking/stacking artifact); SINGLE-INSTRUMENT/SINGLE-VENUE/SINGLE-ACCOUNT (no MI aggregation bug). CRITICAL bounded-exposure guard: exposure = clamp(target_vol/realized_vol, 0, MAX<=1.5), netting-only, with an explicit assertion that realized daily strategy return never exceeds the underlying's actual daily move — directly fixing the recurring avg_position_pct-over-target / position-stacking / implausible-single-day artifact flagged across the SOL/BTC funding-confirmed and pullback runs. Low parameter count.
Hypotheses
Iteration 2 fixes the artifact the hypothesis was built to prevent, with the smallest change off previous_code and the momentum+vol-scaling signal logic untouched (Layers 1-2 already passed). Root cause of the impossible single-day returns (+137.8% / -124.3%, equity crossing zero) and avg_position_pct 169%: the base template holds ONE netting position (no stacking, verified in base_template _process_primary), but the entry-only exposure clamp never bounded the HELD position. A fixed-fractional position carried through a multi-day adverse trend (loose 4xATR / sign-flip exits) lets notional/MTM-equity drift to ~4-5x, so a normal 25-30% SOL day becomes a >100% equity swing. Fixes: (1) should_exit now computes MTM equity = cash + unrealized PnL each bar and flattens when held effective leverage > ceiling*1.05 (the bounded-exposure guard actually firing), logging loudly and flattening on any non-positive MTM equity as the promised runtime assertion; (2) a hard 12% price-based stop-loss caps per-trade loss so leverage cannot balloon in the first place; (3) leverage set explicitly to 1.5 so min(max_exposure, leverage)=1.5 and the engine margin model matches sizing, resolving the ceiling=1.0-vs-target-1.5 mismatch that produced avg_position_pct above the intended ceiling. These structurally bound the single-day strategy move to <= ~1.5x the underlying's actual move and keep avg_position_pct within the 1.5 ceiling, so the clean re-run can measure the true (thin) edge before any optimization.
Hypotheses
Abandon per the hypothesis's OWN pre-registered acceptance gate, which mandates 'avg_position_pct <=100% AND no physically impossible intraday equity jump; if violated, abandon & escalate.' Both halves failed: avg_position_pct is 163.9% (the bounded-exposure overlay that is this hypothesis's entire reason to exist did NOT bound exposure), and daily_returns contain physically impossible single-day swings (+154.7%, -114.1%, +142.3%, +93.5%) that SOL's actual daily moves cannot produce and that imply a leverage blow-up (a -114% day and a -100.57% 2023 annual are impossible without broken position-stacking accounting). Supporting artifact signature: return_kurtosis 771, skew 23.6, annualized_vol 180%, max_drawdown 73% (CI to 100%), and a 324% headline that is 135.8% un-exited open MTM. This is the recurring over-exposure/position-stacking artifact, not a real edge; Sharpe 0.226 (CI straddles 0) is meaningless on top of it. Stating the symptom, not a verified internal mechanism — the entry clamp + should_exit MTM-leverage guard failed to keep held exposure bounded. Optimization cannot fix an exposure-accounting artifact; escalate for engine/guard review per the hypothesis's escalation clause.
Implementation
Long-short daily time-series momentum on SOLUSDT.BINANCE USD-M perp with a hard-bounded inverse-realized-volatility (Moreira-Muir) exposure overlay for drawdown control. Entry on the sign of log-momentum over a lookback; exposure scaled as clamp(target_vol/realized_vol, 0, ceiling) where ceiling = min(max_exposure 1.5, leverage 1.5). The bounded-exposure guard is enforced both at entry (exposure clamp) AND on the held position: every bar it computes mark-to-market effective leverage (notional / (cash equity + unrealized PnL)) and flattens if it exceeds ceiling*1.05, plus a hard 12% price stop-loss and a 4xATR stop. Pure OHLCV, single-instrument/venue/account, leverage 1.5.
Backtest Review
Clean single-instrument OHLCV daily construction on a validated trender; adequate sample (1985 days, 72 trades)
Backtest Review
Pre-registered an explicit, falsifiable acceptance gate — which makes the failure unambiguous
Backtest Review
Pre-registered acceptance criterion VIOLATED: avg_position_pct 163.9% >> the <=100% bound — the bounded-exposure guard that is this hypothesis's sole reason to exist did not bound exposure
Backtest Review
Physically impossible single-day equity jumps: +154.7% (2021-07-17), -114.1% (2023-10-20), +142.3% (2023-10-11), +93.5% (2021-12-07) — SOL never moved 100%+/day and you cannot lose >100% without a blow-up; these are the position-stacking/over-exposure artifact
Backtest Review
Corroborating artifact signature: return_kurtosis 771, skew 23.6, 2023 annual return -100.57% (broken accounting), annualized_vol 180%, max_drawdown 73% (CI to 100.2%), CAGR -100%
Backtest Review
Headline total_return 324% is 135.8% open unrealized (end_unrealized_pct) on top of blown accounting; Sharpe 0.226 with CI straddling 0 is meaningless
Analysis
The bounded-exposure guard — the entire reason this hypothesis exists — is NOT working in the backtest. Fix this before any optimization:
1) IMPOSSIBLE SINGLE-DAY RETURNS: daily_returns contains +137.8% (2023-10-11), -124.3% (2023-10-20), +114.9% (2021-12-07), +111.7% (2021-07-17), +100.6% (2026-05-06). A 1.0-1.5x notional SOL position cannot move >100% in a day; SOL's worst real days are ~+/-25-30%. The promised assertion (|daily strategy return| <= max_exposure x |underlying daily move|) is clearly not firing. ADD that assertion as a real runtime check and make the backtest fail loudly if it trips, so the artifact can't slip through again.
2) AVG EXPOSURE EXCEEDS THE CEILING: avg_position_pct is 169% vs your stated max_exposure=1.5 AND vs the effective ceiling min(1.5, leverage)=1.0 (config leverage defaults to 1.0). Either set leverage explicitly to match the intended 1.5x and document it, or the sizing path is producing notional beyond the clamp. Investigate position_size(): confirm get_account_equity() is current-equity (not inflated by unrealized PnL in a way that compounds the position), confirm qty isn't being submitted on top of an existing same-side position, and confirm long<->short reversal nets correctly (a SELL of size qty against a LONG of size qty goes FLAT, not short — you may be under/over-shooting on flips).
3) Re-run the initial backtest after the fix. The acceptance gate before optimization: NO single-day return exceeds ~1.5x SOL's actual move that day, and avg_position_pct <= your intended ceiling. Only then is the true edge (currently masked by the artifact) measurable. Note the underlying edge looks thin even before the artifact (PF 1.02, Sharpe 0.17), so the clean re-run also tells us whether this is worth optimizing at all.
Outcome Summary
This was the SOL entry in a volatility-targeted drawdown-control family, deliberately placed on the highest-volatility core trender where an inverse-vol overlay should deliver its maximal Calmar/Sharpe benefit, built clean on single-instrument daily OHLCV with entry-time and held-position exposure guards. Crucially, the hypothesis pre-registered a falsifiable acceptance gate — avg_position_pct ≤100% and no physically impossible intraday equity jumps — which made the failure unambiguous. Both halves failed: average position reached 163.9% and daily returns showed impossible swings up to +154.7% and -114.1%, alongside corroborating artifacts (kurtosis 771, 180% annualized vol, a -100.57% 2023 year, and a 324% headline that was mostly un-exited open MTM). Per its own escalation clause, the strategy was abandoned at backtest review after two iterations and flagged for engine/guard review, since optimization cannot repair an exposure-accounting artifact.
Outcome Summary
The bounded-exposure guard that was this strategy's entire reason to exist did not actually bound held exposure, so an exposure-accounting/position-stacking artifact — not optimization — is the binding problem and must be fixed at the engine/guard level before any vol-targeting overlay can be evaluated.
Outcome Summary
The analyst issued an 'abandon' verdict at the pre-optimization backtest-review gate because the strategy's own pre-registered acceptance criterion was violated on both halves: avg_position_pct came in at 163.9% (above the ≤100% bound) and daily returns contained physically impossible single-day swings (+154.7%, -114.1%, +142.3%, +93.5%) that SOL's real moves cannot produce.
Outcome Summary
A long-short daily time-series momentum strategy on SOLUSDT.BINANCE USD-M perp whose distinguishing feature was a hard-bounded inverse-realized-volatility exposure overlay (Moreira-Muir vol-managed momentum) intended to de-risk in high-vol regimes and control drawdowns on the highest-volatility core trender.
Outcome Summary
Over 1,985 days and 72 trades it posted a headline total return of 324% but with a meaningless Sharpe of 0.226 (CI straddling zero), 72.98% max drawdown (CI to 100.2%), profit factor 1.17, 27.8% win rate, and broken-accounting signatures including return kurtosis 771, skew 23.6, annualized volatility 180%, and a 2023 annual return of -100.57%. The headline return was inflated by 135.8% of un-exited open unrealized PnL.
Backtest and paper results are hypothetical. Trading involves risk of loss.