Hoppa till innehåll

Visa original

HyperliquidSolFundingExtremeContrarian

Hypoteser

Hyperliquid SOL konträr strategi vid extrema finansieringsräntor i perpetuella kontrakt — lång/kort, enskilt instrument: FADE trång positionering när finansieringsräntans rullande z-poäng når en extremnivå (mycket positiv finansieringsränta = överbelånade långpositioner → SHORT; mycket negativ = kapitulerade kortpositioner → LONG), bekräftat av utebliven prisbekräftelse, exit vid finansieringsräntans återgång / ATR-stopp / tidsstopp (SOLUSDT.HYPERLIQUID, 4H, 3 parametrar)

Hypoteser

En LONG-SHORT, POSITIONING-driven konträr strategi för ett enskilt instrument, Hyperliquids perpetuella SOL-kontrakt, byggd kring en NON-OHLCV mekanisk signal — perpetuell FUNDING — använd på det OPPOSITE sättet i förhållande till fabrikens döda cash-and-carry-familj. Detta är NOT en deltaneutral carry-strategi (som dog eftersom resultatet från finansieringsbetalningar var för litet jämfört med basisbruset) och NOT prismomentum (momentumkorgarna med HL är 0/84). I stället används finansieringsräntan som ett mått på trängsel/positionering för att tajma en DIRECTIONAL position mot rörelsen: det väldokumenterade resultatet att när finansieringsräntan för perpetuella kontrakt är extremt positiv är långpositionerna överbelånade och betalar för att behålla sina innehav — ett tillstånd som historiskt föregår LOWER framtida avkastning på perpetuella kontrakt (risk för squeeze/utrensning), och symmetriskt markerar extremt negativ finansieringsränta kapitulerade kortpositioner som föregår återhämtningar. Vald för att fylla tre underrepresenterade kategorier samtidigt: HYPERLIQUID (6.8% jämfört med målet 20%), long_short (14.2%) och en datasäker fördel utanför OHLCV som inte finns på överanpassningskyrkogården för OHLCV. Avsiktligt ett enskilt instrument och 3 parametrar för att hålla strategin implementerbar (korgarna med flera instrument för HL dog när tidsgränserna för kodning överskreds) och motverka överanpassning. IMPLEMENTATION NOTE: håll finansieringsräntans baslinje i en rullande dubbeländad kö som uppdateras inkrementellt (O(1) per uppdatering) — NEVER skanna om hela finansieringsränteserien inuti on_bar (det mönstret orsakade de upprepade överskridandena av sandlådans tidsgräns på 300s).

Hypoteser

Iteration 2 åtgärdar det enda felet i Layer-2 (`FactoryStrategy._bar_ts() takes 1 positional argument but 2 were given`, samtliga sex scenarier). I Layer-2 binder `_StrategyProxy` om varje anropbart attribut i strategin till ett enkelt omslagsobjekt via `types.MethodType`, vilket omvandlar basklassens staticmethod `_bar_ts` med ett argument till en bunden metod — så `self._bar_ts(bar)` får två argument. Den minimala korrigeringen ersätter detta enda anrop med hjälpfunktionen `_bar_timestamp_ns(bar)` på modulnivå, som läser `bar.ts_event` direkt (med `ts_init` som reserv) — beteendemässigt identisk och immun mot proxyns ombindning. Inget annat ändrades: importer, klasstruktur, parsning av finansieringsdata, signallogik, ingångar, utgångar och positionsstorlekar är byte för byte identiska med previous_code som klarade Layer 1, så ingen tidigare kontroll kan börja fallera. Observera att `_bar_interval_ns` fortfarande anropas från `__init__`, som körs på den verkliga instansen innan proxyn binder om något, så den påverkas inte. Hävstången 2.0 används i `position_size` via `self.config.leverage` i taket för nominell bruttoexponering.

Hypoteser

Konträr strategi mot rörelsen vid extrema finansieringsräntor i ett enskilt instrument med negativt förväntningsvärde — ingen statistisk fördel att optimera. PF 0.60, total_return -33.7%, Sharpekvot -0.42, förväntningsvärde -$156/affär, och avg_trade_return_pct -0.37% (negativt, under Hyperliquids avgiftsgolv på 0.15%, L22). Förlust varje år (2024 -14.8%, 2025 -13.8%, 2026 -6.5%), med en vinstandel under -43% för både den långa och den korta delen och avg_loss > avg_win — den konträra strategin ligger systematiskt på fel sida av rörelsen, och den enda positiva månaden beror på en enda extremdag med +10.77% (kurtosis 9.8). Mekanismen är väl implementerad (ingen överskriden tidsgräns, finansieringsbetalningar tillgodoräknade), men tillhör två familjer utan överlevare: medelvärdesåtergång/handel mot rörelsen i enskilda instrument (L55) och riktad handel i ett enskilt perpetuellt kontrakt villkorad av kompletterande data (finansieringsränta) (L73). Villkoret om utebliven prisbekräftelse tillförde ingen verklig statistisk fördel. Fördelen per affär har negativt tecken, vilket ingen parameterjustering kan vända. Inte värt 2 timmars optimering. Misslyckandemönster: fee_edge/no_edge konträr handel mot rörelsen i ett enskilt perpetuellt kontrakt, villkorad av finansieringsräntan.

Implementation

