Skip to content

View translation

BtcTrendPullbackContinuationLS

Hypotheses

BTC Trend-Pullback Continuation — Buy Dips WITHIN a Confirmed Uptrend (Better Entry Than Chasing Breakouts), Short Rallies Within Downtrends, Ride the Continuation With a Chandelier Trailing Stop (BINANCE USD-M, 4H Bars, Long-Short, Asymmetric, 3-Parameter)

Hypotheses

A LONG-SHORT, single-instrument BTC strategy that rides the ONE proven edge (asymmetric trend, let-winners-run) but through a DISTINCT ENTRY MECHANISM from every pending trend sleeve. The six pending trend sleeves all CHASE strength — Donchian breakouts, momentum-sign confluence, MA-regime flips, EMA crossovers. Chasing has a known weakness that directly feeds the fee_edge graveyard: you enter at the worst price (the extension), so the reward:risk per trade is compressed and the average trade grazes the fee floor. This sleeve instead uses a TREND-FILTER + PULLBACK ENTRY: it establishes the dominant trend with a slow EMA, then enters ON THE DIP — buying short-term weakness inside a confirmed uptrend (or shorting short-term strength inside a downtrend) — so the entry sits near support with a tight, well-defined stop and a much better reward:risk than a breakout entry. It is a hybrid (long-horizon trend alignment + short-horizon mean-reversion entry), mechanically different from pure breakout/momentum chasing and from the dead standalone mean-reversion fades (those had NO trend filter and faded the dominant direction; this fades only the counter-trend noise WITHIN the trend). Pure OHLCV, computationally TRIVIAL (two EMAs / a band + ATR, a few scalars per bar, no full-history rescans, no sorted()/min() in the hot path). Avoids every graveyard: NOT standalone reversion/pairs (dead), NOT funding (L57), NOT options (infra-broken), NOT a liquidation feed (L58), NOT a symbol-respray of one breakout template (L56 — different entry logic). Exactly 3 tunable parameters: trend EMA lookback, pullback-depth threshold, and chandelier ATR multiple.

Hypotheses

Implements the hypothesis exactly: slow-EMA trend filter plus counter-trend pullback entry plus chandelier trailing exit, long-short on BTC 4H, three tunables (trend_ema, pullback_atr, chandelier_atr) with every clamp mirrored in _param_bounds. It is genuinely a different entry mechanism from the pending breakout/momentum/MA-flip sleeves - it buys weakness inside strength rather than strength itself - and it is not the dead standalone-reversion family, because the trend filter means the dominant direction is never faded, only the counter-trend noise within it. The exact submitted code was dry-run bar-by-bar on real BTC 4H bars, 2019-12 to 2026-08, with a 0.10% round-trip taker charge: 418 trades (~63/yr, 72 in the last 365 days, 4 in the final 15 days), mean +1.22% NET per trade - roughly 8x the 0.15% fee floor and comfortably above the breakout sleeves' ~0.3-1.0% - 43.1% win rate with a +94.4% best trade against a -15.7% worst, and both legs work (long +1.44%/trade over 207 trades, short +1.00% over 211). The compounded equity path returns +103% with Sharpe 1.42 and a max drawdown of 7.3%; drawdown is small because vol-scaled risk sizing keeps average notional at only 0.14x equity, so the analyst should read the Sharpe rather than the headline return. Trade count clears the ~100-trade measurability floor by 4x, each walk-forward window gets ~140 trades and the holdout is densely populated - the failure mode that killed the weekly and daily sleeves does not apply here. Robustness: the per-trade edge is positive across the whole neighbourhood (trend_ema 50/100/200 -> +0.55/+0.68/+0.97%, pullback_atr 1.0/1.5/2.0 -> +0.96/+0.97/+1.06%, pullback_lookback 5/10/20/30 -> +1.01/+0.97/+0.88/+0.96%, chandelier 2.0-5.0 -> +0.35 to +1.90% with total PnL peaking near 3.0-3.5), i.e. a broad plateau with no cliff, and the hypothesis's central claim is visible in the numbers: the pullback entry earns roughly double the per-trade return of the breakout entries tested on the same instrument and timeframe. Honest caveat: 2025 is flat-to-slightly-negative (-0.08%/trade over 75 trades) while every other year is positive (2020 +1.51, 2021 +3.63, 2022 +1.04, 2023 +0.73, 2024 +1.23, 2026 +0.80), so the most recent full year is the weak spot and the recent walk-forward window is where this will be tested hardest. Venue is BINANCE USD-M futures (MARGIN) because the strategy shorts; leverage stays 1.0 and is deliberately not referenced in sizing.

Hypotheses

Overfit / no-generalization, not a fee problem. The HARD walk-forward gate fails: IS Sharpe 1.69 collapses to OOS 0.273 with is_overfitted=true, and the three OOS windows are inconsistent to the point of one being deeply negative (+0.56, +1.64, -1.38) — the edge is fit to specific windows, not a stable mechanism. Multiple-testing correction confirms it: deflated_sharpe 0.505 << 0.95, is_significant=false, and it fails programme-level FDR (keeps 3 of 229, candidate_survives=false). Optimization also DEGRADED the result vs the pre-opt run (Sharpe 1.11->0.95, PF 1.75->1.31) while tripling trade count — a curve-fit signature. Per the overfit-vs-dead-premise rule, high-IS/OOS-collapse is ABANDON not revise, because reframing the same trend-pullback mechanism onto another instrument just overfits again — and it already has, dying 0/5 across ETH, BTC-daily, BNB, ETH-HL and HL-BTC siblings. This was optimization attempt 2 of 2; there is no un-explored robust parameter region (sensitivity is flat ~0.55-0.87 everywhere) to tune toward. Failure pattern: overfit / no-generalization.

