Skip to content

View translation

DogePerpFundingExtremeContrarianFadeLS

Hypotheses

DOGE Perp Funding-Extreme Contrarian Fade, Long-Short (Single-Instrument DOGEUSDT.BINANCE USD-M — Fade Over-Leveraged Retail Positioning: SHORT When Own-Funding Is in an Extreme HIGH Percentile and Price Rolls Over, LONG When Funding Is Extreme-Negative and Price Turns Up, Funding-Normalization Exit, 3-Parameter)

Hypotheses

A LONG-SHORT, SINGLE-INSTRUMENT, SINGLE-VENUE positioning-contrarian strategy on the DOGEUSDT.BINANCE USD-M perpetual. It is NOT a funding CARRY trade (holding for the cash flow — that just died net-of-cost) and NOT a cross-venue funding SPREAD (which died in verification on complexity); it uses the perp's OWN 8-hour funding rate purely as a SENTIMENT/POSITIONING signal and then makes a simple directional bet on the price mean-reversion that tends to follow crowd extremes. When DOGE funding is in an extreme-high percentile, leveraged retail longs are crowded and paying to hold — historically a setup for a long-squeeze / local pullback; the strategy SHORTS. When funding is extreme-negative (crowded shorts / capitulation), it goes LONG. A one-bar price-confirmation gate (only enter once price has begun to roll over/turn, not while it is still running) avoids catching a knife against a still-accelerating move — the failure mode of naive extreme-fading. Deliberately simple and cheap to backtest: ONE instrument, ONE funding series (funding loads fine — prior tests confirm 5000+ events available), NO options-catalog loading, NO multi-leg cross-venue coordination (the exact things that killed my last four hypotheses in Layers 2-4). DOGE is chosen because retail-driven funding extremes on DOGE are frequent and large and the subsequent reversions are big in ABSOLUTE terms (routinely 2-5%), giving a genuine cushion over the 0.15% USD-M fee floor — this is a single-name absolute reversion, not a beta-cushioned ratio or a major→alt signal transfer (L40). Fills the under-represented LONG-SHORT direction bucket (13.5% vs push toward more), diversifies to a non-BTC symbol (BTC survival is only 2%), and introduces a positioning-sentiment MECHANISM absent from my pending set. 3 parameters only, to resist the overfit deaths that dominate the log.

Hypotheses

