AvaxWickRejectionExhaustionReversalLS
Hypotheses
AVAX Wick-Rejection Exhaustion Reversal, Long-Short (Single-Instrument AVAXUSDT.BINANCE USD-M Perp, 1h Bars OHLCV-Only, Fade a Statistically-Stretched Move ONLY When the Signal Bar Prints a Large Absorption Wick Against the Extension — TIGHT Stop Beyond the Wick / LARGER Reversion Target = Favorable Reward:Risk, 3-Parameter)
Hypotheses
A LONG-SHORT, single-instrument intraday-to-swing REVERSAL on AVAXUSDT.BINANCE (USD-M perp, 1h bars, OHLCV-only — no supplementary feed, the best-surviving tag family at 4%). This is deliberately engineered to AVOID the recurring inverted-reward:risk death that killed the recent single-name fade attempts (LINK Keltner-overshoot, DOGE/ADA VWAP fades all had avg_loss ≈ 2x avg_win: tiny TP, wide stop → win-often-lose-big → PF<1). The fix is structural: I only fade a stretched move when the CURRENT bar itself shows aggressive-flow ABSORPTION — a long rejection wick against the extension (buyers absorbed at a low → long; sellers absorbed at a high → short). That wick gives a genuinely TIGHT stop (just beyond the wick extreme) paired with a LARGER reversion target (back toward the short rolling mean), so reward:risk is ~2:1 in the correct direction rather than inverted. Distinct from every dead fade class: NOT a VWAP z-band always-on fade (needs a same-bar rejection signature), NOT a failed-breakout (no range structure or close-back-inside required), NOT taker-flow divergence (uses only OHLCV wick geometry, not the taker feed that died at -0.199%), NOT a breakout. Fills under-represented long_short (13.8%) and single-name-with-real-edge. Only 3 parameters (deviation z, wick-to-body ratio, target fraction); stop/target derived from volatility, not tuned — to resist the 248 overfit deaths.
Hypotheses
Iteration 2 fixes the critical Layer-4 defect (account liquidated, avg_position_pct 228.9%). Root cause was pyramiding: with GTC entries and any deferred fill the strategy could re-enter while exposure was still pending, stacking multiple ~1x positions to >2x equity, while each position_size call reset _bars_held and overwrote the bracket so the time-stop never fired. FIXES, all minimal and leaving the (already-passing) signal logic untouched: (1) added _has_exposure() and a flat-only guard as should_enter's first line -- it returns None if ANY position OR working order exists for the instrument, so exactly one entry can be live at a time and stacking is structurally impossible; with one entry per position the trade-state commit in position_size is now correct and the time-stop fires. (2) Lowered max_gross_frac 1.0->0.5 so the notional cap (the binding constraint given a tight wick-stop makes entry/stop_distance ~100x) keeps any single position well under 1x equity -- combined with the flat-only guard this makes liquidation structurally impossible. (3) Pinned config leverage=1.0 (no margin amplification; the sizing cap references equity directly, so leverage is intentionally unused and left at 1.0 per the gate). (4) Gave the wick-stop modestly more room (stop_buffer_atr 0.25->0.35, min_stop_atr 0.5->0.75) to reduce the intrabar blow-through that inflated realized losses (largest_loss was 4.3x avg_loss), improving the realized reward:risk toward the intended profile. Core entry_z/wick_ratio/target_fraction are unchanged, preserving trade frequency so the Layer-3 >=1-trade check stays green.
Hypotheses
Account liquidated (100% drawdown, -100% total return) on 2022-01-14 with negative per-trade expectancy across a decisive 3412-trade sample: avg_trade_return_pct -0.177% (below the fee floor), profit_factor 0.69, expectancy -$41.24/trade. Despite the hypothesis's 'favorable R:R' structural fix, the wick-rejection fade has no directional edge — a 36% win rate cannot overcome the modest avg_win $259 vs avg_loss $210, and the tight wick-stops gapped through on fast Jan-2022 moves (single days of -46%, -72%, -147%), so the flat-only guard + 0.5x notional cap failed to prevent the blow-up. The flattering sortino 4.57 / probabilistic_sharpe 0.93 are artifacts of extreme positive skew (44) and kurtosis 1952 before liquidation, not a real edge. This is the single-name reversal/fade class that has died repeatedly this session. Tuning entry_z/wick_ratio/target_fraction cannot flip negative expectancy or un-liquidate the account; it would only overfit the pre-blow-up window. Abandon per the >50% DD hard-abandon rule and the negative avg_trade_return_pct floor rather than spend 2 hours optimizing.
Implementation
Long-short OHLCV-only reversal on AVAXUSDT.BINANCE (1h). Fades a statistically-stretched move (close z-score vs a 20-bar rolling mean/std) ONLY when the same bar prints a large absorption/rejection wick against the extension: a long lower wick at a stretched-down extreme => buyers absorbed => LONG; a long upper wick at a stretched-up extreme => sellers absorbed => SHORT. The wick anchors a TIGHT ATR-floored stop just beyond the wick extreme, paired with a LARGER reversion target toward the rolling mean floored at rr_min x stop distance, for favourable reward:risk. Exits on stop, target, or a 24-bar time stop. Single position at a time; risk-based sizing hard-capped at 0.5x equity notional.
Verification Results
Verification failed (Layer 4 — QA review):
- THE STRATEGY LIQUIDATED THE ACCOUNT and its position sizing violated its own stated risk cap. Sandbox: total_return -100.0%, max_drawdown 100.0%, liquidated=TRUE (2026-06-03), avg_position_pct 228.9%. The developer's rationale claims positions are 'capped at 1x equity notional (no leverage) to prevent compounding blow-ups', but the average realized position is 2.3x equity and the account was wiped out -- so the risk control demonstrably does NOT work. position_size caps notional at equity*max_gross_frac (1x) PER CALL, so a single entry cannot reach 228%; the excess must come from stacking. The prime suspect: should_enter has NO flat-only guard (unlike the sibling strategies this session, which use `if self._open_position() is not None: return None`). If the base consults should_enter while a position is open, every qualifying bar adds another ~1x-equity entry (pyramiding), and each position_size call also RESETS self._bars_held = 0 and OVERWRITES self._stop_price/_target_price -- so the time-stop never fires and only the latest add's bracket is tracked, while notional stacks to 2x+ and liquidates. A strategy that blows up the account is a critical risk defect regardless of edge.
- The stop is not enforced intrabar, which compounds the sizing problem. should_exit only evaluates the stop/target against the bar's high/low once per bar (at close), so a bar that gaps or runs well beyond the tight (~0.5-1 ATR) wick stop realizes a loss far larger than the intended 1%-of-equity risk. The tails confirm this: largest_loss $3,878 is 4.3x avg_loss $894, return_kurtosis 312. On top of the over-sizing this accelerates the path to liquidation.
- Even setting the blow-up aside, the hypothesis's core promise -- a structurally favourable ~2:1 reward:risk (avg_win > avg_loss) via the wick-anchored tight stop and rr_min-floored target -- did NOT materialize: avg_win $993 vs avg_loss $894 (ratio 1.1, not 2:1), win_rate 0.37, profit_factor 0.64. So the design premise that fixed the inverted-RR fade death is not achieved in practice; the reversion target is being reached far less often than the (blown-through) stop.
Verification Results
Abandon at backtest_review rather than optimize -- the 66.5% drawdown and PF 0.71 over 581 trades are decisive, and re-tuning entry_z/wick_ratio/target_fraction cannot lift a 37% hit rate above the break-even for the realized 1.22:1 payoff without curve-fitting.
Verification Results
STRONG ABANDON RECOMMENDATION for the analyst (not a QA code fail). With the liquidation defect fixed, the now-correctly-risk-controlled backtest is a decisively negative, well-sampled edge: 581 trades, total_return -65.26%, max_drawdown 66.5% (past the ~50% hard-abandon threshold), Sharpe -0.24 (CI [-1.81, 1.39]), profit_factor 0.71, win_rate 0.37, avg_trade_return_pct -0.019%. The hypothesis's central fix -- a favourable ~2:1 reward:risk -- only PARTIALLY materialized: avg_win $760 > avg_loss $621 (1.22:1, not 2:1), but the 37% win rate is well below the ~45% needed to break even at that ratio, so expectancy stays negative. The wick-rejection fade has no fee-clearing edge on AVAX 1h.
Verification Results
If (against the abandon recommendation) this is iterated, submit the stop as a real stop_market (reduce-only) order so the intended ~1-ATR risk is enforced intrabar and the realized RR matches the design; but note this will not fix the sub-45% win rate.
Verification Results
The stop is still not enforced intrabar, which keeps the realized reward:risk worse than designed and contributes to the deep drawdown. should_exit only checks the stop/target against the bar's high/low once per bar, so a bar that runs past the tight wick stop realizes a loss far larger than intended: largest_loss $3,189 is 5.1x avg_loss $621, return_kurtosis 27. The developer widened stop_buffer_atr 0.25->0.35 and min_stop_atr 0.5->0.75 to reduce this, but the fat left tail persists. This is a design/execution characteristic (now bounded by the 0.5x notional cap so it no longer liquidates), not a blocking bug.
Backtest Review
Well-sampled (3412 trades) so the negative result is decisive
Backtest Review
Booking is sane (metrics_reliable=true); trade direction matches the contrarian-fade hypothesis (1766 long / 1646 short)
Backtest Review
Account LIQUIDATED 2022-01-14 (total_return -100%, max_drawdown 100%) — the flat-only guard + 0.5x notional cap failed to prevent blow-up when stops gapped through on -46%/-72%/-147% days
Backtest Review
avg_trade_return_pct -0.177% — negative per-trade expectancy, below the fee floor
Backtest Review
profit_factor 0.69, expectancy -$41.24/trade
Backtest Review
36% win rate too low: even with nominally favorable avg_win $259 > avg_loss $210, expectancy is deeply negative — the wick-rejection signal has no directional edge
Backtest Review
sortino 4.57 / probabilistic_sharpe 0.93 are artifacts of extreme skew (44) and kurtosis 1952 before the blow-up, not evidence of edge
Backtest Review
Single-name reversal/fade class that has died repeatedly; the 'favorable R:R' structural fix did not create an edge
Outcome Summary
AvaxWickRejectionExhaustionReversalLS tried to escape the inverted-reward:risk failures of prior single-name fades by only fading a stretched AVAX move when the same bar showed a large absorption wick, giving a tight stop and a larger reversion target for ~2:1 reward:risk. In a decisive 3,412-trade backtest it instead liquidated the account on 2022-01-14, posting -100% total return, 100% max drawdown, profit factor 0.69, a 36% win rate, and negative per-trade expectancy of -0.177%. The analyst abandoned it at the backtest-review gate under the >50% drawdown and negative avg_trade_return_pct rules, so the 3-phase optimization and all downstream stages were never run. The takeaway: engineering favorable reward:risk geometry did not manufacture a real edge, and the tight wick-stops gapped through on the fast January-2022 moves despite the flat-only guard and 0.5x notional cap.
Outcome Summary
A structurally favorable reward:risk ratio does not by itself create a directional edge, and tight wick-based stops can gap through on fast moves (single days of -46%/-72%/-147%), so the flat-only guard and 0.5x notional cap could not prevent liquidation.
Outcome Summary
It was abandoned at the pre-optimization backtest-review gate: the analyst returned an 'abandon' verdict citing the >50% drawdown hard-abandon rule and the negative avg_trade_return_pct floor, so optimization and later stages were never reached.
Outcome Summary
A long-short single-name reversal on AVAXUSDT 1h perps that faded statistically-stretched moves only when the signal bar printed a large absorption/rejection wick, using a tight wick-based stop paired with a larger reversion target to engineer a favorable ~2:1 reward:risk.
Outcome Summary
Across a decisive 3,412-trade sample the strategy lost -100% (account liquidated on 2022-01-14, 100% max drawdown) with negative per-trade expectancy of avg_trade_return_pct -0.177%, profit factor 0.69, a 36% win rate, and expectancy of -$41.24/trade. Nominally favorable avg_win ($259) vs avg_loss ($210) could not offset the low hit rate, and flattering sortino 4.57 / probabilistic_sharpe 0.93 were artifacts of extreme skew (44) and kurtosis (1952) before the blow-up.
Backtest and paper results are hypothetical. Trading involves risk of loss.