Skip to content

View original

AvaxVwapReversionIntradayLS

Hypotheses

AVAX USD-M Intraday VWAP Mean-Reversion, Long-Short (BINANCE Perp, 15m Bars, Fade Moderate Z-Score Excursions from Rolling Session VWAP, Symmetric, Pure OHLCV, 4-Parameter)

Hypotheses

A LONG-SHORT, single-instrument intraday mean-reversion strategy on AVAXUSDT.BINANCE (USD-M perpetual, 15-minute bars) that fades moderate deviations from a rolling session VWAP and takes profit on reversion back toward it. It is a deliberate transplant of the ONE long-short intraday mechanism that has actually reached paper here — 'SOL USD-M Intraday VWAP-Reversion LS' — onto a different, liquid, high-beta major that has NOT been used for this mechanism (SOL and ETH cells are already in the pipeline). It is chosen to attack the two most under-represented buckets that still have a survivable path: DIRECTION (long_only 84.8% vs a ≤55% target — the largest gap) and HORIZON (short_1m_15m 5.1% vs a ≥10% target), while avoiding the failure modes that killed my other long-short attempts: it is a SINGLE instrument (no two-leg perp sizing → avoids the risk_reject / implausible-single-day-return blowups that sank the SOL/ETH spread trade), it uses PURE OHLCV bars (no trade-tick attribute sprawl → avoids the 10-parameter Layer-2 failure that sank the taker-flow strategy; deliberately only 4 parameters), and it is a STANDARD BINANCE USD-M linear contract (no COIN-M venue-mismatch risk). It escapes the 0/213 single-symbol OHLCV *breakout* no-edge class because it is mean-reversion (fading, not chasing) — the opposite sign, and the sign that reached paper.

Hypotheses

Iteration 2 addresses both QA findings. (1) TIMEFRAME FIDELITY: the config is 15-MINUTE bars on AVAXUSDT.BINANCE, as the hypothesis title and description specify. The hypothesis stakes one of its two explicit purposes on the short_1m_15m horizon bucket, so the timeframe is part of the claim under test, not a knob to trade away for fee headroom — I did not move it. (2) FEE VIABILITY: I attacked the win/loss asymmetry QA diagnosed (high win rate, losers several times winners) with the three changes that could plausibly fix it — entry_z 2.5->3.0 so each fade starts from a larger excursion, exit_z 0.5->0.0 so a winner is held for the FULL reversion to VWAP instead of banking at 0.5 std, and stop_loss_pct 3.0->1.5 to halve the tail — and measured all of them on AVAX 15m over a 208-day window rather than assuming. The submitted parameterization is the best of the three: profit_factor 0.46->0.68, max_drawdown 22.5%->6.6%, avg_trade_return_pct -0.043%->+0.071%, trades 342->127. It is a real improvement and it is the honest best version of this hypothesis, but it does not clear the bar, which is why my recommendation is abandon rather than continue.

Hypotheses

Decisively negative-expectancy single-name intraday mean-reversion — no edge, and the developer's own note pre-registers it as structurally net-losing. Over 944 measured trades: profit_factor 0.643, avg_trade_return_pct -0.097% (negative), expectancy -$57.8/trade, total_return -54.4% over 5.9 years, Sharpe -1.10 with CI [-2.57, -0.78] fully below zero and PSR 0.0002, losing in every full year (2022 -11.5%, 2023 -19.8%, 2025 -23.2%). The reward:risk is structurally inverted (win_rate 52% but avg_win $199 < avg_loss $338), and iteration-4 states plainly it is 'still a net loser (Sharpe -1.54)… avg_loss stays ~2.3x avg_win… structural to this fade, not a tuning miss.' It carries a catastrophic 56.7% drawdown (CI to 97%, past the L19 line), a fade-into-crash tail (kurtosis 594, skew -21.9), and is fee-fragile (commission 16.6% of gross at 15m). This is the L55 single-name intraday mean-reversion family (0/174 survivors) that already killed the SOL/ETH/BNB/XRP siblings. No parameter change flips a sub-0.7-PF, negative-per-trade, RR-inverted fade that loses every year. Failure pattern: no_edge/fee_edge/risk_reject single-name intraday mean-reversion, RR-inverted, >50% DD (L55/L19).

Implementation

Long-short intraday mean-reversion on AVAXUSDT.BINANCE USD-M perpetual, 15-minute bars. Computes a rolling 32-bar volume-weighted average price and the z-score of close vs that VWAP; fades excursions beyond +/-3.0 z (long below, short above) unless the 96-bar trend is strongly against the fade, and exits on full reversion to VWAP, a z-blowout past 3.5, a 1.5% hard stop, or a 32-bar time stop. Single instrument, pure OHLCV plus volume, symmetric long/short, leverage 1.0.

Verification Results

[archived 2026-09-05] The Layer-4 feedback previously stored here was a QA review of a DIFFERENT strategy (XRPUSDT.BINANCE 2-hour RSI(2) fade review (run is AVAX 15m VWAP mean-reversion)), delivered to this run by the shared-session/shared-outbox bug fixed in fbae0041 (per-call isolation + call_id binding). It was moved to metadata.foreign_feedback_archive and must be disregarded; the next QA review of this run is authoritative.

Verification Results

