BtcAnchoredVwapDeviationReversionSpotLong
Hypotheses
Anchored-VWAP Deviation Mean-Reversion, Long-Only Spot (Single-Instrument BTCUSDT.BINANCE_SPOT)
Hypotheses
Anchor a VWAP at each significant swing-low / high-volume session start and track price deviation from it in ATR or standard-deviation units. BUY when price stretches to an extreme NEGATIVE deviation band below the anchored VWAP = a capitulation flush trading well below the volume-weighted cost basis of recent participants (a structural reversion level, NOT a naked oscillator). Scale the exit back toward the anchored VWAP (mean-reversion take-profit), with an ATR stop below entry to cap the tail. Long-only on BINANCE_SPOT because there is no leverage and no short leg (correct venue per routing rule). Distilled from the TradingView VWAP-bands archetype, which is absent from all existing factory hypotheses. Must clear the spot fee floor: avg per-trade return > 0.25% of notional. 3 parameters: deviation-band entry threshold, ATR stop multiple, VWAP re-anchor rule.
Hypotheses
Implements the hypothesis's three parameters exactly as named: entry_dev (deviation-band entry threshold in sigma), stop_atr_mult (ATR stop multiple), and anchor_lb (the VWAP re-anchor rule — the pivot half-width that defines what counts as a 'significant swing low'). The distinguishing feature versus a naked oscillator is preserved: the reference level is a transaction-volume-weighted price that RE-ANCHORS with market structure rather than sliding along a fixed window, and the dispersion is computed volume-weighted from the same anchor, so both the level and the band are properties of actual traded volume since the pivot. Venue routing follows the rule directly and needs no override: the strategy is long-only with leverage=1 and no funding-based edge, so BINANCE_SPOT (CASH, 0.10% maker/taker) is correct — routing it to futures would pay perp fees for a benefit it cannot use. Fee viability: the target is a full reversion from `entry_dev` sigma below the anchored VWAP back to it, which on 4H BTC is typically a several-percent move, comfortably clearing the 0.25% spot per-trade floor; a 4-HOUR interval (not 1-minute) keeps holding periods in the days-to-weeks range the mechanism implies and avoids fee-churn. Two implementation details worth flagging. First, no lookahead: the swing-low pivot is only accepted once `anchor_lb` subsequent bars have printed, and re-anchoring rebuilds the accumulators forward from the pivot bar — the strategy never reads a price it could not have seen. Second, sigma is floored at min_sigma_frac x VWAP; immediately after a re-anchor the sample is tiny and an unfloored sigma would blow the z-score up on pure noise and manufacture spurious entries. Edge cases the engine can actually produce are handled and nothing else: zero cumulative volume since the anchor degrades the VWAP to an unweighted mean of typical prices instead of dividing by zero (Layer 2's zero_volume scenario), a flat price window yields zero variance which the sigma floor absorbs, and the ATR stop distance is clamped to [1.5%, 15%] so a degenerate ATR cannot produce an absurd size. Per L15 sizing is double-bounded — 2% of equity risked at the stop AND an 80%-of-equity notional ceiling, with a single position at a time and no add/average-down path — so losses cannot compound into position size. Per L21/L25 the warmup is short relative to the 365-day sandbox window (2 x anchor_lb + 5 = 45 bars ≈ 7.5 days of 2,190) and the entry is a single threshold on a continuously-varying signal rather than a compound AND of regime filters, so it fires readily. This uses core OHLCV only — no supplementary feed — so none of the L35/L4 supplementary-data verification-loop failure modes apply.
Hypotheses
Decisive net loser with no edge net of costs: profit_factor 0.69 (<1.0), total_return -45.3% over 8 years, Sharpe -0.307 (CI [-0.89, 0.27], probabilistic_sharpe 0.146), and avg_trade_return_pct -0.297% (NEGATIVE, below the 0.25% spot fee floor) with expectancy -$235/trade across 193 trades. Win rate is 46.6% with avg_loss ($1407) exceeding avg_win ($1106) — the classic small-wins/large-losses signature of failed crypto mean-reversion — and it loses in 7 of 9 years (2022 -25.8%) with a 49.4% max drawdown (CI high 78.2%). The hypothesis's premise — that anchoring VWAP at swing lows turns dip-buying into a structural cost-basis reversion rather than a naked oscillator — is falsified: buying extreme negative deviations below the anchored VWAP just buys dips inside downtrends that keep falling, losing across nearly the entire sample. This is the long-only mean-reversion dip-buying family, repeatedly dead here (multiple reversion candidates abandoned this session for the same reason). A negative avg_trade_return_pct (not merely sub-floor) means the signal is wrong-signed, so reducing frequency or retuning thresholds cannot help — there is no edge anywhere in the parameter space to tune toward, and reframing the same losing mechanism onto another instrument would lose again. Per L8 (never advance when total_return ≤ 0 or PF < 1.0), abandon at BACKTEST_REVIEW rather than spend 2 hours optimizing.
Implementation
Long-only anchored-VWAP deviation mean-reversion on BTCUSDT.BINANCE_SPOT (4-HOUR bars, no leverage). A VWAP is anchored at each confirmed swing low — a bar whose low is the lowest across `anchor_lb` bars on either side, confirmed with an `anchor_lb`-bar lag so no future information is used — and running volume-weighted accumulators (sum of v, p*v, p^2*v) track the anchored VWAP and its volume-weighted standard deviation from that pivot forward. The continuous signal is -dev_z = -(close - anchored_vwap)/sigma, so it is positive exactly when price trades below the volume-weighted cost basis of every participant since the pivot, and `signal >= entry_dev` means price has stretched `entry_dev` sigma below that basis — a capitulation flush into a structural reversion level. Entry is BUY only (CASH venue, no short leg). Exits, first to fire: (1) an ATR stop `stop_atr_mult` x ATR(14) below entry, frozen at entry and tested intrabar against the bar's low; (2) the anchored-VWAP reversion target, tested intrabar against the bar's high (with a `tp_dev_z` sigma offset, 0 = the VWAP itself); (3) a 90-bar (~15 day) time stop so capital is not parked in a reversion that never comes. Sizing risks 2% of equity at the ATR stop, hard-capped at 80% of equity notional.
Verification Results
Route to backtest-review for full multi-year evaluation (spanning bull regimes where anchored-dip-buying should profit); apply the 0.25% floor there. A 26-trade window is too small to declare the edge dead; abandon at backtest-review if the full history also shows sub-0.25%.
Verification Results
Sandbox is net-negative (total_return -8.5%, Sharpe -0.80, PF 0.62, win_rate 0.46, avg_trade_return_pct -0.328% over 26 trades), per-trade below the 0.25% spot floor. But this is NOT a structural fee-viability failure: turnover is low (21.5, avg hold 2.5 days) and individual reversion moves clear fees comfortably (avg_win ~2%, avg_loss ~2.7% of notional). The net loss comes from losers outweighing winners at a 46% win rate — a directional mean-reversion edge miss over a small (26-trade) single window, most plausibly a choppy/down BTC stretch where dip-buying caught falling knives. The mechanism can structurally clear the fee floor.
Verification Results
No change required; consider freezing the target VWAP at entry only if the optimizer shows premature exits hurting.
Verification Results
Design note (not a defect): the take-profit target is the CURRENT anchored VWAP, which evolves each bar and can jump mid-trade if a new lower swing low re-anchors the VWAP to a lower cost basis, lowering the target and possibly producing an earlier smaller-profit exit. Coherent with 'exit toward the anchored VWAP' (the anchor tracks structure), but the exit level is not frozen at entry.
Backtest Review
Correct venue routing (long-only/no-leverage → BINANCE_SPOT); clean anchored-VWAP construction with no look-ahead; only 3 tunables
Backtest Review
Adequate trade count (193) over a long 8-year sample — sample size is not the problem
Backtest Review
profit_factor 0.69 (< 1.0) — the strategy loses money; total_return -45.3% over 8 years
Backtest Review
avg_trade_return_pct NEGATIVE (-0.297%), below the 0.25% spot fee floor and wrong-signed; expectancy -$235/trade
Backtest Review
Sharpe -0.307 (CI [-0.89, 0.27]); probabilistic_sharpe 0.146 — no skill
Backtest Review
Negative in 7 of 9 years including a -25.8% 2022; max_drawdown 49.4% (CI high 78.2%)
Backtest Review
win_rate 46.6% with avg_loss > avg_win — the classic small-wins/large-losses mean-reversion failure
Backtest Review
Long-only mean-reversion dip-buying family (repeatedly dead here); the anchored-VWAP framing did not rescue it
Outcome Summary
This strategy adapted the popular anchored-VWAP-bands archetype from TradingView, absent from the factory's hypotheses: anchor a VWAP at each confirmed swing low and buy extreme negative deviations below it, on the theory that trading below the volume-weighted cost basis of recent participants is a structural reversion level rather than a naked oscillator reading. The construction was clean — correct spot venue routing, no look-ahead in the pivot confirmation, just three parameters — but the backtest falsified the premise decisively: profit factor 0.69, a -45.3% return over eight years, a negative per-trade edge below the fee floor, and the tell-tale small-wins/large-losses pattern, losing in 7 of 9 years. The analyst abandoned it at backtest review as a wrong-signed member of the repeatedly-dead long-only mean-reversion dip-buying family — the anchored-VWAP framing did not rescue it, buying dips inside downtrends that kept falling — with no edge anywhere in the parameter space to optimize toward.
Outcome Summary
Dressing up dip-buying with a more structural reference level (an anchored VWAP cost basis instead of a naked oscillator) does not create an edge — long-only crypto mean-reversion still buys extreme negative deviations inside downtrends that keep falling, producing the small-wins/large-losses signature and a wrong-signed per-trade return with no parameter region to tune toward.
Outcome Summary
It was abandoned at the BACKTEST_REVIEW gate under the rule against advancing when total return ≤ 0 or profit factor < 1.0: the premise was falsified — anchoring the VWAP at swing lows did not turn dip-buying into a structural cost-basis reversion, it just bought dips inside downtrends that kept falling. Because the per-trade return is negative (wrong-signed) rather than merely below the fee floor, no threshold or frequency change could help, so it never reached optimization or analysis.
Outcome Summary
A long-only, single-instrument spot mean-reversion strategy on BTCUSDT.BINANCE_SPOT that anchors a VWAP at each confirmed swing low and buys when price stretches to an extreme negative deviation band below that anchored VWAP (trading well below the volume-weighted cost basis of recent participants), scaling the exit back toward the VWAP with an ATR stop below entry, distilled from the TradingView anchored-VWAP-bands archetype.
Outcome Summary
It was a decisive net loser over an 8-year sample: profit factor 0.69, total return -45.3%, avg_trade_return_pct -0.297% (negative and below the 0.25% spot fee floor, expectancy -$235/trade), Sharpe -0.307 (CI [-0.89, 0.27]), max drawdown 49.4% across 193 trades. Win rate was 46.6% with avg loss ($1,407) exceeding avg win ($1,106) — the classic small-wins/large-losses mean-reversion failure — and it lost in 7 of 9 years (2022 -25.8%).
Backtest and paper results are hypothetical. Trading involves risk of loss.