Strategies
DOGE Spot-Perp Basis Dislocation Convergence, Market-Neutral (Cross-Venue BINANCE_SPOT Long + BINANCE USD-M Perp Short, 15m Bars, Fade LARGE Retail-Squeeze Perp Premiums, Funding-Tailwind, Pure-OHLCV Low-Parameter)
Outcome: Abandoned
DogeSpotPerpBasisDislocationConvergenceNeutral15m
Code↔hypothesis misalignment found by the semantic auditor — the code does NOT implement the hypothesis. Re-code the strategy to implement the hypothesis EXACTLY (instrument, timeframe, direction, the named…
Hypothesis
Negative expectancy on a reliable 360-trade sample with the core premise measurably absent. The hypothesis depends on '60-200+ bps' DOGE perp-over-spot dislocations, but on the only overlapping 15m spot history (from 2026-05-07) the basis has ~1.5 bps dispersion and a lone +17 bps tail — 10-20x below the ~0.30% combined spot+perp round-trip. Result: avg_trade_return_pct 0.013% (near zero, far below the fee floor), profit_factor 0.055, total_return -34.7%, Sharpe -1.08 (CI fully negative), commission 518% of gross, and an adverse R:R (avg_loss 312 vs avg_win 32, skew -8.9). The z-score gate fires on ~3 bps relative deviations that cannot clear costs, so there is no positive gross edge for optimization to tune toward — the 4 knobs (entry_z/exit_z/basis_window/max_hold_bars) have no region that turns a PF-0.055 signal positive. QA's fee-nonviability concern is confirmed on full history. Not worth 2 hours of optimization. abandon_class=negative_expectancy (premise falsified: the large-dislocation edge does not exist in the data).
Implementation
Market-neutral cross-venue convergence pair on DOGE: LONG DOGEUSDT.BINANCE_SPOT + dollar-matched SHORT DOGEUSDT.BINANCE USD-M perp on 15m bars, opened when the perp-over-spot basis (bps) is rich versus its own 24h rolling regime (z >= entry_z) and closed on reversion (z <= exit_z) or a 24h timeout. Pure OHLCV, O(window) per bar, four tunables. Naked legs are flattened immediately so the book is never directionally exposed.
Verification Results
Acceptable as a mean-reverting basis-convergence implementation. If strict fidelity to the 'perp premium' wording is required, add a floor requiring basis>0 (perp actually rich) in addition to the z-gate; but note the data shows this almost never occurs, which is itself the edge finding.
The hypothesis specifies entering 'only when the PERP trades at a LARGE premium to SPOT' (absolute perp premium, claimed 60-200+ bps). The code instead gates on a rolling z-score of the basis vs its own recent mean. Given the measured ~-5 bps structural basis offset, a z>=entry_z entry can trigger while the perp is at a small discount to spot, not a premium. This is a reasonable, scale-invariant convergence gate and still fades basis dislocation, but it is a relative-regime deviation rather than the absolute-premium edge the hypothesis literally names.
Carried as edge_concern for the analyst. No code change makes a 1.5 bps dislocation clear a 30 bps fee; the honest outcome is likely abandon at backtest_review.
Per-trade edge (~1.5 bps dispersion) is roughly 20x below the ~30 bps combined spot+perp round-trip cost; 356 trades in the sandbox confirm negative expectancy. Advisory only — this is a performance result decided at backtest, not a code defect.
Backtest Review
- Sharpe
- -1.08
- Total return
- -34.69%
- Max drawdown
- 34.69%
- Trades
- 360
- Win rate
- 34.7%
- Profit factor
- 0.05
Reliable, measured terminal result: 360 trades over the ~120-day spot-perp overlap, both legs read from contemporaneous bars (no stale-leg artifact), so this is a genuine test of the mechanism rather than a zero-trade or data-wall stall.
Market-neutral construction is sound and the code is O(1) per bar.
Premise falsified: the hypothesized '60-200+ bps' DOGE spot-perp dislocations do not exist in the only overlapping 15m data — basis dispersion is ~1.5 bps with a single +17 bps tail, 10-20x smaller than the ~0.30% combined round-trip cost.
Negative expectancy on a reliable sample: avg_trade_return_pct 0.013% (well below the 0.15%/0.25% floor and near zero), profit_factor 0.055, total_return -34.7%, Sharpe -1.08 (CI [-3.23, -1.00], entirely negative), expectancy -$193/trade.
commission_pct_of_gross 517.9% and total_impact 50k+ — fees/impact dwarf the tiny gross edge; z-score gate fires on ~3 bps relative deviations that cannot clear cost.
Structural R:R adverse: avg_loss 312 vs avg_win 32, return_skew -8.9, kurtosis 81 — a few large convergence-failure losses erase the many tiny wins.
Only ~120 days of usable spot 15m history; the perp's 6-year history is irrelevant since the spot leg gates every bar.
Analysis
Iteration History
Verification failed (Layer 3 — sandbox backtest): No trades produced Bar type used: DOGEUSDT.BINANCE-15-MINUTE-LAST-EXTERNAL, Bars processed: 210972 Diagnostics: should_enter() returned a side 0 times over 3168 evaluated bars -> your ENTRY CONDITION never triggered. Loosen the entry logic / thresholds. Ensure your strategy produces trades with the given data and parameters.
Verification failed (Layer 3 — sandbox backtest): No trades produced Bar type used: DOGEUSDT.BINANCE-15-MINUTE-LAST-EXTERNAL, Bars processed: 211068 Diagnostics: should_enter() returned a side 0 times over 3264 evaluated bars -> your ENTRY CONDITION never triggered. Loosen the entry logic / thresholds. Ensure your strategy produces trades with the given data and parameters.
Verification failed (Layer 3 — sandbox backtest): No trades produced Bar type used: DOGEUSDT.BINANCE-15-MINUTE-LAST-EXTERNAL, Bars processed: 19756 Diagnostics: should_enter() returned a side 0 times over 10176 evaluated bars -> your ENTRY CONDITION never triggered. Loosen the entry logic / thresholds. Ensure your strategy produces trades with the given data and parameters.
Backtest and paper results are hypothetical. Trading involves risk of loss.