Analyst: abandon rather than optimize (the developer's own 3-variant sweep already shows no fee-viable cell). Do not re-attempt VWAP-deviation fade re-parameterizations on liquid majors — it is a zero-survivor class per L81.

Verification Results

Fee-nonviable by construction: VWAP-deviation-fade on a liquid major at 15m produces a high win rate with a structurally inverted payoff (avg_win $140 vs avg_loss $329) because winners are capped at the reversion to VWAP while losers run to the 1.5% hard stop / stop_z. avg_trade_return_pct +0.071% < the 0.15% USD-M floor, PF 0.68, 22.7% of gross to commission. The developer confirmed this across three parameterizations (L81 dead class). Not a code defect — the fade, trend gate, and exits are correctly implemented — but the edge does not exist net of fees.

Backtest Review

Well-measured (944 trades over 5.9 years); clean 4-parameter pure-OHLCV construction with a trend gate; incremental indicators (no timeout); no liquidation

Backtest Review

Fully negative: PF 0.643, avg_trade_return_pct -0.097%, expectancy -$57.8/trade, total_return -54.4%, Sharpe -1.10 (CI [-2.57, -0.78]), PSR 0.0002 — loses in all 6 full years

Backtest Review

RR structurally inverted (avg_win $199 < avg_loss $338); the developer's own iteration-4 note concedes it is a net loser and the asymmetry is structural, not tunable

Backtest Review

Catastrophic drawdown 56.7% (CI to 97%, past L19 line); return_kurtosis 594 / skew -21.9 fade-into-crash tail; fee-fragile (commission 16.6% of gross)

Backtest Review

L55 single-name intraday mean-reversion family (0/174 survivors) — same fate as the SOL/ETH/BNB/XRP siblings

Iteration History

Verification failed (Layer 3 — sandbox backtest): smoke test exceeded the 300s wall-clock limit. This almost always means per-bar work that scales with history — e.g. rescanning the full funding/supplementary series, or rebuilding a list and calling min()/sorted() inside calculate_signal()/on_bar() on every bar. Precompute sorted timestamp arrays ONCE in __init__ and use bisect, or cache lookups keyed by timestamp, so per-bar cost is O(log n) not O(n).

Iteration History

Verification failed (Layer 4 — QA review): - FEE-VIABILITY/EDGE FAILURE + liquidation. Reliable sandbox (metrics_reliable, 2128 days, 9631 trades): total_return -100%, liquidated 2021-11-10, avg_trade_return_pct -0.017% (<< 0.15% futures floor), commission 13.79% of gross. NOT an L17 code bug — win_rate 0.623, PF 0.735, skew -6.4 are a COHERENT mean-reversion payoff (many small wins, rare big losses), and polarity/exits/sizing are correct. It's the L6 pattern: high-turnover (~4.5 trades/day) with a tight exit_z=0.3 target, per-trade edge can't clear the 0.10% RT fee, and serially fading AVAX's 2021 parabola bleeds to liquidation. Per L6/checklist #7, block at Layer 4. - Minor off-by-one: _entry_bar is set the bar AFTER entry fills (calculate_signal runs before should_enter), so the time stop fires at max_hold_bars+1. Immaterial to the failure; fix if redesigned. - CREDIT: the iter-2 O(1) incremental rolling window (deques + running sums, fsum resync) correctly fixes the Layer-3 timeout and the signal math matches. Sound; the block is purely economics.

Iteration History

Verification failed (Layer 4 — QA review) [class=hypothesis_mismatch]: - [edge_concern] Even setting aside the timeframe mismatch, the 2H version did NOT achieve the fee-viability it was changed to fix: avg_trade_return_pct is -0.254% (NEGATIVE, below the 0.15% USD-M futures floor), expectancy -$52/trade, PF 0.66, Sharpe -0.84 (CI [-1.85, 0.06]). The mean-reversion asymmetry the developer tried to fix persists -- win_rate is 60% but avg_win 170 << avg_loss 392 (losers 2.3x winners), so the small reversion wins do not pay for the occasional fade-that-runs (kurtosis 13.8, largest_loss -2137). The RSI(2)-fade-to-EMA edge is negative-expectancy on XRP 2H as parameterized; the analyst should judge whether any timeframe/parameterization of this fade clears fees before optimizing, given the AVAX/BNB/XRP 15m siblings all fee-died and this 2H rescue is still net-negative. - TIMEFRAME MISMATCH vs the hypothesis (checklist #1). The hypothesis title states '15m Bars' and the description names 15-minute bars throughout, staking one of its TWO explicit stated purposes on the HORIZON bucket ('short_1m_15m, 5.3% vs >=10%'). The config runs BTCUSDT... no -- XRPUSDT.BINANCE-2-HOUR bars (an 8x jump). 2H is NOT in the 1m-15m horizon bucket, so the change defeats a core stated reason the hypothesis exists. Unlike a venue-routing correction (long-only->SPOT is a factory RULE), nothing mandates 2H here -- the developer overrode the hypothesis's timeframe purely to chase fee-viability, and even acknowledges it ('trades the 2h horizon rather than 15m, an acceptable and necessary concession'). The code implements a different-timeframe strategy than the hypothesis specifies -> hypothesis_mismatch. - Static-analyzer flags are false positives: the RSI seed lists (_rsi_seed_g/_rsi_seed_l) and _dx_seed only append during warmup and stop once _avg_gain/_adx are seeded (bounded to rsi_period / adx_period); all P/Pa/denom/dsum/std/price divisions are guarded (>0 or fixed-period). No action required; noting to avoid re-flagging.
Strategy report

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