Skip to content

View original

SolOpenInterestConfirmedTrendLS

Hypotheses

SOL Perp Open-Interest-Confirmed Trend (Single-Instrument USD-M, Long-Short, 2H, Conviction-Gated by Rising OI, Flat on Deleveraging)

Hypotheses

A long-SHORT, SINGLE-INSTRUMENT, single-venue directional strategy on SOLUSDT.BINANCE USD-M perpetual futures using 2-HOUR bars, that takes a directional position ONLY when the price trend is CONFIRMED by RISING open interest. The mechanism mirrors the structure of the promoted ETH funding-confirmed trend (a crypto-native signal used as a directional confirmation on a single price-creditable leg) but deliberately swaps BOTH the signal (open-interest change instead of funding) AND the asset (SOL instead of ETH), so it is portfolio-ADDITIVE rather than a duplicate of the existing USD-M funding/TSM family. Core thesis: a price move accompanied by RISING aggregate open interest reflects NEW capital entering and taking conviction (genuine trend continuation), whereas a price move on FALLING OI reflects position unwinding / short-covering / long-liquidation (an unreliable, often-exhausting move). The strategy therefore goes long uptrends and short downtrends ONLY while OI is expanding, and stands flat when OI is contracting or when price-trend and OI disagree. CRITICAL DESIGN NOTES separating this from the closed families: (1) it is a SINGLE creditable price leg — no delta-neutral pair, no funding/basis CARRY (funding is never booked as a cash flow here); (2) OI is a SIGNAL only, exactly the role the meta-guidance says crypto-native data can validly play; (3) it is NOT cross-venue, NOT spot-perp basis, NOT COIN-M, NOT tick-driven; (4) the trend gate fires CONTINUOUSLY across every trending stretch (not on rare deep-drawdown events), so walk-forward OOS windows are densely populated — the opposite of the OOS-all-zero event-sparsity signature that killed every drawdown-accumulation variant. Intentionally minimal: 3 tunables (trend_lookback, oi_lookback, oi_rise_threshold) to resist overfitting.

Hypotheses

The reported Layer-2 (synthetic) failure was 'SolOpenInterestConfirmedTrendLS._to_ns() takes 1 positional argument but 2 were given': _to_ns was declared @staticmethod but is invoked as self._to_ns(...), and the verification proxy rebinds strategy helpers as instance methods passing self, so the 1-arg staticmethod received 2 args. The primary fix converts _to_ns to an instance method (drop @staticmethod, add self); the call sites already use self._to_ns(...), so nothing else needs to change for Layer 2. I also pre-empted the well-established next blocker (Layer-3 OI data coverage): the standalone supplementary_data['open_interest'] source only spans ~2 months, which would cluster all trades in 2026 and produce an empty walk-forward, but the metrics stream archives the same open_interest/open_interest_value field back to ~listing. _build_oi now merges rows from BOTH 'open_interest' and 'metrics' (de-duplicated by timestamp, using the existing OI value-key and magnitude-based timestamp parsing, with 'create_time' added to the timestamp keys), and references 'metrics' so the code-aware supp loader delivers it. Both changes are confined to the OI loader and helper; the trend/OI-change signal, rising-OI confirmation entry gate, trend-reversal / OI-deleveraging / stop / max-hold exits, the continuous trend-return signal, and capital-relative sizing are byte-identical, so the passing Layer-1 checks and signal logic are preserved and the no-price-fallback fail-loud design is retained. leverage stays 1.0 (single directional leg, no amplification) so the unused-leverage gate does not apply.

Hypotheses

