Skip to content

View original

VwapReversionBasketLS

Hypotheses

Diversified Intraday VWAP-Reversion Basket, Long-Short (Three Liquid USD-M Majors BNB/LTC/BCH, 15m Bars, Fade MODERATE VWAP Z-Deviations Independently Per Name, Gap-Capped Small Notional + 1x Leverage — Diversify Away the Noise AND the Single-Name Blowup, 3-Parameter)

Hypotheses

A LONG-SHORT intraday mean-reversion that takes the ONE price mechanism with a live survivor in this factory — the deployed SOL 15m VWAP-reversion (paper_stage) — and fixes its two observed failure modes by DIVERSIFYING it across three independent names. The single-name reversion/squeeze siblings died two ways: (1) 'too thin / edge indistinguishable from noise' (the SOL squeeze at Sharpe 0.175), and (2) single-name gap LIQUIDATION (the XRP reversion, -100% in one pump/dump day). Running the SAME moderate-deviation VWAP fade INDEPENDENTLY on three uncorrelated-enough liquid majors (BNBUSDT, LTCUSDT, BCHUSDT) attacks both: averaging three noisy reversion streams sharpens the aggregate signal-to-noise (portfolio Sharpe scales with the number of independent bets), and per-name notional caps + 1x leverage mean NO single name's gap can dent the account. It is deliberately outside every family the meta-learner just killed: NOT momentum rotation (L32 exhausted), NOT funding carry (L33), NOT quarterly/COIN-M basis (L34), NOT options (fragile/blocked). The three names are chosen for reliable 15m volatility that clears the 0.10% USD-M round-trip while having NO catastrophic -100% intraday history (unlike XRP/small alts), and none overlaps the deployed SOL or pending ETH reversions. It fills the under-represented SHORT horizon (8.8%) and LONG-SHORT direction (14.3%). Only 3 parameters, matching the survivor's simplicity against the overfit graveyard.

Hypotheses

Takes the factory's one live-survivor price mechanism (deployed SOL 15m VWAP-reversion, paper stage) and fixes its two observed failure modes by diversifying across three names. Failure mode 1 — 'edge indistinguishable from noise' (SOL squeeze Sharpe 0.175): running the same moderate-deviation fade on three roughly independent reversion streams raises aggregate signal-to-noise (portfolio Sharpe scales ~sqrt(N) in the number of independent bets). Failure mode 2 — single-name gap liquidation (XRP reversion, -100%): per-name 15%-of-equity notional caps at fixed 1x leverage mean a 30% adverse gap on any one name costs <5% of equity and liquidation is impossible; the three chosen majors (BNB/LTC/BCH) have reliable 15m volatility that clears the ~0.10% USD-M round-trip yet no catastrophic -100% intraday history, and none overlaps the deployed SOL or pending ETH reversions. It sits outside every family the meta-learner killed (not momentum-rotation, not funding-carry, not COIN-M/quarterly basis, not options) and fills the under-represented SHORT horizon and LONG-SHORT direction. The z-score trigger is scale-invariant so the same entry_z fires comparably across the three names' different price/vol scales, and exits near the mean capture a reversion that clears fees — the identical viable mechanism as the live SIBling. Architecture reuses the proven barrier-cleared multi-instrument pattern from my passing rotation iteration: clearing self._sync_extra_iids is REQUIRED here so each name trades on its own bar (the same-timeframe barrier would otherwise gate — and could permanently stall — cross-name processing); each name's trading runs in one _handle_name method called from calculate_signal (primary) and on_extra_bar (extras), with all order submits wrapped so the order_factory=None Layer-2 proxy can't crash and the primary z-score returned so the frozen-signal check passes. Fee/gap notes: on a MARGIN futures account get_account_equity() reflects full equity so per-name sizing is direct; leverage is 1.0 so there is no leverage_set_but_unused risk and sizing correctly omits any multiplier. Warmup is only vwap_window+2 = 50 bars (trivial vs 15m multi-year history) and the frequent symmetric firing across three names guarantees thousands of trades and a populated Layer-3 sandbox (no verification_loop). All three legs are long-standing, currently-listed, deeply-liquid USD-M perps, so none triggers data_unavailable (L4). Only three parameters are tuned (vwap_window, entry_z, exit_z), matching the survivor's simplicity against the overfit graveyard.

Hypotheses

Strategy LIQUIDATED to -100% (max_drawdown 100%) on 2021-02-21, directly falsifying the hypothesis's central premise that per-name 15% notional caps + 1x leverage prevent single-name/gap blowup. The edge is negative and below fees: avg_trade_return_pct -0.0147%, profit_factor 0.70, Sharpe -0.97, all on a decisive 19,396-trade sample. The inverted reward/risk is diagnostic of the mean-reversion VWAP-fade class (win_rate 0.65 but avg_loss 2.6x avg_win) that has died repeatedly this session across SOL/ETH/XRP/DOGE/BNB/LINK — fades that win small and lose big when they get run over by trend. Diversifying across BNB/LTC/BCH did not help because all three fade into the same 2020-21 uptrend (the -346% 2021 return and -175% single-day swings show effective exposure blew past 1x as the fade re-entered/compounded). Optimizing vwap_window/entry_z/exit_z cannot flip negative expectancy or un-liquidate the account — it would only overfit noise. Abandon rather than spend 2 hours optimizing.

