Naar inhoud gaan
Alle strategieën

Strategieën

Hyperliquid SOL Perp Funding-Extreme Contrarian — Long-Short, Enkele Naam: FADE Crowded Positioning Wanneer Rolling Funding Z-Score een Extreme Bereikt (Zeer Positieve Funding = Over-Leveraged Longs → SHORT; Zeer Negatief = Gecapituleerde Shorts → LONG), Bevestigd door Prijs Non-Confirmation, Exit op Funding Reversion / ATR Stop / Tijd Stop (SOLUSDT.HYPERLIQUID, 4U, 3-Parameter)

Uitkomst: Gestaakt

HyperliquidSolFundingExtremeContrarian

Mechanisme vuurt netjes en produceert een adequate sample (201 trades over 953 dagen) zonder time-out — de O(log n) funding-implementatie werkt zoals bedoeld

Hypothese

Een LONG-SHORT, single-instrument, POSITIONING-gedreven contrarian strategie op de Hyperliquid SOL perpetual, gebouwd rond een NON-OHLCV mechanisch signaal — perpetual FUNDING — gebruikte de OPPOSITE-weg naar de dode cash-and-carry familie van de fabriek. Dit is NOT een delta-neutrale carry (die stierf omdat funding P&L te klein was vs basisruis) en NOT prijsmomentum (de HL momentum-mandjes zijn 0/84). In plaats daarvan wordt funding gebruikt als een crowding/positioning-meter om een DIRECTIONAL-fade te timen:……Meer tonenMinder tonen

Een LONG-SHORT, single-instrument, POSITIONING-gedreven contrarian strategie op de Hyperliquid SOL perpetual, gebouwd rond een NON-OHLCV mechanisch signaal — perpetual FUNDING — gebruikte de OPPOSITE-weg naar de dode cash-and-carry familie van de fabriek. Dit is NOT een delta-neutrale carry (die stierf omdat funding P&L te klein was vs basisruis) en NOT prijsmomentum (de HL momentum-mandjes zijn 0/84). In plaats daarvan wordt funding gebruikt als een crowding/positioning-meter om een DIRECTIONAL-fade te timen: het goed gedocumenteerde resultaat dat wanneer perp funding extreem positief is, longs over-leveraged zijn en betalen om vast te houden — een toestand die historisch voorafgaat aan LOWER voorwaartse perp returns (squeeze/washout risico), en symmetrisch extreem-negatieve funding markeert gecapituleerde shorts die voorafgaan aan bounces. Gekozen om drie ondervertegenwoordigde buckets tegelijk te vullen: HYPERLIQUID (6.8% vs 20% doel), long_short (14.2%), en een data-veilige non-OHLCV edge die niet in de OHLCV overfit-begraafplaats zit. Single-name en 3-parameter bewust, om het implementeerbaar te houden (de multi-instrument HL-mandjes stierven in code-timeouts) en om overfitting te weerstaan. IMPLEMENTATION NOTE: onderhoud de funding-baseline als een rolling deque incrementeel bijgewerkt (O(1) per update) — NEVER de volledige funding-reeks binnen on_bar opnieuw scannen (dat patroon veroorzaakte de herhaalde 300s sandbox-timeouts).

