Hyperliquid SOL Perp Funding-Extreme Contrarian — Long-Short, Single-Name: FADE Poziționare Aglomerată Când Z-Score-ul Rolling al Funding-ului Atinge un Extrem (Funding Foarte Pozitiv = Long-uri Supra-Levierate → SHORT; Foarte Negativ = Short-uri Capitulate → LONG), Confirmat prin Non-Confirmarea Prețului, Ieșire la Reversia Funding-ului / Stop ATR / Time Stop (SOLUSDT.HYPERLIQUID, 4H, 3-Parametri)
Rezultat: Abandonată
HyperliquidSolFundingExtremeContrarian
Mecanismul se declanșează curat și produce un eșantion adecvat (201 tranzacții pe parcursul a 953 zile) fără timeout — implementarea O(log n) a funding-ului funcționează așa cum a fost intenționat
O strategie LONG-SHORT, single-instrument, condusă de POSITIONING, contrarian pe perpetualul Hyperliquid SOL, construită în jurul unui semnal mecanic NON-OHLCV — perpetual FUNDING — a folosit calea OPPOSITE către familia moartă de cash-and-carry din factory. Aceasta nu este NOT un carry delta-neutral (care a murit deoarece P&L-ul din funding era prea mic în raport cu zgomotul de bază) și nici NOT momentum de preț (coșurile de momentum HL sunt 0/84). În schimb, funding-ul este folosit ca indicator de……Afișează mai multeAfișează mai puțin
O strategie LONG-SHORT, single-instrument, condusă de POSITIONING, contrarian pe perpetualul Hyperliquid SOL, construită în jurul unui semnal mecanic NON-OHLCV — perpetual FUNDING — a folosit calea OPPOSITE către familia moartă de cash-and-carry din factory. Aceasta nu este NOT un carry delta-neutral (care a murit deoarece P&L-ul din funding era prea mic în raport cu zgomotul de bază) și nici NOT momentum de preț (coșurile de momentum HL sunt 0/84). În schimb, funding-ul este folosit ca indicator de aglomerare/poziționare pentru a temporiza un fade de DIRECTIONAL: rezultatul bine documentat conform căruia, atunci când funding-ul perp este extrem de pozitiv, long-urile sunt supra-levierate și plătesc pentru a menține poziția — o stare care istoric precede randamente perp forward LOWER (risc de squeeze/washout), iar simetric, funding-ul extrem de negativ marchează short-uri capitulate care preced revenirile. Ales pentru a umple simultan trei categorii subreprezentate: HYPERLIQUID (6.8% vs ținta 20%), long_short (14.2%), și un edge non-OHLCV sigur din punct de vedere al datelor, care nu se află în cimitirul de overfitting OHLCV. Deliberat single-name și cu 3 parametri, pentru a rămâne implementabil (coșurile multi-instrument HL au murit din cauza timeout-urilor la codare) și pentru a rezista la overfitting. IMPLEMENTATION NOTE: mențineți baseline-ul de funding ca un deque rolling actualizat incremental (O(1) per actualizare) — NEVER rescanați întreaga serie de funding în interiorul on_bar (acel tipar a cauzat timeout-urile repetate de sandbox 300).
Iterația 2 rezolvă singurul eșec Layer-2 (`FactoryStrategy._bar_ts() takes 1 positional argument but 2 were given`, toate cele șase scenarii). -2 din Layer`_StrategyProxy` re-leagă fiecare atribut apelabil al strategiei pe un wrapper simplu prin `types.MethodType`, ceea ce transformă staticmethod-ul cu un argument al clasei de bază, `_bar_ts`, într-o metodă legată (bound method) — astfel `self._bar_ts(bar)` ajunge cu două argumente. Corecția minimă înlocuiește acel unic apel cu un helper la nivel de modul……Afișează mai multeAfișează mai puțin
Iterația 2 rezolvă singurul eșec Layer-2 (`FactoryStrategy._bar_ts() takes 1 positional argument but 2 were given`, toate cele șase scenarii). -2 din Layer`_StrategyProxy` re-leagă fiecare atribut apelabil al strategiei pe un wrapper simplu prin `types.MethodType`, ceea ce transformă staticmethod-ul cu un argument al clasei de bază, `_bar_ts`, într-o metodă legată (bound method) — astfel `self._bar_ts(bar)` ajunge cu două argumente. Corecția minimă înlocuiește acel unic apel cu un helper la nivel de modul `_bar_timestamp_ns(bar)` care citește `bar.ts_event` (revenind la `ts_init`) direct — identic din punct de vedere comportamental, imun la re-legarea proxy-ului. Nimic altceva nu s-a schimbat: importurile, structura clasei, parsarea funding-ului, logica semnalului, intrările, ieșirile și dimensionarea sunt identice byte cu byte cu previous_code care a trecut Layer 1, deci niciun control anterior nu poate regresa. Rețineți că `_bar_interval_ns` este încă apelat din `__init__`, care rulează pe instanța reală înainte ca proxy-ul să re-lege ceva, deci nu este afectat. Levierul 2.0 este consumat în `position_size` prin `self.config.leverage` în plafonul de notional brut.
Fade contrarian single-name pe funding-extreme cu expectanță negativă — niciun edge de optimizat. PF 0.60, total_return -33.7%, Sharpe -0.42, expectanță -$156/tranzacție, iar avg_trade_return_pct -0.37% (negativ, sub pragul de comisioane Hyperliquid de 0.15%, L22). Pierzător în fiecare an (2024 -14.8%, 2025 -13.8%, 2026 -6.5%) cu ambele picioare, long și short, având rată de câștig sub-43% și avg_loss > avg_win — fade-ul contrarian se află sistematic pe partea greșită a mișcării, iar singura lună pozitivă este o singură zi outlier +10.77% (kurtoză 9.8). Mecanismul este implementat corect (fără timeout, funding-ul este creditat) dar se încadrează în două familii cu zero supraviețuitori: mean-reversion/fade single-name (L55) și direcțional gated-supplementary (funding) single-perp (L73). Gate-ul de non-confirmare a prețului nu a adăugat un edge real. Semnul edge-ului per tranzacție este negativ, ceea ce nicio ajustare de parametri nu poate inversa. Nu merită 2 ore de optimizare. Tipar de eșec: fade contrarian gated-funding single-perp fee_edge/no_edge.
Implementare
Contrarian long-short single-name pe perpetualul Hyperliquid SOL (bare de 4H). Funding-ul este folosit ca indicator de aglomerare: un z-score rolling al valorii hl_funding_rates față de propria sa distribuție trailing este returnat la fiecare bară ca semnal continuu. Z-ul extrem pozitiv (long-uri aglomerate, care plătesc în exces) este contracarat cu un SHORT; z-ul extrem negativ (short-uri capitulate) este contracarat cu un LONG, dar doar atunci când prețul nu confirmă mulțimea (close-ul care nu face un nou maxim/minim pe confirm_bars bare). Ieșiri la reversia funding-ului (|z| <= exit_z), un stop ATR capturat la intrare, sau un time stop calendaristic măsurat de la position.ts_opened. Dimensionarea este orientată pe risc în primul rând: stop-ul ATR costă ~risk_frac din echitate, cu un plafon independent de notional brut.
Rezultate verificare
CLEAN RESTART 2026-09-04 — istoricul verdictelor și înregistrările de învățare ale acestei rulări au fost eliminate și a fost repornită de la verificare. Abandonarea sa anterioară a provenit din pipeline, nu din piață: harness-ul Layer-2 a legat greșit (mis-bound) helperele @staticmethod (rezolvat), QA a emis verdicte de performanță finale pe un smoke test neoptimizat (eliminat — QA acum judecă doar corectitudinea), iar timeout-urile din sandbox proveneau din înfometarea (starvation) sloturilor de backtest (rezolvat). Ipoteza și codul strategiei sunt neschimbate. Verificați codul pe baza meritelor sale; performanța se decide ulterior de către backtest-ul complet și optimizator.
Restrângeți _param_bounds la cei 3 parametri principali reglabili (entry_z, exit_z, funding_lookback_prints); blocați parametrii de risc/instalație (plumbing) ca și constante.
Ipoteza promovează un design 'deliberat cu 3 parametri, pentru a rezista la overfitting', dar _param_bounds expune 11 parametri optimizabili. Mecanismul este corect, dar o căutare walk-forward cu 11 dimensiuni contrazice raționamentul anti-overfit declarat și crește riscul de PBO. Nu blochează.
Nu este necesară nicio acțiune; notat pentru analist.
Semnalele sintetice Layer-2 sunt toate înghețate la 0.0 (fără funding injectat), astfel încât calea de tranzacționare a fost exercitată doar de sandbox (care a tranzacționat de 65 ori pe funding real). Non-fatal.
Analiză backtest
Sharpe
-0,42
Randament total
-33,71%
Drawdown maxim
40,24%
Tranzacții totale
201
Rată de câștig
42,3%
Factor de profit
0,60
Mecanismul se declanșează curat și produce un eșantion adecvat (201 tranzacții pe parcursul a 953 zile) fără timeout — implementarea O(log n) a funding-ului funcționează așa cum a fost intenționat
Instrument unic, un singur flux suplimentar (hl_funding_rates), fără patologie de date/verificare; funding-ul este creditat în PnL
avg_trade_return_pct -0.37% — negativ și mult sub pragul de comisioane Hyperliquid de 0.15% (L22)
Pierzător în toți cei trei ani (2024 -14.8%, 2025 -13.8%, 2026 -6.5%) — o lipsă de edge persistentă, nu una degradată
Ambele picioare pierd (rată de câștig long 42%, rată de câștig short 42%) cu avg_loss > avg_win — fade-ul pe funding-extreme se află pe partea greșită a mișcării
Singura lună pozitivă este o singură zi outlier +10.77% (kurtoză 9.8); evoluția de bază este uniform negativă
Fade direcțional gated-funding single-name — clasele cu zero supraviețuitori mean-reversion (0/174) și direcțional gated-supplementary single-perp (L73)
Istoric iterații
Verificare eșuată (Layer 2 — scenarii sintetice): Parametri folosiți: ['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'] Verificați că __init__ setează toate atributele din self.parameters.get(). - steady_uptrend: TypeError: FactoryStrategy._bar_ts() takes 1 positional argument but 2 were given (bar timestamp: 1735690500000) - steady_downtrend: TypeError:……Afișează mai multeAfișează mai puțin
Verificare eșuată (Layer 2 — scenarii sintetice):
Parametri folosiți: ['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']
Verificați că __init__ setează toate atributele din self.parameters.get().
- steady_uptrend: TypeError: FactoryStrategy._bar_ts() takes 1 positional argument but 2 were given (bar timestamp: 1735690500000)
- steady_downtrend: TypeError: FactoryStrategy._bar_ts() takes 1 positional argument but 2 were given (bar timestamp: 1735690500000)
- flat_ranging: TypeError: FactoryStrategy._bar_ts() takes 1 positional argument but 2 were given (bar timestamp: 1735690500000)
- volatility_spike: TypeError: FactoryStrategy._bar_ts() takes 1 positional argument but 2 were given (bar timestamp: 1735690500000)
- zero_volume: TypeError: FactoryStrategy._bar_ts() takes 1 positional argument but 2 were given (bar timestamp: 1735690500000)
- price_gap: TypeError: FactoryStrategy._bar_ts() takes 1 positional argument but 2 were given (bar timestamp: 1735690500000)
Stratmill este un instrument de cercetare și paper-trading, nu consultanță financiară sau broker. Rezultatele de backtest și paper trading sunt ipotetice. Tranzacționarea implică riscul de pierdere.