Strategies
AVAX Hyperliquid Perpetual 1H Vol-Expansion-with-Pullback Long-Short (Delayed-Entry Variant of the Failed LINK ATR-Expansion Pattern)
Outcome: Abandoned
AvaxHyperliquidVolExpansionPullbackLongShort
Mechanism fires correctly and produces an adequate sample (183 trades over 308 days) — not a code/data bug
Hypothesis
Implements the delayed-entry redesign explicitly recommended in the LINK 4H ATR-expansion postmortem: decouple regime detection (high-signal: confirmed vol cluster) from entry timing (favorable price after a fade). calculate_signal runs a per-bar state machine that arms a directional pending setup on each expansion bar and, on subsequent bars within the wait window, checks whether price has faded to the midpoint-based target; the entry then fires in the expansion direction. The returned signal is the continuous signed expansion ratio (TR/avgTR) so it varies every bar, while the binary entry decision is gated in should_enter via the armed-state flag. Routed to the HYPERLIQUID futures venue because the strategy is genuinely long-short (requires shorting). 1H bars target ~60-120 trades/year for healthier walk-forward sample sizes. Zero supplementary-data dependency and single-instrument design keep verification clean and avoid the COIN-M dynamic-instrument and multi-instrument P&L failure modes.
Negative-expectancy single-name vol-expansion long-short — no edge to optimize. PF 0.49, total_return -68.6%, expectancy -$377/trade, avg_trade_return_pct -0.0083% (negative, below the 0.15% Hyperliquid fee floor, L22), and max_drawdown 73.9% (past the 50% hard-abandon line, L19). Losing in every year (2025 -21.4%, 2026 -60.6%) and 9 of 12 months; both long and short legs lose (~44% win rate each). This is the explicit delayed-entry/pullback redesign of the already-failed LINK ATR-expansion pattern, and the fix did not create an edge — it still enters into continuing moves in both directions. The sign of the per-trade edge is negative, which no parameter tuning can flip; single-name OHLCV directional vol-expansion is a zero-survivor class. Not worth 2 hours of optimization. Failure pattern: fee_edge/no_edge net-loser directional breakout.
Implementation
Single-instrument long-short delayed-entry volatility-expansion strategy on AVAXUSD.HYPERLIQUID 1-hour bars. A bar whose true range exceeds 2x its trailing 20-bar average TR flags a vol-regime change and is tagged by direction (bullish/bearish) and midpoint. Rather than chasing the expansion (the empirically-failed mode that buys the local extreme), the strategy waits up to 4 hours for price to pull back toward the expansion bar's midpoint, then enters in the expansion direction at a better price. Exits use ATR-multiple stop (2x) / take-profit (3x) scaled by the average true range, plus a 24-bar max-hold time stop. Positions sized at 50% of account equity.
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.
Add `if self.cache.positions_open(instrument_id=self.instrument_id): return None` at the top of should_enter, matching codebase convention.
should_enter does NOT guard against an already-open position (returns BUY/SELL purely on _entry_ready), unlike every sibling strategy which checks positions_open. If the base calls should_enter while in a position, a fresh setup would STACK a second leg. avg_position_pct 86.6% vs target_weight 0.50 is consistent with either stacking (if base doesn't gate to flat-only) or deep-loss mark-to-market. Add the guard defensively.
Snapshot ATR at entry and hold stop/TP distances fixed for the trade's life.
ATR stop/TP use self._last_avg_tr (current trailing ATR recomputed each bar), not the ATR at entry. Since entries occur right after a 2x-TR expansion, the trailing ATR is elevated/rising, so the stop distance widens after entry — the mechanical cause of avg_loss > avg_win and the deep drawdown. Matches the 'vol-scaled' description but is why risk control fails.
Backtest Review
- Sharpe
- -0.39
- Total return
- -68.56%
- Max drawdown
- 73.94%
- Trades
- 183
- Win rate
- 44.3%
- Profit factor
- 0.49
Mechanism fires correctly and produces an adequate sample (183 trades over 308 days) — not a code/data bug
Single-instrument, zero supplementary-data dependency, clean verification
Negative expectancy: profit_factor 0.49, total_return -68.6%, expectancy -$377/trade
avg_trade_return_pct -0.0083% — negative and far below the 0.15% Hyperliquid fee floor (L22)
max_drawdown 73.9% (CI to 100%) — past the 50% hard-abandon threshold (L19)
Losing in every year and 9 of 12 months; Sharpe -0.39 with CI straddling deep negative
Both directions lose (long win 46%, short win 43%) — the delayed-entry pullback redesign of the failed LINK ATR-expansion pattern still catches knives
Single-name OHLCV directional vol-expansion — a zero-survivor class
Iteration History
data_unavailable: backtest data for AVAXUSD.HYPERLIQUID could not be collected after 5 retries: - bars (bar_type=AVAXUSD.HYPERLIQUID-1-HOUR-LAST-EXTERNAL): got 0, needed 200, or 30+ days span The data layer (not the strategy) is the blocker — re-evaluate this hypothesis once collection is fixed / the symbol is backfilled.
Backtest and paper results are hypothetical. Trading involves risk of loss.