Open-interest-confirmed trend on SOL produces essentially NO edge: Sharpe 0.077, CAGR +1.0%, profit_factor 1.038, expectancy +$6.7/trade — statistical break-even with a Sharpe CI straddling 0 (-1.23 to +1.20). The hypothesis explicitly transplants the promoted ETH FUNDING-confirmed trend (Sharpe 2.74) by swapping both the signal (rising OI instead of funding) and the asset (SOL instead of ETH); the result shows that rising open interest does NOT confirm SOL price trends the way funding confirmed ETH trends — the aggregate is a wash (2023 +22% offset by 2021 -7% and 2022 -14%, with 2024/2025 ~flat and 2026 negative). Because the edge is so thin, the strategy has a microscopic capacity (capacity_usd $477k, impact_cost_pct 45.78%): it is deployable only at toy scale, defeating its stated 'portfolio-additive' purpose and constituting a structural promotion blocker on its own. Not optimize: from a Sharpe-0.077 / PF-1.038 base, tuning the 3 params (trend_lookback/oi_lookback/oi_rise_threshold) is best-of-N noise that will not survive the downstream deflated-Sharpe gate, and even a successful optimization cannot clear the <$500k capacity wall. Not iterate: the accounting is clean (exposure 21%, no over-exposure bug) and it fires densely (708 trades), so there is no code defect and no specific parameter change that converts a break-even signal into a robust one — the OI-confirmation premise itself is what underperformed. FAILURE PATTERN: the funding-confirmed-trend mechanism does NOT generalize when you swap the confirming signal to open-interest change AND the asset to SOL — rising-OI confirmation yields a near-zero-Sharpe, break-even result whose thin edge collapses capacity to toy scale (sub-$500k, ~46% impact drag). A clean, densely-firing implementation of a promoted mechanism on a new signal/asset is not evidence of an edge; this OI-on-SOL transfer has none, distinguishing it from the genuine-edge BTC funding-confirmed sibling (PF 1.41) that was sent to optimize.

Implementation

Long-short single-instrument SOLUSDT.BINANCE USD-M 2-hour open-interest-confirmed trend strategy. It goes long an uptrend / short a downtrend ONLY while aggregate open interest is rising (OI change over the trailing 12 bars >= 2%), interpreting rising OI as new conviction capital and standing flat when OI is contracting (deleveraging). It exits on trend reversal, OI ceasing to expand, a 5% stop, or a 36-bar max hold. Open interest is a directional signal only, never booked as cash flow. Iteration 2 fixes the Layer-2 staticmethod TypeError (_to_ns made an instance method) and reads OI from BOTH the open_interest and metrics supplementary streams (merged, de-duplicated) so the backtest spans the full SOL history rather than the ~2-month standalone OI window. Three tunables: trend_lookback, oi_lookback, oi_rise_threshold.

Verification Results

Verification failed (Layer 2 — synthetic scenarios): Parameters used: ['oi_lookback', 'min_notional', 'position_pct', 'stop_loss_pct', 'trend_lookback', 'max_holding_bars', 'oi_rise_threshold'] Check that __init__ sets all attributes from self.parameters.get(). - steady_uptrend: TypeError: SolOpenInterestConfirmedTrendLS._to_ns() takes 1 positional argument but 2 were given (bar timestamp: 1735690380000) - steady_downtrend: TypeError: SolOpenInterestConfirmedTrendLS._to_ns() takes 1 positional argument but 2 were given (bar timestamp: 1735690380000) - flat_ranging: TypeError: SolOpenInterestConfirmedTrendLS._to_ns() takes 1 positional argument but 2 were given (bar timestamp: 1735690380000) - volatility_spike: TypeError: SolOpenInterestConfirmedTrendLS._to_ns() takes 1 positional argument but 2 were given (bar timestamp: 1735690380000) - zero_volume: TypeError: SolOpenInterestConfirmedTrendLS._to_ns() takes 1 positional argument but 2 were given (bar timestamp: 1735690380000) - price_gap: TypeError: SolOpenInterestConfirmedTrendLS._to_ns() takes 1 positional argument but 2 were given (bar timestamp: 1735690380000)

Backtest Review

Clean single-instrument mechanics: exposure 21%, avg_position 15.5%, no over-exposure/accounting artifact; OI used as signal only (never miscredited)

Backtest Review

Fires densely (708 trades over ~4.5 years), so the near-zero result is statistically meaningful, not sparsity noise

