Przejdź do treści

Wyświetl oryginał

SolCrossVenueFundingSpreadNeutral4H

Hipotezy

Międzygiełdowe zbieranie różnicy finansowania — Delta-Neutralne SOL: Krótka pozycja na perpetualu z wyższym finansowaniem / Długa pozycja na perpetualu z niższym finansowaniem między BINANCE a HYPERLIQUID, zbieranie różnicy SPREAD (nie kierunkowego carry), zabezpieczone stopem bazy, utrzymywane przez dni (2-nożna, rynkowo-neutralna, 3-parametrowa)

Hipotezy

Strategia CROSS-VENUE, MARKET-NEUTRAL typu relative-value, która zbiera FUNDING-RATE SPREAD między perpetualem tego samego aktywa SAME na dwóch różnych giełdach — BINANCE USD-M SOLUSDT vs HYPERLIQUID SOLUSD. Obie nogi to perpetuale na identycznym instrumencie bazowym, więc pozycja jest delta-neutralna z konstrukcji: NOT nie obstawiasz kierunku ceny i NOT nie robisz jednonożnego carry na finansowaniu (mechanizm, który przyniósł stratę w porzuconym 'SOL Persistent-Funding Contrarian Swing'). ONLY źródłem PnL jest różnica finansowania — SHORT tę giełdę, na której finansowanie jest bardziej dodatnie (krótkie pozycje tam otrzymują finansowanie), a jednocześnie zajmujesz LONG o równym nominale na giełdzie z niższym/ujemnym finansowaniem (długie pozycje otrzymują lub płacą mniej). Ponieważ obie nogi śledzą jeden instrument bazowy, kierunkowy PnL cenowy neutralizuje się do ~0; rezydualna wariancja to tylko niewielka, powracająca do średniej BASIS (różnica cenowa między dwiema giełdami), którą ogranicza twardy stop bazy. To jest arbitraż finansowania między giełdami (Cross-Venue Pattern #3 hybryda z #2), strukturalnie niedostatecznie zbadana, wybaczająca opłaty przewaga — przechwytuje mechanicznie wypłacany przepływ gotówki, zamiast walczyć z tarciem. Wybrana, ponieważ portfelowi brakuje ekspozycji międzygiełdowej (7.4% vs cel 15%) oraz long-short/rynkowo-neutralnej (14.2%), a także dlatego, że dane finansowania dla BOTH Binance i Hyperliquid SOL istnieją w katalogu z wieloletnią historią w rozdzielczości dziennej/4h (HL dzienna/4h nie jest ograniczona historią). SOL wybrano ze względu na znaczącą dyspersję finansowania między giełdami (alt o wyższej becie), przy jednoczesnej najwyższej płynności na obu giełdach. Tylko 3 wolne parametry (próg wejścia spreadu, próg wyjścia spreadu, stop bazy), aby oprzeć się przetrenowaniu, które jest tu głównym zabójcą #1.

Hipotezy

Iteracja 2 naprawia QA hypothesis_mismatch (przedział czasowy): zegar próbkowania jest teraz przypięty do świec 4-HOUR na obu nogach BOTH, co odpowiada stwierdzonej w hipotezie 'rozdzielczości dziennej/4h' i wielodniowym okresom utrzymania, nazwie tej klasy oraz interwałowi, w którym skalibrowany jest każdy parametr wyrażony w świecach (spread_smooth_bars 24 x 4H = 4 dni); 4H jest też dokładnym dzielnikiem rozliczenia finansowania Binance co 8h, więc żadne rozliczenie nie jest pomijane w połowie. Brak jednostronnego przepróbkowania na inny zegar. Zweryfikowano, że obie nogi istnieją w katalogu przy 4H (SOLUSDT.BINANCE-4-HOUR i SOLUSD.HYPERLIQUID-4-HOUR, historia HL od 2024-01), więc bramka danych dla wielu nóg nie może przerwać przebiegu. Logika sygnału/wejścia/wyjścia, importy i struktura pozostają niezmienione od previous_code (wcześniejsze warstwy pozostały zielone); jedyną inną zmianą jest zadeklarowanie ograniczenia spread_smooth_bars [6, 48] w _param_bounds, aby optymalizator nigdy nie przeszukiwał wartości, które kod po cichu nadpisuje. Uwaga dla protokołu: tekst informacji zwrotnej QA cytował przypadek tygodniowy-vs-dzienny ETHUSDT, który nie odpowiada tej parze międzygiełdowej SOL, więc zastosowałem ogólną zasadę dopasowania przedziału czasowego, zamiast dosłownych szczegółów ETH. Równy nominał USD na obu nogach utrzymuje delta netto na poziomie ~0 zgodnie z lekcją L59; dźwignia pozostaje 1.0 i nie jest wykorzystywana w doborze wielkości pozycji.

Hipotezy

Zbieranie różnicy finansowania o ujemnej oczekiwanej wartości na wiarygodnej próbie 20 transakcji. Przepływy pieniężne z finansowania ARE zaksięgowane przez obecny silnik (zgodnie ze zmianą 2026-06-10), więc jest to uczciwy test mechanizmu — a nawet z uwzględnieniem finansowania różnica Binance-vs-Hyperliquid SOL nadal nie pokrywa ~0.19% kosztu dwunożnej transakcji w obie strony: avg_trade_return_pct -0.03955% (ujemna, poniżej progu 0.15%), profit_factor 0.989, total_return -0.33%, Sharpe -0.035. Różnica (~8.6% APR = 0.024%/dzień) jest zbyt cienka, by przebić koszty przy obserwowanych okresach utrzymania, a impact_cost_pct 259.9% / capacity_usd ~$14.8K sprawiają, że przewaga jest jedynie zabawkowej skali. Optymalizacja nie może podnieść przewagi na transakcję, która leży poniżej kosztów transakcyjnych; to klasyczna sygnatura fee_edge / ujemnej oczekiwanej wartości, a iterowanie progów nigdy jej nie uratowało.

Implementacja

Delta-neutralna międzygiełdowa para perpetualów SOL na świecach 4-HOUR: przelicza finansowanie Binance USD-M (per-8h) oraz Hyperliquid (per-1h) na wartość roczną w procentach, wylicza różnicę, wygładza EMA na 24 świecach (4 dni), a gdy |spread| >= 8% APR zajmuje krótką pozycję na giełdzie z droższym finansowaniem, jednocześnie zajmując długą pozycję o równym nominale USD na tańszej. Jedynym źródłem PnL jest różnica finansowania; kierunkowy PnL cenowy się neutralizuje. Księga jest utrzymywana przez zanik spreadu (zamknięcie kosztuje pełny obrót 0.19% i nie przynosi nic płaskiego) i obracana tylko wtedy, gdy wygładzony spread odwróci się poza pasmo odwrócenia 5% APR, lub na stopie bazy 2.5% / limicie kalendarzowym 45 dni. Pozycja jest zamykana, jeśli brakuje serii finansowania dla którejkolwiek z giełd -- brak fallbacku opartego wyłącznie na cenie.

Wyniki weryfikacji

[zarchiwizowano 2026-09-05] Informacja zwrotna Warstwy-4 przechowywana wcześniej tutaj była przeglądem QA strategii DIFFERENT (ETHUSDT.BINANCE przegląd tygodniowy-vs-dzienny trendu (ten przebieg to SOL zbieranie finansowania międzygiełdowego)), dostarczona do tego przebiegu przez błąd współdzielonej sesji/skrzynki wyjściowej naprawiony w fbae0041 (izolacja per-wywołanie + wiązanie call_id). Została przeniesiona do metadata.foreign_feedback_archive i musi zostać pominięta; kolejny przegląd QA tego przebiegu jest wiążący.

Wyniki weryfikacji

Analityk: potwierdzić, że przepływy pieniężne z finansowania są stosowane do obu nóg w silniku backtestowym, a następnie ponownie sprawdzić carry na transakcję netto po uwzględnieniu opłat przy zoptymalizowanych progach wejścia/wyjścia.

Wyniki weryfikacji

avg_trade_return_pct w sandboksie (0.1135%) mieści się tuż poniżej progu opłat kontraktów futures 0.15%, a PF to 1.01 — różnica finansowania to cienki, powolny przepływ gotówki, a rentowność zależy całkowicie od tego, czy finansowanie jest zaksięgowane w PnL oraz czy wielodniowe okresy utrzymania nagromadzą wystarczające carry, by pokonać koszt 0.19% transakcji w obie strony. Informacyjne; pełny backtest i optymalizator decydują o rentowności.

Wyniki weryfikacji

Sandbox jest zasadniczo na progu rentowności: total_return +0.167% w ciągu 2181 dni, avg_trade_return_pct 0.1135% (poniżej dolnego limitu kontraktów futures 0.15%), profit_factor 1.013, win_rate 0.50 na zaledwie 22 transakcjach. Jest to nieoptymalizowany test dymny (smoke test), więc nie blokuje, ale analityk powinien zweryfikować dwie kwestie na pełnej historii danych: (1) czy backtest w NautilusTrader faktycznie księguje przepływy pieniężne z funding na obu nogach kontraktów perp FUNDING — funding jest głównym źródłem PnL ENTIRE tej strategii, a jeśli funding nie jest uwzględniany, zmierzony zwrot to tylko szum bazy (basis) minus opłaty; (2) rentowność po uwzględnieniu opłat/kosztów utrzymania przy realnych progach — różnica (~8.6% APR ≈ 0.024%/dzień) wymaga ~8 prawidłowo pozycjonowanych dni, aby pokryć koszt pełnego obrotu (round trip) na obu nogach 0.19%, więc przewaga na transakcję jest niewielka i zależna od czasu utrzymania pozycji (obserwowany średni czas utrzymania ~29d). Warto też zauważyć impact_cost_pct 44.9% / pojemność ~$495K przy per_leg_pct 0.50 (150% ekspozycja brutto) — realny sufit pojemności, choć jednorazowy, przy niskiej rotacji wejścia/wyjścia dla portfela liczącego ~22 transakcji.

Przegląd backtestu

Mechanizm jest wiernie zaimplementowany i rynkowo-neutralny z konstrukcji (para perpetualów SOL o równym nominale w dwóch nogach, sygnał spreadu finansowania, zabezpieczenie przed nagą nogą, stop bazy).

Przegląd backtestu

Przepływy pieniężne z finansowania ARE zaksięgowane przez obecny silnik, więc jest to uczciwy test przewagi wynikającej z różnicy finansowania — a nie strukturalna blokada niemożliwości backtestu.

Przegląd backtestu

Tylko 3 podstawowych parametrów; niski stopień swobody badacza.

Przegląd backtestu

Ujemna oczekiwana wartość na wiarygodnej próbie: total_return -0.33%, avg_trade_return_pct -0.03955% (ujemna, poniżej progu opłat kontraktów futures 0.15%), profit_factor 0.989, Sharpe -0.035 na 20 transakcjach. Finansowanie jest księgowane, więc różnica po prostu nie pokrywa ~0.19% kosztu dwunożnej transakcji w obie strony.

Przegląd backtestu

Przewaga jest strukturalnie cienka i zależna od okresu utrzymania: różnica ~8.6% APR (0.024%/dzień) wymaga ~8 poprawnie pozycjonowanych dni tylko po to, by wyjść na zero; zrealizowany wynik potwierdza, że tak się nie dzieje.

Przegląd backtestu

Pułap pojemności jest zabawkowej skali: impact_cost_pct 259.9% oraz capacity_usd ~$14.8K oznaczają, że pozorna przewaga istnieje tylko przy trywialnej wielkości.

Przegląd backtestu

Noga Hyperliquid istnieje dopiero od 2024-01-25, więc efektywne okno testowe to ~1.6 lat / 20 transakcji niezależnie od 6-letniego głównego zakresu.

Iteration History

Weryfikacja nie powiodła się (Warstwa 2 — scenariusze syntetyczne): Użyte parametry: ['per_leg_pct', 'min_notional', '_param_bounds', 'max_hold_days', 'min_hold_hours', 'exit_spread_apr', 'enter_spread_apr', 'max_basis_stop_pct', 'spread_smooth_bars'] Sprawdź, czy __init__ ustawia wszystkie atrybuty z self.parameters.get(). - steady_uptrend: TypeError: SolCrossVenueFundingSpreadNeutral4H._lookup() takes 4 positional arguments but 5 were given (znacznik czasu świecy: 1735690740000) - steady_downtrend: TypeError: SolCrossVenueFundingSpreadNeutral4H._lookup() takes 4 positional arguments but 5 were given (znacznik czasu świecy: 1735690740000) - flat_ranging: TypeError: SolCrossVenueFundingSpreadNeutral4H._lookup() takes 4 positional arguments but 5 were given (znacznik czasu świecy: 1735690740000) - volatility_spike: TypeError: SolCrossVenueFundingSpreadNeutral4H._lookup() takes 4 positional arguments but 5 were given (znacznik czasu świecy: 1735690740000) - zero_volume: TypeError: SolCrossVenueFundingSpreadNeutral4H._lookup() takes 4 positional arguments but 5 were given (znacznik czasu świecy: 1735690740000) - price_gap: TypeError: SolCrossVenueFundingSpreadNeutral4H._lookup() takes 4 positional arguments but 5 were given (znacznik czasu świecy: 1735690740000)

Iteration History

Weryfikacja nie powiodła się (Warstwa 4 — przegląd QA): - Rentowność z uwzględnieniem opłat/przewagi zawodzi ostatecznie w wyniku silnika ACTUAL (checklist #7, L6/L26). Sandbox to stratna księga: total_return -2.17%, profit_factor 0.957 (<1.0), Sharpe -0.35, oczekiwana wartość -$45/transakcję, oraz avg_trade_return_pct -0.0033% — NEGATIVE i ~45x poniżej progu opłat kontraktów futures 0.15%. Na mierzalnej próbie (82 transakcji, metrics_reliable: true), więc jest to prawdziwy wynik braku przewagi. Finansowanie WAS zaksięgowane (2580 zdarzeń), więc nawet przy w pełni wypłaconym różnicowym finansowaniu strategia nie pokrywa ~0.19% kosztu transakcji w obie strony. - Rdzenna hipoteza — 'kierunkowy PnL cenowy netto wynosi ~0; rezydualna wariancja to jedynie niewielka, powracająca do średniej baza' — jest NOT tym, co wygenerował silnik. PnL na transakcję jest zdominowany przez ogromne symetryczne wahania: avg_win $2,009 ~= avg_loss $2,099, największy ±$9,600-9,959, win_rate 0.50. Prawdziwe zbieranie spreadu finansowania delta-neutralnego powinno pokazywać PnL o rząd wielkości mniejszy i przesunięty dodatnio przez carry; zamiast tego różnica (netto -$45/transakcję) jest przyćmiona ~45:1 przez szum bazy/ceny. Identyczna sygnatura jak porzucona EthCrossVenueCashAndCarry oraz wcześniejsze warianty przechwytywania finansowania między giełdami.

Iteration History

Weryfikacja nie powiodła się (Warstwa 4 — przegląd QA) [class=hypothesis_mismatch]: - [edge_concern] Nie jest to powód werdyktu, odnotowane dla analityka na wypadek ponownej rejestracji hipotezy: na zegarze dziennym sandbox jest uczciwy i zdrowy (metrics_reliable=TRUE, 92 transakcji, Sharpe 0.79 CI [0.10,1.51], avg_trade_return_pct 3.61%, PF 1.48), ale regime_performance pokazuje ALL dodatniego zwrotu skoncentrowanego w 'normalnym' tercylu zmienności (+489%, Sharpe 2.64), przy czym tercyle 'spokojny' (-18.8%) i 'zestresowany' (-21.8%, 56.7% DD) są ujemne, oraz only_one_regime=true. Maksymalny drawdown 36% przy 1038-dniowym czasie trwania pod wodą. Przewaga jest realna, ale skoncentrowana na reżimie i obciążona drawdownem; wielkość/odporność zasługują na baczną uwagę przy pełnym backteście. - TIMEFRAME MISMATCH względem wcześniej zarejestrowanej hipotezy. Hipoteza referencyjna (tytuł i opis w tym briefie) jednoznacznie i wielokrotnie określa świece WEEKLY ('na świecach WEEKLY, utrzymując pozycje przez tygodnie-do-miesięcy'), ale config.bar_type to ETHUSDT.BINANCE-1-DAY-LAST-EXTERNAL. To nie jest kosmetyczne przepróbkowanie: zmienia to liczbę transakcji (28 tygodniowo -> 92 dziennie), średni czas utrzymania (10.4 tygodni -> 3 tygodni) oraz cały test statystyczny. Własny docstring modułu dewelopera przyznaje, że iteracja 3 dokonała tej samej zmiany na dzienną, a QA 'słusznie to odrzucił: była to jednostronna reformulacja hipotezy dokonana w kodzie.' Sytuacja pozostaje zasadniczo niezmieniona: hipoteza referencyjna nadal mówi o tygodniowym interwale, więc jest to ponownie jednostronna reformulacja przedziału czasowego w kodzie. Warstwa 1.5 waliduje jedynie instrument/giełdę, nie przedział czasowy, więc ta kontrola przypada QA, a przedział czasowy określony w hipotezie, różniący się od config.bar_type, stanowi krytyczną niezgodność. To dokładnie ten stopień swobody badacza, przed którym ma chronić system wstępnej rejestracji fabryki: forma tygodniowa okazała się niemierzalna, a następnie zegar próbkowania zmieniono, by sztucznie wytworzyć mierzalność.
Raport strategii

Stratmill to narzędzie do badań i handlu na papierze (paper trading), a nie doradztwo finansowe ani broker. Wyniki backtestów i paper tradingu mają charakter hipotetyczny. Handel wiąże się z ryzykiem straty.