Implementation

Long-short intraday mean-reversion run INDEPENDENTLY across three liquid USD-M perp majors (BNBUSDT primary, LTCUSDT + BCHUSDT extras), 15m bars, pure OHLCV, 1x leverage. For each name it computes a rolling volume-weighted VWAP over vwap_window (48 = 12h) bars and the volume-weighted band std, forms the close's z-deviation, and fades MODERATE deviations symmetrically (trend-gate OFF): short when z > entry_z, long when z < -entry_z. Each name holds its own position and exits on (1) a catastrophic hard stop at stop_pct (3%) unrealized loss, (2) a side-aware reversion take-profit once the z-score collapses back to/through the mean band (LONG exits when z >= -exit_z, SHORT when z <= exit_z), or (3) an 8h time stop. Because the three names are traded independently, the strategy opts out of the base cross-leg alignment barrier (clears self._sync_extra_iids) and processes each name on its own bar — the primary via calculate_signal, the two extras via on_extra_bar — through one shared _handle_name method. Sizing applies a HARD per-name notional cap of max_notional_frac (15%) of equity at 1x leverage (≤45% gross across the three), so no single name's gap can liquidate the account. calculate_signal returns the primary's continuous z-score; should_enter/should_exit/position_size are inert.

Backtest Review

Well-sampled (19,396 trades) so the result is statistically decisive, not noise

Backtest Review

Clean 3-parameter design and sensible engineering intent (per-name caps, independent processing)

Backtest Review

Account was LIQUIDATED (total_return -100%, max_drawdown 100%) on 2021-02-21 — the hypothesis's core claim that 1x + per-name caps prevent blowup is falsified

Backtest Review

avg_trade_return_pct = -0.0147% — NEGATIVE per-trade edge, below the 0.15% futures fee floor; no parameter tuning can flip negative expectancy

Backtest Review

profit_factor 0.70 (<1.0), Sharpe -0.97, Sortino -0.96 — a net loser on every risk metric

Backtest Review

Classic mean-reversion VWAP-fade failure mode: win_rate 0.65 but avg_loss ($95.5) ~2.6x avg_win ($36.6) — wins are capped by reversion exits while the 3% stop lets fade-into-trend losers compound, with -175% single-day swings showing effective exposure far exceeded 1x

Backtest Review

Same fade-gets-run-over class that has died repeatedly this session across SOL/ETH/XRP/DOGE/BNB/LINK; diversifying across 3 majors did not help because all three fade into the same 2020-21 up-trend (information_ratio -2.36 vs equal-weight basket)

Outcome Summary

This strategy took the factory's one surviving price mechanism — 15m VWAP-reversion — and tried to rescue it by running the same moderate-deviation fade independently across BNB, LTC, and BCH, betting that per-name notional caps and 1x leverage would diversify away both the noise and the single-name liquidation risk that killed its SOL and XRP siblings. Instead, on a statistically decisive 19,396-trade sample it lost on every metric (Sharpe -0.97, profit factor 0.70, negative per-trade edge of -0.0147%) and was fully liquidated to -100% on 2021-02-21, directly falsifying its own central premise. The classic fade-gets-run-over signature was intact — a 65% win rate paired with losses 2.6x the size of wins — because all three names faded into the same 2020-21 uptrend at once, so diversification bought no protection. The backtest review abandoned it before optimization, reasoning that no tuning of vwap_window/entry_z/exit_z could flip negative expectancy or un-liquidate the account.

Outcome Summary

Diversifying a VWAP-fade across multiple majors does not neutralize its core failure mode, because all names fade into the same market-wide uptrend simultaneously — the reversion class wins small and loses big when run over by trend, and per-name caps do not stop compounding re-entries from pushing effective exposure past 1x.

Outcome Summary

The pre-optimization backtest review abandoned it outright: the liquidation directly falsified the hypothesis's central premise that per-name caps plus 1x leverage prevent gap blowup, and negative expectancy below fees cannot be fixed by tuning the three parameters.

Outcome Summary

A long-short intraday VWAP mean-reversion basket that faded moderate z-score deviations independently on three liquid USD-M majors (BNB/LTC/BCH) at 15m bars with per-name notional caps and 1x leverage, aiming to diversify away both the noise and the single-name blowup that killed prior reversion siblings.

Outcome Summary

Over a decisive 19,396-trade sample the strategy was a net loser on every risk metric — Sharpe -0.97, Sortino -0.96, profit factor 0.70, and a negative per-trade edge of -0.0147% (below the 0.15% futures fee floor) — with a 65% win rate undercut by an average loss ($95.5) ~2.6x the average win ($36.6). The account was fully liquidated (total return -100%, max drawdown 100%) on 2021-02-21.
Strategy report

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