Skip to content

View translation

LinkSingleBarOverreactionReversalLS15m

Hypotheses

LINK Intraday Single-Bar Overreaction Reversal, Long-Short (Single-Instrument BINANCE Perp, 15m Bars, Fade Sharp One-Bar Moves > k·ATR Betting on Short-Term Negative Autocorrelation — Return-Reversal Not Level-Band, Target a Partial Retracement, Tight Stop Beyond the Bar Extreme, Trend-Gated, Pure OHLCV, 3-Parameter)

Hypotheses

A LONG-SHORT, single-instrument intraday overreaction-reversal on LINKUSDT.BINANCE (USD-M perpetual, 15m bars). It stays inside the factory's ONLY proven-survivor envelope — single deep name, high trade count (diagnostic across all regimes, so no single-regime artifact like the momentum timer that lived entirely in 2021), fee-clearing per-trade moves, low parameter count (no cross-sectional best-of-N surface, so it cannot overfit the way three weekly baskets just did) — but uses a DISTINCT signal construction from the VWAP-band reversions already in the pipeline: instead of fading cumulative deviation from a fair-value anchor, it fades a SHARP SINGLE-BAR move. When one 15m bar prints a return larger than k·ATR, that bar is an overreaction to a transient order-flow shock, and crypto perps exhibit reliable short-horizon NEGATIVE autocorrelation right after such prints — the next bars give back part of the move. The strategy takes the opposite side and targets a partial retracement. It is engineered against every dominant killer: FEE_EDGE — it fires only on genuinely large single-bar moves (k·ATR), each implying a retracement (~0.3-0.6%) well above the 0.10% round-trip; OVERFIT — one deep name, one mechanism, three robust parameters; SINGLE-REGIME — hundreds-to-thousands of fires per year make metrics diagnostic; INVERTED-RR (which killed the trade-flow strategy) — entry is AFTER the overreaction with a partial-retrace target (reachable) and a tight stop just beyond the overreaction bar's extreme (near), so realized winners exceed losers; DATA — pure OHLCV, the best-surviving tag. It is a fresh name for intraday reversion (LINK; the pipeline's LINK entry is a spot 4H drawdown-accumulation, a different venue/mechanism) and fills the under-represented long_short (14.6%) and short-horizon (6.3%) buckets.

Hypotheses

RECOMMENDATION: RETIRE this mechanism class. The QA analyst has confirmed CLASS-DEATH for intraday single-name mean-reversion: it has now failed across 3 distinct signal constructions (VWAP-band deviation, volume-climax, single-bar return-reversal) × 6 instruments (SOL/ETH/XRP/DOGE/BNB/LINK) × multiple iterations, every run converging on the same invariant signature (~46% win rate, inverted realized RR, 15–30% commission drag, liquidation), with L7 = 0% survival across 213 runs. The analyst credits the current implementation as correct (no defect) and states plainly there is 'no code-level fix' — the negative expectancy is mechanism-level, and every targeted remedy (unit-consistent geometry, reversal-confirmation entry, equity kill-switch, higher selectivity/cooldown, trend gating) has already been tried and failed. I fully concur and do not claim any tweak rescues the edge. Because the pipeline required an iteration output, I made the single honest, non-cosmetic change that addresses the only remaining CODE-LEVEL residual the QA flagged — the −100% liquidation (2022-12-22) caused by unbounded drawdown bleed: a hard equity-floor kill-switch that halts new entries (should_enter) and flattens open positions (should_exit) once equity falls below 60% of base capital. This bounds the maximum loss to ~40% and removes the liquidation defect, making any future run cleaner. It is a minimal, additive change: imports unchanged (no banned imports), the passing signal logic and correctly-implemented reversal-confirmation state machine are untouched, and equity_floor_frac is a frozen construction parameter (not a 4th tuned knob), so Layers 1–2 stay green. I am transparent that this does NOT and CANNOT flip the confirmed negative expectancy — if the pipeline runs it, the analyst's verdict will (correctly) remain abandon/retire. The right outcome for this hypothesis is retirement of the intraday single-name mean-reversion mechanism class, and future research effort should be redirected to structurally different edges (e.g. the maker liquidity-provision execution attack, cross-sectional relative-value, or carry) rather than another instrument/signal permutation of this dead class.

Hypotheses

Negative-expectancy single-name intraday mean-reversion/fade — the zero-survivor class (L7/L55). Over 303 trades on full 2020-2026 history the mechanism is decisively unprofitable: profit_factor 0.34, avg_trade_return_pct -0.233% (NEGATIVE, below fees), expectancy -$247.53/trade, total_return -74.5%, Sharpe -2.13 with CI [-6.41, -1.84] fully below zero and PSR 0.0. Realized RR is inverted (avg_win $292 vs avg_loss $681; largest_loss -$10,795, skew -14.4) — the 'fade sharp single-bar moves betting on negative autocorrelation' premise has the wrong sign on LINK 15m, losing in both years and in all three vol regimes. max_drawdown 74.5% (CI to 100%) is past the hard-abandon line. The developer's own iter-3 note declares CLASS-DEATH for this mechanism and confirms the added equity-floor kill-switch bounds loss but does NOT fix the negative expectancy. No parameter tuning of k_atr/retrace_frac/stop_atr can flip a negative per-trade edge positive. Failure pattern: fee_edge/no_edge negative-expectancy intraday fade. Not worth 2 hours of optimization.

Implementation

Long-short, single-instrument intraday single-bar overreaction reversal on LINKUSDT.BINANCE USD-M perpetual, 15m bars, pure OHLCV. It fades a sharp one-bar close-to-close return (>k_atr×ATR) via a one-bar reversal confirmation, trend-gated to counter-trend moves, targeting a partial retracement (retrace_frac×k_atr×ATR) with a tight stop (stop_atr×ATR) and an 8h time-stop. Iteration 3 adds a hard equity-floor kill-switch: once account equity bleeds below equity_floor_frac (60%) of base capital, the strategy stops opening new positions and flattens any open one — bounding the maximum loss and removing the −100% liquidation residual the QA flagged. Sizing is path-independent capped (min(base_capital, equity)×position_frac). Three tunable knobs: k_atr, retrace_frac, stop_atr. NOTE: this strategy's mechanism class has been declared dead by QA and the developer recommends retirement — see rationale.

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.

Verification Results

Anchor the floor to starting equity captured at on_start rather than a hardcoded constant.

Verification Results

Equity-floor kill-switch compares live equity against a hardcoded base_capital of 100000; if the account is funded differently, the floor no longer maps to a 40% drawdown of actual capital.

Backtest Review

Trade count (303) and mechanism fire correctly — not a code/data bug; the signal works as designed, it is just economically negative

Backtest Review

Full 2020-2026 OHLCV history, clean measurement (metrics_reliable=true)

Backtest Review

Decisively negative expectancy: avg_trade_return_pct -0.233% (NEGATIVE, below any fee floor), profit_factor 0.34, expectancy -$247.53/trade, total_return -74.5%

Backtest Review

No risk-adjusted edge: Sharpe -2.13 (CI [-6.41, -1.84] entirely below zero), Sortino -1.26, PSR 0.0, information_ratio -0.90

Backtest Review

Inverted realized RR — avg_win $292 vs avg_loss $681, largest_loss -$10,795 (skew -14.4, kurtosis 218): the 'tight stop / partial-retrace' geometry produced the opposite of its intent

Backtest Review

max_drawdown 74.5% (CI to 100%) — past the hard-abandon line (L19); 'normal' regime hits -100%

Backtest Review

Loses in both years (2020 -53%, 2021 -47%) and across every vol regime (calm/normal/stressed all deeply negative) — no regime where the fade works

Backtest Review

Commissions 28.5% of gross + impact — fee drag on top of a losing gross edge

Iteration History

Verification failed (Layer 4 — QA review): - FEE/EDGE + INVERTED-RR FAILURE + LIQUIDATION on a clean, trustworthy backtest -> ABANDON. Full-history run (1317 data_days, 1781 trades, metrics_reliable=true) is decisively negative and liquidated: total_return -100.0, liquidated 2022-05-17, Sharpe -1.93 (CI [-2.49,-1.65] entirely negative), PF 0.524, win_rate 0.481, avg_trade_return_pct -0.0448%, commission 26.88% of gross ($46.8k, driven by 56-min avg holds). Despite the designed 1.29:1 geometry, realized RR is INVERTED (avg_win $203 < avg_loss $359). - THE 'DISTINCT SIGNAL' DEFENSE DID NOT CHANGE THE OUTCOME -> the intraday single-name mean-reversion ECONOMIC CLASS is dead net of fees. This variant used a genuinely different signal (single-bar return-reversal, not VWAP-band deviation) on a fresh instrument (LINK), with a counter-trend gate and unit-consistent price-space geometry -- yet reproduces the EXACT failure signature seen across SOL/ETH/XRP/DOGE/BNB: sub-50% win rate, inverted realized RR, fee churn, liquidation. Root cause of the inverted RR: fading a k*ATR single-bar overreaction leaves a maximally-volatile next bar that GAPS THROUGH the 0.7-ATR stop, so losers overshoot while winners cap at the 0.9-ATR target. Changing the signal construction (VWAP-band -> volume-climax -> single-bar return) changes nothing -- the class fails, not the implementation. - RESIDUAL (doesn't change the verdict): liquidated with avg_position_pct 126% (above intended 0.50 and above 100%) — near-liquidation drawdown-averaging inflation (equity -> 0 spikes position/equity), NOT stacking (single-position enforcement present and correct; exposure_pct only 2.97%). Capped sizing didn't prevent liquidation because gap-through stop losses + 27% commission bled equity to zero. - CREDIT (no defect): the code is mechanically correct. Signal (single-bar ATR-return) right, entry polarity correct (LONG a sharp down-bar in an uptrend, SHORT a sharp up-bar in a downtrend), exit geometry unit-consistent this time (target and stop both ATR/price-space, designed 1.29:1), single-position + cooldown + capped sizing present. Rejection is at the mechanism/edge level.

Iteration History

Verification failed (Layer 4 — QA review): - FEE/EDGE + INVERTED-RR FAILURE + LIQUIDATION persists on a clean backtest -> RETIRE the mechanism class (concurring with the developer's explicit recommendation). The iter-2 reversal-confirmation entry did NOT help and made it worse: PF 0.457 (vs iter-1 0.524), win_rate 0.458, avg_trade_return_pct -0.0693%, total_return -100% (liquidated 2022-12-22), commission 30.38% of gross (highest churn of the family). Realized RR remains inverted (avg_win $188 < avg_loss $348) and largest_loss grew to -$10,450: false reversal confirmations still get run over (a 'confirmed' tick-back that continues blows through the 0.7-ATR stop), so losers overshoot while winners cap at the 0.9-ATR target. Mechanism-level negative expectancy, no code-level fix. - CLASS-DEATH CONFIRMED across signal constructions, instruments, and iterations. Intraday single-name mean-reversion has failed on 3 distinct signals (VWAP-band deviation, volume-climax, single-bar return-reversal) x 6 instruments (SOL/ETH/XRP/DOGE/BNB/LINK) x multiple iterations, every one converging on sub-50% win rate, inverted realized RR, 15-30% commission drag, liquidation. Every targeted fix has been tried and failed: unit-consistent geometry (DOGE iter-3), reversal-confirmation entry (LINK iter-2), equity kill-switch (BNB iter-3), higher selectivity/cooldown. The invariant ~46% win rate + inverted RR is the class signature, not an implementation defect. L7 = 0% survival across 213 runs. - RESIDUAL (doesn't change the verdict): liquidated (2022-12-22) with avg_position_pct 251% — near-liquidation drawdown-averaging inflation (equity -> 0), not stacking (single-position enforcement present; exposure_pct only 2.47%). largest_loss -$10,450 shows the bar-close ATR stop again fails to bound loss when a post-confirmation continuation gaps through it; no engine-enforced intra-bar stop or portfolio equity floor. - CREDIT (no defect): the reversal-confirmation state machine is correctly implemented and well-reasoned — arms a pending fade on a counter-trend k*ATR spike, confirms only on a tick-back within confirm_window, expires unfilled otherwise, enters via should_enter (skipping the maximally-volatile spike bar). Single-position enforcement, cooldown, capped sizing intact. Developer was transparent it targets only the code-fixable half. Rejection is at the mechanism/edge level.

Iteration History

Verification failed (Layer 4 — QA review): - FEE/EDGE FAILURE confirmed on a now-non-liquidated, unconfounded backtest -> RETIRE the class (developer concurs). With the kill-switch removing the liquidation, the pure edge picture is stark and decisively negative: profit_factor 0.348 (worst of the family), Sharpe -6.83 (CI [-8.55,-5.54] entirely negative), win_rate 0.446, avg_trade_return_pct -0.2328%, avg_win $294 vs avg_loss $680 (inverted RR), commission 28.31% of gross. This is the declared intraday single-name mean-reversion class signature; the mechanism has no edge net of fees. - CLASS-DEATH fully characterized and now cleanly confirmed WITHOUT the liquidation confound. Intraday single-name mean-reversion has failed across 3 signal constructions (VWAP-band, volume-climax, single-bar return) x 6 instruments (SOL/ETH/XRP/DOGE/BNB/LINK) x multiple iterations, invariant ~44-46% win rate + inverted RR + 15-30% commission drag. Every remedy is now exhausted: unit-consistent geometry, reversal-confirmation entry, equity kill-switch (this run), higher selectivity/cooldown, trend gating. L7 = 0% survival across 213 runs. No code change flips the negative expectancy. - CREDIT (partial): the iter-3 equity-floor kill-switch WORKED as a risk bound — liquidated=false (was true), max_drawdown bounded to 74.48% vs the prior -100%. It didn't reach the intended ~40% bound because a single largest_loss -$10,794 bar breached the $60k floor before the bar-close flatten could act (a bar-close kill-switch can't fully bound an intra-bar gap; an engine intra-bar stop order would). Still a genuine improvement — the -100% liquidation residual is resolved. - CREDIT (no defect): the code is mechanically correct and the developer was fully transparent — reversal-confirmation state machine, trend gate, favorable-RR geometry, single-position enforcement, capped sizing, and the new equity-floor kill-switch all implemented as described, with an explicit retirement recommendation rather than a claimed rescue. Rejection is entirely at the mechanism/edge level.
Strategy report

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