Konträr lång/kort-strategi för ett enskilt instrument, Hyperliquids perpetuella SOL-kontrakt (staplar på 4H). Finansieringsräntan används som ett mått på trängsel: ett rullande z-värde för den observerade hl_funding_rates-noteringen relativt dess egen historiska fördelning returneras för varje stapel som den kontinuerliga signalen. Extremt positivt z (trånga långpositioner som betalar för mycket) möts med en SHORT mot rörelsen; extremt negativt z (kapitulerade kortpositioner) möts med en LONG mot rörelsen, men endast när priset inte bekräftar flocken (stängningen bildar inte en ny högsta/lägsta nivå över confirm_bars staplar). Exit vid finansieringsräntans återgång (|z| <= exit_z), en ATR-stopp vars värde låses vid ingången, eller en tidsstopp i kalendertid mätt från position.ts_opened. Positionsstorleken bestäms med risken i första hand: ATR-stoppen kostar ~risk_frac av eget kapital, med ett oberoende tak för nominell bruttoexponering.

Verifieringsresultat

CLEAN RESTART 2026-09-04 — den här körningens bedömningshistorik och lärdomsposter togs bort och körningen startades om från verifieringen. Att den tidigare övergavs berodde på pipelinen, inte på marknaden: testharnessen för Layer-2 band @staticmethod-hjälpfunktioner felaktigt (åtgärdat), QA gav slutgiltiga prestandaomdömen utifrån ett ooptimerat röktest (borttaget — QA bedömer nu endast korrekthet), och sandlådans tidsgränser överskreds på grund av brist på tillgängliga backtestplatser (åtgärdat). Hypotesen och strategikoden är oförändrade. Verifiera koden på dess egna meriter; prestandan avgörs senare av det fullständiga backtestet och optimeraren.

Verifieringsresultat

Begränsa _param_bounds till de 3 centrala justerbara parametrarna (entry_z, exit_z, funding_lookback_prints); lås risk-/infrastrukturparametrarna som konstanter.

Verifieringsresultat

Hypotesen säljer in en design med ”3-parameter avsiktligt, för att motstå överanpassning”, men _param_bounds exponerar 11 optimerbara parametrar. Mekanismen är korrekt, men en walk-forward-sökning över 11 dimensioner motsäger den angivna antiöveranpassningsmotiveringen och ökar risken för PBO. Inte blockerande.

Verifieringsresultat

Inget krävs; noterat för analytikern.

Verifieringsresultat

Layer-2-syntetiska signaler är alla frysta vid 0.0 (ingen funding injicerad), så handelsvägen testades endast av sandboxen (som handlade 65 gånger med verklig funding). Icke-kritiskt.

Backtestgranskning

Mekanismen utlöses korrekt och ger ett tillräckligt stort urval (201 affärer över 953 dagar) utan att tidsgränsen överskrids — implementeringen av finansieringsräntan med O(log n) fungerar som avsett

Backtestgranskning

Enskilt instrument, en enda supplementary-feed (hl_funding_rates), ingen data-/verifieringsproblematik; funding krediteras i PnL

Backtestgranskning

Negativ förväntan: profit_factor 0.60, total_return -33.7%, förväntan -$156/trade

Backtestgranskning

avg_trade_return_pct -0.37% — negativ och långt under 0.15% Hyperliquids avgiftsgolv (L22)

Backtestgranskning

Förlust under alla tre år (2024 -14.8%, 2025 -13.8%, 2026 -6.5%) — en ihållande avsaknad av edge, inte en som har försvagats

Backtestgranskning

Båda benen förlorar (lång vinst 42%, kort vinst 42%) med avg_loss > avg_win — faden av funding-extremvärden ligger på fel sida av rörelsen

Backtestgranskning

Den enda positiva månaden är en enda +10.77%-avvikelsedag (kurtosis 9.8); den underliggande prisserien är genomgående negativ

Backtestgranskning

Funding-villkorad riktningsfade för ett enskilt instrument — mean-reversion (0/174) och supplementary-villkorad riktningshandel för en enskild perp (L73), klasser utan överlevare

Iteration History

Verifiering misslyckades (Layer 2 — syntetiska scenarier): Parametrar som användes: ['exit_z', 'entry_z', 'atr_bars', 'risk_frac', 'min_prints', 'confirm_bars', '_param_bounds', 'atr_stop_mult', 'max_hold_bars', 'max_lag_seconds', 'max_notional_frac', 'funding_lookback_prints'] Kontrollera att __init__ sätter alla attribut från self.parameters.get(). - steady_uptrend: TypeError: FactoryStrategy._bar_ts() tar 1 positionsargument men 2 gavs (stapelns tidsstämpel: 1735690500000) - steady_downtrend: TypeError: FactoryStrategy._bar_ts() tar 1 positionsargument men 2 gavs (stapelns tidsstämpel: 1735690500000) - flat_ranging: TypeError: FactoryStrategy._bar_ts() tar 1 positionsargument men 2 gavs (stapelns tidsstämpel: 1735690500000) - volatility_spike: TypeError: FactoryStrategy._bar_ts() tar 1 positionsargument men 2 gavs (stapelns tidsstämpel: 1735690500000) - zero_volume: TypeError: FactoryStrategy._bar_ts() tar 1 positionsargument men 2 gavs (stapelns tidsstämpel: 1735690500000) - price_gap: TypeError: FactoryStrategy._bar_ts() tar 1 positionsargument men 2 gavs (stapelns tidsstämpel: 1735690500000)
Strategirapport

Stratmill är ett research- och pappershandelsverktyg, inte finansiell rådgivning eller en mäklare. Backtest- och pappershandelsresultat är hypotetiska. Handel innebär risk för förlust.