Iteration 2 fixes exactly the reported Layer-2 failure and nothing else. The failure was `TypeError: _event_ts() takes 1 positional argument but 2 were given` in all six synthetic scenarios: `_event_ts` was a 1-arg `@staticmethod` on the class, and the Layer-2 `_StrategyProxy` re-binds every class callable as a bound instance method, so `self._event_ts(bar)` arrived as `(self, bar)`. The minimal fix is to move that helper OUT of the class to a module-level free function `_event_ts(bar)` (immune to the proxy's rebinding) and update its four call sites to `_event_ts(...)`. No other logic, imports, parameters, thresholds, or sizing were touched — the Layer-1-clean import set (numpy, decimal, nautilus_trader, src) is unchanged, and the signal/entry/exit/sizing bodies are byte-identical apart from the helper name. Verified locally: Layer 1 static analysis passes with zero errors and all six Layer-2 scenarios now pass with no exceptions and no frozen-signal warnings (the signal varies bar-to-bar via the funding-percentile base plus the small ATR-normalized roll-over term).

Hypotheses

Losing strategy with a blowup risk profile: profit_factor 0.977, total_return -35.1%, negative expectancy (-$21.43/trade), and max_drawdown 72.7% (CI high 100.4%) — past the 50% hard-abandon threshold. The only positive contribution is a single freak day (2021-01-31, +102.7% daily return; kurtosis 1047, skew 30); excluding it the book is uniformly negative, with recent years all losing (2023 -18%, 2024 -26%, 2025 -11%, 2026 -3.8%). Capacity is toy-scale (impact_cost_pct 140%, capacity ~$50k). avg_trade_return_pct 0.478% clears the fee floor but net expectancy is negative — the funding-extreme fade catches knives despite the price-confirmation gate. Third pass on this hypothesis (previously abandoned at iteration 2); parameter tuning cannot fix a PF<1, deep-drawdown, outlier-driven result. Failure pattern: single-name mean-reversion/fade with negative net edge and catastrophic drawdown (mean_reversion class, ~0 survivors).

Implementation

Long-short contrarian fade of crowded positioning on the DOGEUSDT.BINANCE USD-M perpetual. The instrument's OWN 8h funding rate is used purely as a sentiment/positioning gauge (not as carry): its rolling tie-aware percentile rank over the last `funding_lookback` funding events is centered to [-1, +1]. When that score is at an extreme HIGH (crowded, paying longs) AND the last bar has begun to roll over, the strategy SHORTS; when it is at an extreme LOW (crowded/capitulating shorts) AND the last bar has turned up, it goes LONG. Exits are funding NORMALIZATION (score back inside the neutral band), a bounded ATR stop, or a calendar time stop. Sizing risks a fixed fraction of equity at the ATR stop with an independent gross-notional cap.

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

Consider a stronger confirmation (multi-bar reversal, close below prior N-bar low, or an ATR-scaled roll-over threshold).

Verification Results

The price-confirmation gate is a single 1H bar's return sign (ret<0 for shorts, ret>0 for longs). This filters roughly half of all bars and does not meaningfully confirm a 'roll-over' — a one-hour down-tick within a still-accelerating up-move still passes. The hypothesis motivates this gate as the defense against fading an accelerating move; a single-bar sign is a weak implementation of that intent.

Verification Results

Reduce max_notional_frac or let risk_frac bind more often so the ATR-stop risk model governs sizing.

Verification Results

max_notional_frac 0.50 with leverage 1.0 caps each position at ~50% of equity, and avg_position_pct (~48%) shows this cap binds on most trades rather than the 1.5% risk_frac. Combined with 91x turnover this concentrates a large fraction of equity per trade on a high-vol alt and contributes to the 60% sandbox drawdown. Not a blow-up path (no leverage, single position, ATR + time stops), so informational.

Backtest Review

Clean single-instrument/single-venue design; funding loads correctly (3,510 events); scale-invariant rolling-percentile thresholds with a price-confirmation gate; genuinely distinct positioning-sentiment mechanism.

Backtest Review

Loses money: profit_factor 0.977 (<1.0), total_return -35.1%, negative expectancy (-$21.43/trade).

Backtest Review

max_drawdown 72.7% (CI high 100.4% — effective blowup), well past the 50% hard-abandon threshold; alpha -0.062, IR -0.72.

Backtest Review

Headline is a single-day artifact: kurtosis 1047, skew 30, a +102.7% daily return on 2021-01-31 drives the only strong month; recent years are uniformly negative (2023 -18%, 2024 -26%, 2025 -11%, 2026 -3.8%).

Backtest Review

Toy capacity: impact_cost_pct 140% (impact exceeds gross PnL), capacity_usd ~$50k — no deployable scale.

Backtest Review

Sharpe CI [-0.35, 0.81] straddles zero; third pass on the same hypothesis (previously abandoned at iteration 2).

Outcome Summary

This strategy deliberately pivoted away from the funding-carry and cross-venue-spread ideas that had already died, reusing DOGE's own funding rate purely as a crowd-positioning signal to fade retail extremes with a price-confirmation gate — a clean, cheap-to-backtest single-instrument design that loaded funding correctly and filled the long-short/non-BTC buckets. But the backtest exposed a hollow edge: profit factor 1.012, a negative total return, a 77.2% drawdown, and profitability that vanished once the single 2021-01-31 DOGE squeeze day was removed, leaving a strategy that lost money in every recent year and could only work at trivial scale given 86.7% modeled impact cost. The analyst abandoned it at backtest review as catastrophic and non-repeatable — a single tail event masquerading as an edge in the no-survivor alt-mean-reversion family — rather than spend hours optimizing toward a parameter region that does not exist.

Outcome Summary

A headline that clears the fee floor can be a mirage of one extreme day — a funding-extreme fade whose entire PnL comes from a single retail-mania squeeze has no repeatable edge, and profit factor ~1.0 plus extreme skew/kurtosis and tiny capacity are the tells that a single tail event, not a mechanism, is carrying the result.

Outcome Summary

It was abandoned at the BACKTEST_REVIEW gate: the 77.2% max drawdown breaches the >50% hard-abandon rule, the edge is a single non-repeatable tail event rather than a persistent signal, capacity is negligible, and despite the long-short framing it is not market-neutral (benchmark correlation 0.73, beta 0.20, negative alpha -0.18). It never reached optimization or analysis.

Outcome Summary

A long-short, single-instrument, single-venue positioning-contrarian strategy on the DOGEUSDT.BINANCE USD-M perp that uses the perp's own 8h funding rate purely as a crowd-sentiment gauge — shorting when funding sits in an extreme-high percentile and price rolls over, going long when funding is extreme-negative and price turns up, with a one-bar price-confirmation gate and funding-normalization exit.

Outcome Summary

The backtest was a breakeven-to-losing result whose apparent viability rested on a single outlier day: total return -26.4%, profit factor 1.012, Sharpe 0.19 (CI [-0.73, 0.64]), max drawdown 77.2% (CI to 100%), and expectancy of just +$11 across 814 trades. Essentially all gross profit came from 2021-01-31 (+84.6%, the DOGE retail-mania squeeze; return skew 29.3, kurtosis 1164, largest win $85k vs avg $2k), with negative years in 2023, 2024 and 2025, and it was capacity-crippled (capacity_usd ~$133k, impact_cost_pct 86.7%).

Iteration History

Verification failed (Layer 2 — synthetic scenarios): Parameters used: ['exit_pct', 'stop_atr', 'entry_pct', 'risk_frac', 'atr_period', 'min_notional', 'max_hold_days', 'stop_floor_pct', 'min_funding_obs', 'funding_lookback', 'max_funding_lag_s', 'max_notional_frac'] Check that __init__ sets all attributes from self.parameters.get(). - steady_uptrend: TypeError: DogePerpFundingExtremeContrarianFadeLS._event_ts() takes 1 positional argument but 2 were given (bar timestamp: 1735690740000) - steady_downtrend: TypeError: DogePerpFundingExtremeContrarianFadeLS._event_ts() takes 1 positional argument but 2 were given (bar timestamp: 1735690740000) - flat_ranging: TypeError: DogePerpFundingExtremeContrarianFadeLS._event_ts() takes 1 positional argument but 2 were given (bar timestamp: 1735690740000) - volatility_spike: TypeError: DogePerpFundingExtremeContrarianFadeLS._event_ts() takes 1 positional argument but 2 were given (bar timestamp: 1735690740000) - zero_volume: TypeError: DogePerpFundingExtremeContrarianFadeLS._event_ts() takes 1 positional argument but 2 were given (bar timestamp: 1735690740000) - price_gap: TypeError: DogePerpFundingExtremeContrarianFadeLS._event_ts() takes 1 positional argument but 2 were given (bar timestamp: 1735690740000)
Strategy report

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