Backtest Review

Max drawdown a modest 20.7% — risk is controlled (because the strategy barely takes risk/edge)

Backtest Review

Near-zero edge: Sharpe 0.077, CAGR +1.0%, profit_factor 1.038, expectancy +$6.7/trade — statistical break-even, Sharpe CI straddles 0 (-1.23 to +1.20)

Backtest Review

Microscopic capacity: capacity_usd $477k with impact_cost_pct 45.78% — deployable only at toy scale, defeating the 'portfolio-additive' purpose

Backtest Review

OI-confirmation transfer failed: mirrors the promoted ETH funding-confirmed trend (Sharpe 2.74) but rising-OI does not confirm SOL trends — aggregate is a wash (2023 +22% offset by 2021 -7% / 2022 -14%, 2024/2025 ~flat, 2026 negative)

Backtest Review

Marginal edge means optimization from this base is best-of-N noise unlikely to survive deflated Sharpe

Backtest Review

>0 meaningfully

Backtest Review

deployable (>~$10M)

Outcome Summary

SolOpenInterestConfirmedTrendLS mirrored the structure of the factory's promoted ETH funding-confirmed trend but swapped both the signal (rising open interest for funding) and the asset (SOL for ETH), trading SOL trends only while OI was expanding on the thesis that rising OI marks conviction-backed continuation. The implementation was clean and dense (708 trades, 21% exposure, OI used purely as a signal with no accounting artifact), but the OI-confirmation premise simply did not hold: Sharpe 0.077, profit factor 1.038, a CAGR of +1.0%, and a confidence interval through zero — a statistical break-even — with the aggregate a wash across years. Worse, the thin edge collapsed capacity to $477k against 46% impact, defeating its portfolio-additive purpose. The analyst abandoned it at the backtest-review gate on its second iteration, concluding that a clean densely-firing transplant of a promoted mechanism is not evidence of an edge, and that rising-OI-on-SOL confirmation has none — unlike the genuine-edge BTC funding-confirmed sibling that advanced to optimization.

Outcome Summary

The funding-confirmed-trend mechanism does NOT generalize when you swap the confirming signal to open-interest change AND the asset to SOL — a clean, densely-firing implementation of a promoted mechanism on a new signal/asset is not evidence of an edge; rising-OI confirmation yields a near-zero-Sharpe break-even result whose thinness collapses deployable capacity to toy scale, distinguishing it from the genuine-edge BTC funding-confirmed sibling that was sent to optimize.

Outcome Summary

On its second and final iteration the analyst issued an 'abandon' verdict at the pre-optimization backtest-review gate, so optimization, analysis, and risk review never ran: rising open interest does NOT confirm SOL price trends the way funding confirmed ETH trends, leaving a break-even signal whose thin edge collapses capacity to toy scale (sub-$500k, ~46% impact) — a structural promotion blocker on its own — with nothing for parameter tuning to surface.

Outcome Summary

A long-short, single-instrument directional strategy on SOLUSDT.BINANCE USD-M 2H perpetual futures that took a trend position (long uptrends, short downtrends) ONLY when the price trend was confirmed by RISING aggregate open interest (new capital with conviction) and stood flat when OI was contracting (deleveraging/exhaustion), using OI as a signal only — a deliberate transplant of the promoted ETH funding-confirmed trend that swapped both the confirming signal (OI change for funding) and the asset (SOL for ETH) to be portfolio-additive.

Outcome Summary

Over a dense 708-trade, ~4.5-year sample the OI-confirmation transfer produced essentially no edge: Sharpe 0.077 with CI straddling zero (-1.23 to +1.20), CAGR +1.0%, profit factor 1.038, expectancy +$6.7/trade (statistical break-even), modest 20.7% max drawdown, but a microscopic capacity of $477k with impact_cost_pct 45.78% — the aggregate a wash (2023 +22% offset by 2021 -7%/2022 -14%, 2024-2025 ~flat, 2026 negative).
Strategy report

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