Implementation

Long-short trend-filtered PULLBACK continuation on BTCUSDT.BINANCE USD-M perp, 4-HOUR bars, pure OHLCV. Direction and timing are separated. Direction: a slow trend EMA (trend_ema) defines the regime - close above it means uptrend and only longs are allowed, close below means downtrend and only shorts. Timing: the strategy waits for a PULLBACK inside that regime rather than chasing the extension. Every bar it computes a continuous signed pullback depth in ATR units - in an uptrend signal = +(highest high of the last pullback_lookback bars - close) / ATR, in a downtrend signal = -(close - lowest low) / ATR - so the sign carries the trend direction and the magnitude is how far the counter-move has retraced (~0 when price rides the trend extreme, growing as it dips). Entry: BUY when signal >= pullback_atr (buy the dip inside the uptrend), SELL when signal <= -pullback_atr (short the rally inside the downtrend). Because the fill is near the pullback's support rather than at the breakout extension, the chandelier stop sits closer in price while the continuation target is unchanged, which raises reward:risk per trade instead of shaving it. Exit is asymmetric: NO take-profit, only a CHANDELIER trailing stop (highest high since entry minus chandelier_atr x ATR for longs, mirrored for shorts). Sizing is capital-relative: risk_frac (1%) of equity divided by the chandelier stop distance, capped at 1x equity notional (measured 0.14x average, 0.60x max), leverage 1.0. All state is incremental (one EMA recursion, Wilder ATR, two bounded deques) - a full 14,466-bar run takes 0.18s.

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.

Backtest Review

Sharpe 1.111 with CI [0.34, 1.79] not straddling zero, PSR 0.998 — a genuinely significant edge, well above the 0.4-0.7 trend graveyard

Backtest Review

Positive in all 7 years including the 2022 bear and the 2025-2026 holdout window — should clear the holdout gate

Backtest Review

Clean risk/economics: max_drawdown 9.4%, PF 1.75, Sortino 1.81, Calmar 1.63; avg_trade_return_pct 2.19% far above fees (commission 2.26% of gross)

Backtest Review

Asymmetric let-winners-run geometry (avg_win $3003 vs avg_loss $1206 at 41% win) — real trend capture, not fee-grazing

Backtest Review

172 trades (measurable), capacity_usd $559M (scalable), alpha +0.10, beta 0.028 — a true diversifier

Backtest Review

Base Sharpe 1.11 is the ceiling; DSR-deflation/PBO must be watched vs the ~1.5 promotion bar

Backtest Review

Shown config is optimizer-shaped (pullback_atr 0.29 near the shallow-entry edge, blurring toward breakout entry) — walk-forward must confirm a robust plateau, not a spike

Backtest Review

Weaker in the stressed-vol regime (Sharpe 0.19, +3.5%); information_ratio -0.71 vs buy-hold (expected for a low-vol diversifier, alpha positive)

Analysis

Per-trade economics clear costs: avg_trade_return_pct 1.00% >> the 0.15% USD-M fee floor, commission only 4.22% of gross — this is NOT a fee_edge death

Analysis

Sensitivity is clean (0 cliffs) and holdout is technically positive (Sharpe 0.713 on 64 trades, consistent_with_oos=true)

Analysis

No cliff parameters; risk metrics are contained on the optimized run (DD 12.4%)

Analysis

HARD gate failure: walk-forward is_overfitted=true — IS Sharpe 1.69 collapses to OOS 0.273, and the three OOS windows are wildly inconsistent (+0.56, +1.64, -1.38), i.e. the edge is window-specific noise not a stable mechanism

Analysis

Statistically insignificant after multiple-testing correction: deflated_sharpe 0.505 << 0.95, is_significant=false, Sharpe CI [0.20, 1.72] barely clears zero, and it does NOT survive programme-level FDR (Benjamini-Hochberg keeps 3 of 229; candidate_survives=false)

Analysis

Optimized headline degraded vs the pre-opt run (Sharpe 1.11 -> 0.95, PF 1.75 -> 1.31, trades 172 -> 465) — tuning added turnover and cost without lifting risk-adjusted return, a curve-fit signature

Analysis

Recent years are weak-to-negative (2025 annual -4.2%, 2026 +4.8%) and one full WF window is deeply negative

Analysis

This exact trend-pullback-continuation mechanism has now failed repeatedly across siblings: ETH (abandoned), BTC daily pullback (abandoned overfit), BNB (abandoned fee_edge), ETH-HL (abandoned overfit), HL-BTC (abandoned fee_edge) — 0 survivors

Analysis

Benjamini-Hochberg at q=0.10 over 229 programme candidates keeps 3. A candidate that does not survive here is not distinguishable from the programme's own noise, however good its individual statistics look.
Strategy report

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