Iteratie 2 verhelpt de enkele Layer-2-fout (`FactoryStrategy._bar_ts() takes 1 positional argument but 2 were given`, alle zes scenario's). De Layer-2 `_StrategyProxy` rebindt elk aanroepbaar attribuut van de strategie op een gewone wrapper via `types.MethodType`, die het `_bar_ts`-staticmethod met één argument van de basisklasse omzet in een bound method — dus `self._bar_ts(bar)` komt aan met twee argumenten. De minimale fix vervangt die ene aanroep door een module-niveau `_bar_timestamp_ns(bar)`-helper die……Meer tonenMinder tonen

Iteratie 2 verhelpt de enkele Layer-2-fout (`FactoryStrategy._bar_ts() takes 1 positional argument but 2 were given`, alle zes scenario's). De Layer-2 `_StrategyProxy` rebindt elk aanroepbaar attribuut van de strategie op een gewone wrapper via `types.MethodType`, die het `_bar_ts`-staticmethod met één argument van de basisklasse omzet in een bound method — dus `self._bar_ts(bar)` komt aan met twee argumenten. De minimale fix vervangt die ene aanroep door een module-niveau `_bar_timestamp_ns(bar)`-helper die `bar.ts_event` rechtstreeks leest (terugvallend op `ts_init`) — gedragsmatig identiek, immuun voor de rebinding van de proxy. Niets anders is veranderd: imports, klassenstructuur, funding-parsing, signaallogica, entries, exits en sizing zijn byte-identiek aan de previous_code die Layer 1 haalde, dus geen eerdere controle kan regresseren. Merk op dat `_bar_interval_ns` nog steeds wordt aangeroepen vanuit `__init__`, die draait op de echte instantie voordat de proxy iets rebindt, dus het is niet beïnvloed. Hefboom 2.0 wordt verbruikt in `position_size` via `self.config.leverage` in de bruto-notional cap.

Negatieve verwachtingswaarde single-name funding-extreme contrarian fade — geen edge om te optimaliseren. PF 0.60, total_return -33.7%, Sharpe -0.42, verwachtingswaarde -$156/trade, en avg_trade_return_pct -0.37% (negatief, onder de 0.15% Hyperliquid-vergoedingenvloer, L22). Verliesgevend in elk jaar (2024 -14.8%, 2025 -13.8%, 2026 -6.5%) met zowel long- als short-benen sub-43% win rate en avg_loss > avg_win — de contrarian fade zit systematisch aan de verkeerde kant van de beweging, en de enige positieve maand is een single +10.77% outlier-dag (kurtosis 9.8). Het mechanisme is correct geïmplementeerd (geen time-out, funding gecrediteerd) maar bevindt zich in twee zero-survivor families: single-name mean-reversion/fade (L55) en single-perp supplementary(funding)-gated directioneel (L73). De prijs-non-confirmation gate voegde geen echte edge toe. Het teken van de per-trade edge is negatief, wat geen parameter tuning kan omdraaien. Niet 2 uur optimalisatie waard. Faalpatroon: fee_edge/no_edge single-perp funding-gated contrarian fade.

Implementatie

Long-short single-name contrarian op de Hyperliquid SOL perp (4U bars). Funding wordt gebruikt als crowding-meter: een rolling z-score van de hl_funding_rates-print tegen zijn eigen staartverdeling wordt elke bar teruggegeven als het continue signaal. Extreme positieve z (crowded, over-betalende longs) wordt gefaded met een SHORT; extreme negatieve z (gecapituleerde shorts) wordt gefaded met een LONG, maar alleen wanneer prijs de crowd niet bevestigt (close maakt geen vers confirm_bars-bar hoog/laag). Exits op funding-reversion (|z| <= exit_z), een ATR-stop vastgelegd bij entry, of een kalender tijdstop gemeten vanaf position.ts_opened. Sizing is risico-eerst: de ATR-stop kost ~risk_frac van equity, met een onafhankelijke bruto-notional cap.

Verificatieresultaten

CLEAN RESTART 2026-09-04 — de verdictgeschiedenis en leergeschiedenis van deze run zijn verwijderd en deze is opnieuw gestart vanaf verificatie. De vorige afstoting kwam van de pijplijn, niet van de markt: de Layer-2-harness bond @staticmethod-helpers verkeerd (verholpen), QA gaf terminal-prestatieverdict op een niet-geoptimaliseerde rooktest (verwijderd — QA beoordeelt nu alleen correctheid), en sandbox-timeouts kwamen door uitputting van backtest-sloten (verholpen). De hypothese en de strategiecode zijn ongewijzigd. Verifieer de code op eigen merites; de prestatie wordt later beslist door de volledige backtest en de optimizer.

Vernauw _param_bounds tot de 3-headline tunables (entry_z, exit_z, funding_lookback_prints); vergrendel de risico/pijplijn-params als constanten.

Hypothese verkoopt een '3-parameter bewust, om overfitting te weerstaan'-ontwerp, maar _param_bounds stelt 11 optimiseerbare params bloot. Mechanisme is correct, maar een 11-dimensionale walk-forward zoekopdracht spreekt de verklaarde anti-overfit-redenering tegen en verhoogt PBO-risico. Niet blokkerend.

Geen vereist; genoteerd voor de analyst.

Layer-2 synthetische signalen allemaal bevroren op 0.0 (geen funding geïnjecteerd), dus het trading-pad werd alleen uitgeoefend door de sandbox (die 65 keer handelde op echte funding). Niet fataal.

Backtest-review

Sharpe
-0,42
Totaal rendement
-33,71%
Maximale drawdown
40,24%
Totaal aantal trades
201
Winratio
42,3%
Winstfactor
0,60

Mechanisme vuurt netjes en produceert een adequate sample (201 trades over 953 dagen) zonder time-out — de O(log n) funding-implementatie werkt zoals bedoeld

Single-instrument, enkele supplementary feed (hl_funding_rates), geen data/verificatie-pathologie; funding is gecrediteerd in PnL

Negatieve verwachtingswaarde: profit_factor 0.60, total_return -33.7%, verwachtingswaarde -$156/trade

avg_trade_return_pct -0.37% — negatief en ver onder de 0.15% Hyperliquid-vergoedingenvloer (L22)

Verliesgevend in alle drie de jaren (2024 -14.8%, 2025 -13.8%, 2026 -6.5%) — een aanhoudende no-edge, geen vervallen

Beide benen verliezen (long win 42%, short win 42%) met avg_loss > avg_win — de funding-extreme fade zit aan de verkeerde kant van de beweging

Enige positieve maand is een single +10.77% outlier-dag (kurtosis 9.8); de onderliggende tape is uniform negatief

Single-name funding-gated directionele fade — mean-reversion (0/174) en single-perp supplementary-gated directioneel (L73) zero-survivor klassen

Iteratiegeschiedenis

Verificatie mislukt (Layer 2 — synthetische scenario's): Parameters gebruikt: ['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'] Controleer dat __init__ alle attributen instelt vanuit self.parameters.get(). - steady_uptrend: TypeError: FactoryStrategy._bar_ts() krijgt 1 positioneel argument maar 2 werden gegeven (bar tijdstempel: 1735690500000) - steady_downtrend:……Meer tonenMinder tonen

Verificatie mislukt (Layer 2 — synthetische scenario's): Parameters gebruikt: ['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'] Controleer dat __init__ alle attributen instelt vanuit self.parameters.get(). - steady_uptrend: TypeError: FactoryStrategy._bar_ts() krijgt 1 positioneel argument maar 2 werden gegeven (bar tijdstempel: 1735690500000) - steady_downtrend: TypeError: FactoryStrategy._bar_ts() krijgt 1 positioneel argument maar 2 werden gegeven (bar tijdstempel: 1735690500000) - flat_ranging: TypeError: FactoryStrategy._bar_ts() krijgt 1 positioneel argument maar 2 werden gegeven (bar tijdstempel: 1735690500000) - volatility_spike: TypeError: FactoryStrategy._bar_ts() krijgt 1 positioneel argument maar 2 werden gegeven (bar tijdstempel: 1735690500000) - zero_volume: TypeError: FactoryStrategy._bar_ts() krijgt 1 positioneel argument maar 2 werden gegeven (bar tijdstempel: 1735690500000) - price_gap: TypeError: FactoryStrategy._bar_ts() krijgt 1 positioneel argument maar 2 werden gegeven (bar tijdstempel: 1735690500000)

Stratmill is een onderzoeks- en papertrading-tool, geen financieel advies of broker. Backtest- en paperresultaten zijn hypothetisch. Handelen brengt risico op verlies met zich mee.