Strategies
Open-Interest-Confirmed Positioning-Shift Swing (BINANCE_CM Inverse Perp BTCUSD_PERP — Take a Directional Swing ONLY When a Price Move Is Backed by RISING Open Interest = New Conviction Money; Stand Aside on Deleveraging Moves Where OI Is Falling; Exit When OI Rolls Over, 3-Parameter)
Outcome: Abandoned
BtcCmOpenInterestConfirmedSwingLS
Outcome Summary
BtcCmOpenInterestConfirmedSwingLS aimed to use open interest — an orthogonal positioning feed — to distinguish conviction-backed moves (rising OI, tradeable) from deleveraging whipsaws (falling OI, stand aside) on the under-represented BTC COIN-M venue. Across three iterations it fought the OI data layer: a prior run took zero entries over 17,442 bars because the OI series was never built or matched, prompting broad parser and staleness fixes. The final iteration then failed even more basically at Layer 1 config validation — instrument_id and bar_type were both None — so the strategy could not be instantiated. It was abandoned in the verification loop without ever producing a backtest, verification pass, optimization, or analysis.
Hypothesis
verification_loop: Verification failed (Layer 1 — config): config.instrument_id and config.bar_type are REQUIRED (got instrument_id=None, bar_type=None). Set both to the hypothesis's instrument, e.g. instrument_id='BTCUSDT.BINANCE', bar_type='BTCUSDT.BINANCE-4-HOUR-LAST-EXTERNAL'.
Verification Results
Verification failed (Layer 1 — config): config.instrument_id and config.bar_type are REQUIRED (got instrument_id=None, bar_type=None). Set both to the hypothesis's instrument, e.g. instrument_id='BTCUSDT.BINANCE', bar_type='BTCUSDT.BINANCE-4-HOUR-LAST-EXTERNAL'.
Iteration History
Verification failed (Layer 3 — sandbox backtest): No trades produced Bar type used: BTCUSD_PERP.BINANCE_CM-1-HOUR-LAST-EXTERNAL, Bars processed: 17470 Diagnostics: should_enter() returned a side 0 times over 17442 evaluated bars -> your ENTRY CONDITION never triggered. Loosen the entry logic / thresholds. Ensure your strategy produces trades with the given data and parameters.
Outcome Summary
Basic configuration correctness is a gating prerequisite — an OI-driven edge (or any edge) is never evaluated if config.instrument_id/bar_type are unset and Layer 1 rejects the strategy; and repeated OI-feed plumbing failures across iterations signal a data-availability wall that should be confirmed before further threshold tuning.
It was abandoned in a verification loop: the final iteration failed Layer 1 (config) because the required config.instrument_id and config.bar_type were both None, so the strategy could not even be instantiated — let alone reach synthetic tests, the sandbox backtest, QA, or any downstream stage. Combined with the prior zero-entry OI-data problems across three iterations, the run never generated a valid backtest.
A long-short, single-instrument, single-venue swing strategy on the BTC COIN-M inverse perp (BTCUSD_PERP.BINANCE_CM, 1H) that gated entries on open interest as an orthogonal positioning feed — taking a directional swing only when a price move was backed by rising OI (new conviction money), standing flat during falling-OI deleveraging moves, and exiting when OI rolled over from its peak, with an ATR stop and time cap.
No performance data exists — the strategy never produced a backtest. Earlier iterations struggled at the OI-plumbing level (iteration 3 was fixing a 'should_enter returned a side 0 times over 17,442 bars' failure caused by the OI series never being built/matched), and the final run failed even earlier at Layer 1 config validation.
Backtest and paper results are hypothetical. Trading involves risk of loss.