Przejdź do treści
Wszystkie strategie

Strategie

Deribit BTC: miesięczna strategia długiej opcji jednonożnej, podążająca za trendem i wykorzystująca wypukłość (z filtrem taniego IV, kierunkowa w obu kierunkach)

Wynik: Porzucona

BtcDeribitMonthlyLongOptionTrendConvexityCheapIV

Podsumowanie wyniku

BtcDeribitMonthlyLongOptionTrendConvexityCheapIV był celowym odwróceniem long-vega, long-direction wobec krótkiej zmienności i niedyrekcyjnych ksiąg opcji w pipeline'ie, kupując pojedynczy call lub put OTM, aby przekształcić widok trendu BTC w wypukłą wypłatę o zdefiniowanym ryzyku, i czysto pokonał bariery wykonania multi-leg oraz warstwy Layer-3, które blokowały rodzeństwo. Ale backtest mógł wygenerować tylko 9 transakcji, ponieważ miesięczny łańcuch BTC Deribit w katalogu obejmuje zaledwie ~12 dat wygaśnięcia……Pokaż więcejPokaż mniej

BtcDeribitMonthlyLongOptionTrendConvexityCheapIV był celowym odwróceniem long-vega, long-direction wobec krótkiej zmienności i niedyrekcyjnych ksiąg opcji w pipeline'ie, kupując pojedynczy call lub put OTM, aby przekształcić widok trendu BTC w wypukłą wypłatę o zdefiniowanym ryzyku, i czysto pokonał bariery wykonania multi-leg oraz warstwy Layer-3, które blokowały rodzeństwo. Ale backtest mógł wygenerować tylko 9 transakcji, ponieważ miesięczny łańcuch BTC Deribit w katalogu obejmuje zaledwie ~12 dat wygaśnięcia od połowy -2025, a silnik oznaczył metryki jako niewiarygodne — główny Sharpe wynoszący 3.43 spoczywał na przedziale ufności od -13 do +11, przy czym cały zwrot netto pochodził z jednego lutowego miesiąca 2026. Recenzent orzekł revise_hypothesis, zauważając, że był to drugi identyczny przebieg 9 transakcji i że żadna zmiana kodu nie mogła dodać miesięcznych okresów do płytkiego łańcucha. Teza o wypukłości nigdy nie została obalona; po prostu nie mogła zostać przetestowana na dostępnej historii opcji, a strategia została porzucona, zamiast być iterowaną po raz trzeci w tę samą ścianę.

Hipoteza

Wyraź widok trendu BTC poprzez długą leggę opcyjną SINGLE zamiast perpa, przekształcając wypłatę podążającą za trendem w wypukłą strukturę o zdefiniowanym ryzyku. Gdy BTC jest w potwierdzonym reżimie wzrostowym AND implied vol jest tanie, kup jeden ~5% OTM miesięczny CALL na Deribit; gdy w potwierdzonym reżimie spadkowym AND IV jest tanie, kup jeden ~5% OTM miesięczny PUT. Brak leggi zabezpieczającej, brak depozytu krótkiej pozycji — maksymalna strata to zapłacona premia. To jest celowe odwrócenie krótkiej……Pokaż więcejPokaż mniej

Wyraź widok trendu BTC poprzez długą leggę opcyjną SINGLE zamiast perpa, przekształcając wypłatę podążającą za trendem w wypukłą strukturę o zdefiniowanym ryzyku. Gdy BTC jest w potwierdzonym reżimie wzrostowym AND implied vol jest tanie, kup jeden ~5% OTM miesięczny CALL na Deribit; gdy w potwierdzonym reżimie spadkowym AND IV jest tanie, kup jeden ~5% OTM miesięczny PUT. Brak leggi zabezpieczającej, brak depozytu krótkiej pozycji — maksymalna strata to zapłacona premia. To jest celowe odwrócenie krótkiej zmienności zapisów cash-secured-put i niedyrekcyjnego long straddle już obecnego w pipeline'ie: tutaj jesteśmy LONG vega + LONG kierunek, zbierając grube prawe/lewe ogony zwrotów BTC, których perp trend-followerzy nie mogą uchwycić, ponieważ opór z tytułu opłat i stop whipsawy ich wykrwawiają. Pojedyncza legga trzyma to z dala od ścieżki wykonania opcji multi-leg, która nigdy nie przeszła weryfikacji (L2). Deribit BTC jest najbardziej płynnym rynkiem opcji krypto, ma greeks/IV w katalogu, a jednonożne struktury Deribit BTC już przeszły sandbox Layer-3 (long straddle, CSP write oba osiągnęły backtest_review), więc dostępność danych i wykonanie są odryzykowane. Wypełnia jednocześnie dwa najbardziej niedoreprezentowane wiadra: venue opcji (~5% vs cel 15%) i kierunek long_short (15% vs cel), z horyzontem średnim do długiego i tylko 4 parametrami.

Iteracja 3 — poprawka dla timeoutu zegara ściennego Layer-3 (>300s). Cała logika sygnału przeszła już warstwy 1 i 2, więc poprawka jest ograniczona wyłącznie do kosztu na bar, który nazwał feedback. Przyczyna źródłowa: _realized_vol_cheap() obliczała swoje odchylenie standardowe kroczące za pomocą pętli for Pythona po pełnej historii zamknięć (`for i in range(n): rolls[i] = rets[i:i+w].std()`) — O(n·w) na wywołanie, wykonywane jako tani-fallback IV na każdym barze, gdzie historia DVOL jest cienka (tj. cała……Pokaż więcejPokaż mniej

Iteracja 3 — poprawka dla timeoutu zegara ściennego Layer-3 (>300s). Cała logika sygnału przeszła już warstwy 1 i 2, więc poprawka jest ograniczona wyłącznie do kosztu na bar, który nazwał feedback. Przyczyna źródłowa: _realized_vol_cheap() obliczała swoje odchylenie standardowe kroczące za pomocą pętli for Pythona po pełnej historii zamknięć (`for i in range(n): rolls[i] = rets[i:i+w].std()`) — O(n·w) na wywołanie, wykonywane jako tani-fallback IV na każdym barze, gdzie historia DVOL jest cienka (tj. cała wczesna/lukowata część backtestu), co jest dokładnie wzorcem „przebudowywania listy wewnątrz on_bar na każdym barze", który opisuje diagnostyka. Poprawka: (1) zamień tę pętlę na w pełni zwektoryzowane odchylenie standardowe kroczące na bazie sumy skumulowanej (population std, ddof=0 — identyczne z domyślnym np.std), tak aby fallback był O(n) bez pętli Pythona; (2) memoizuj werdykt cheap-IV na każdy znacznik czasu bara (_iv_cheap_ts/_iv_cheap_val), tak aby powtarzane wywołania w ramach skanowania okresu/legga baru były O(1); ścieżka DVOL była już O(log n) za pośrednictwem np.searchsorted i jest nietknięta. Żadne importy, struktura klasy, logika reżimu, logika rollowania ani bramkowanie wejścia/wyjścia nie zostały zmienione — więc warstwy 1 i 2 nie mogą się zregresować. Jako zabezpieczenie (pas i szelki) przeciwko wolumenowi leg-bar (ten sam tryb awarii, który dotknął rodzeństwo rolling-options), konfiguracja przypina główny perp AND, leggę rolling_options `timeframe` do 1-DAY (expander domyślnie ustawia leggę na 1-HOUR, 6-24x wybuch leg-bar) i ustawia cap lookback_days na 365 (~12 okresów miesięcznych).

Implementacja

BTC Jednonożna strategia trendowa o wypukłej wypłacie z długiej opcji na Deribit MONTHLY, z filtrem taniej zmienności IV, kierunkowa w obu kierunkach. Główny BTC-PERPETUAL.DERIBIT (1-DAY) wyznacza zegar rolowania i dostarcza serię dziennych cen zamknięcia; instrumentami będącymi przedmiotem obrotu są wyznaczone miesięczne kontrakty call i put ~5% OTM. Gdy BTC znajduje się w potwierdzonym reżimie wzrostowym (cena powyżej rosnącej 50-dniowej SMA), a zmienność implikowana AND jest niska (DVOL percentyl <= 0.40, z użyciem percentyla zmienności zrealizowanej jako wartości zastępczej), strategia kupuje jedną miesięczną opcję OTM CALL; w potwierdzonym reżimie spadkowym AND, przy taniej IV, kupuje jedną miesięczną opcję OTM PUT. Maksymalnie jedna długa noga na miesięczne wygaśnięcie, rolowana na dalszy termin 5 DTE przed wygaśnięciem, z wcześniejszym wyjściem przy zmianie reżimu na niekorzystny dla nogi lub przy -70% katastroficznym stopie premii. Długa vega + długa ekspozycja kierunkowa, maksymalna strata = zapłacona premia, bez krótkiej pozycji ani nogi zabezpieczającej.

Wyniki weryfikacji

Weryfikacja nie powiodła się (Layer 3 — backtest w piaskownicy): test dymny przekroczył limit czasu 300s. Niemal zawsze oznacza to pracę wykonywaną dla każdego bara, której koszt rośnie wraz z długością historii — np. ponowne skanowanie całej serii fundingowej/dodatkowej albo odtwarzanie listy i wywoływanie min()/sorted() wewnątrz calculate_signal()/on_bar() dla każdego bara. Wstępnie oblicz posortowane tablice znaczników czasu ONCE w __init__ i użyj bisect albo buforuj wyniki wyszukiwania według znacznika czasu, aby koszt dla bara wynosił O(log n), a nie O(n).

Analityk: potwierdź total_trades w całym oknie; miesięczny program długich opcji z podwójną bramką może wygenerować zbyt mało transakcji, by wydać wiarygodny werdykt. Rozważ wydłużenie lookback_days poza 365, aby zgromadzić więcej terminów wygaśnięcia.

Niska liczba transakcji / moc statystyczna. Miesięczny termin (dte 30) w oknie retrospekcji łańcucha opcji wynoszącym 365 dni (~12 terminów wygaśnięcia), dodatkowo filtrowany przez bramkę potwierdzonego reżimu trendu BOTH oraz bramkę taniego IV AND, realistycznie daje znacznie mniej niż 10 długich nóg w oknie (test piaskownicowy wygenerował łącznie 9). To znacznie poniżej progu ~100 transakcji potrzebnego do wyraźnego oddzielenia przewagi od szumu, a szeroki przedział Sharpe'a CI ([-13.1, 11.1], PSR 0.77) potwierdza niską wiarygodność oszacowania. To cecha miesięcznego programu opcji z podwójną bramką, więc jest to zastrzeżenie dla analityka, a nie wada kodu. Nie należy jednak ufać Sharpe'owi/PF tej strategii bez znacznie dłuższego okna.

Sprawdź, czy BacktestRunner._apply_fees obejmuje instrumenty opcyjne DERIBIT; potwierdź niezerowe prowizje w całym backteście, zanim zaufasz avg_trade_return_pct.

Piaskownica raportuje total_commission=0.0001 (około zera) w przypadku 9 transakcji opcjami. Opłaty za opcje Deribit (0.03% instrumentu bazowego na kontrakt, z limitem 12.5% premii) mają istotne znaczenie dla opcji LONG, w których płaci się premię i ponosi opłaty zarówno przy otwarciu, jak i zamknięciu pozycji. Wynik prowizji bliski zeru sugeruje, że opłaty za opcje mogą nie być uwzględniane dla wstrzykniętych instrumentów opcyjnych, co zawyżałoby zwrot netto portfela długich opcji wymagających zapłaty premii. To problem silnika backtestu/opłat, a nie wada kodu strategii.

Rozważ domyślne ustawienie False (pominięcie wejścia), gdy nie można zmierzyć ani DVOL, ani RV, aby każde wejście rzeczywiście spełniało łączny warunek taniego IV; ewentualnie potwierdź w logach, że przy pobłażliwym wariancie awaryjnym nie otwarto żadnych pozycji.

Bramka taniego IV jest PERMISSIVE, gdy żadna z miar zmienności nie jest dostępna: jeśli historia DVOL jest krótka (< min_iv_samples) AND nie da się obliczyć zmienności zrealizowanej jako wariantu awaryjnego, _iv_cheap zwraca True, więc można otworzyć pozycję WITHOUT potwierdzenia warunku taniego IV. Hipoteza wymaga, aby tanie IV stanowiło warunek łączny („potwierdzony reżim AND IV jest tanie”). W przypadku BTC Deribit DVOL historia szybko się uzupełnia, więc wpływ ogranicza się do wczesnego/nieciągłego fragmentu backtestu. Jednak wszelkie transakcje zawarte w tym obszarze opierają się wyłącznie na reżimie, a nie na reżimie-AND-tanim-IV, zgodnie ze specyfikacją.

Analityk: sprawdź, czy wydatek na premię na transakcję stanowi rozsądną część kapitału (długie opcje o określonym ryzyku powinny narażać na ryzyko niewielki % kapitału na transakcję); jeśli kontrakt 1 jest zbyt duży w stosunku do kapitału, przejdź na wielkość pozycji opartą na budżecie premii (risk_frac).

avg_position_pct=93.6% w piaskownicy. Wielkość pozycji to stały kontrakt 1 na wejście według odziedziczonego _leg_size (contracts=1.0). W przypadku długiej opcji rzeczywistym ryzykiem jest zapłacona premia (ryzyko określone, dodatkowo ograniczone przez stop -70%), więc wysoka raportowana wartość position_pct prawdopodobnie odzwierciedla wycenę opcji przez silnik według NOTIONAL (kontrakty x instrument bazowy), a nie premii narażonej na ryzyko. Warto potwierdzić, że stała wielkość 1 kontraktów nie prowadzi do nadmiernej koncentracji portfela przy niskim kapitale ani do nieproporcjonalnie dużego wydatku na premie w stosunku do kapitału w całym backteście.

Przegląd backtestu

Sharpe
3,43
Łączna stopa zwrotu
10,15%
Maksymalne obsunięcie
9,79%
Łączna liczba transakcji
9
Trafność
44,4%
Współczynnik zysku
1,86

Mechanizm jest poprawny i przechodzi weryfikację: jedna długa noga opcyjna = wypukłe wyrażenie poglądu na trend o określonym ryzyku, bez ścieżki egzekucji wielonożnej.

Wypełnia dwie słabo reprezentowane kategorie (miejsce obrotu opcjami + kierunek long_short).

Tam, gdzie dochodzi do transakcji, wypukłość na transakcję wygląda korzystnie (PF 1.86, dodatnia skośność 1.55, tylko max_dd 9.8%).

Tylko 9 transakcji w całej dostępnej historii opcji; silnik oznacza metrics_reliable=false.

Cały zwrot netto pochodzi z jednego miesiąca odstającego (2026-02 +14.3%); pozostałe 8 miesiące mniej więcej znoszą się wzajemnie.

sharpe_ci_low = -13.1 — przedział Sharpe'a CI obejmuje 0; deflated_sharpe nie można obliczyć. Metryki nie mają znaczenia statystycznego.

Miesięczny łańcuch opcji Deribit BTC w katalogu obejmuje tylko ~12 terminów wygaśnięcia (od 2025-07); lookback_days=365 już go w całości obejmuje — żadna zmiana po stronie dewelopera nie doda okresów miesięcznych.

To druga próba z identycznym wynikiem 9 transakcji; ponowne iterowanie na tych samych ograniczonych danych to bezproduktywne kręcenie się w kółko.

Analiza

Nie NOT optymalizuj na 9 transakcjach (silnik oznaczył metrics_reliable=false, a cały zwrot +100% jest pojedynczym outlierem Feb-2026). Przyczyna źródłowa to pokrycie danymi, nie logika: rolling_options.lookback_days to 365, więc miesięczna ekspansja łańcucha znalazła tylko ~12 okresów (od 2025-07). Promowane rodzeństwo CSP użyło lookback_days=1100 i otrzymało łańcuch 36-okresowy wstecz do 2023. FIX: podnieś rolling_options.lookback_days do ~1100, tak aby miesięczny łańcuch BTC Deribit obejmował 2023-2026, dając ~36 okazji wejścia (~3x transakcji) i statystycznie testowalną próbkę obejmującą zarówno hossę 2024, jak i spadek 2025-26. Ponownie przeprowadź backtest i potwierdź, że edge przetrwa ponad ~30+ transakcji (pozytywna oczekiwana wartość NOT zależna od jednego miesiąca, win_rate i profit_factor stabilne) przed wydaniem mocy obliczeniowej na optymalizację. Zachowaj wszystko inne bez zmian.

Podsumowanie wyniku

Mechanicznie poprawna strategia opcyjna, która przeszła weryfikację, nadal nie może zostać zwalidowana, jeśli katalog zawiera tylko ~12 miesięcznych terminów wygaśnięcia — 9 transakcji, Sharpe CI z przedziałem od -13 do +11 i cały zwrot pochodzący z jednego miesiąca nie uzasadniają optymalizacji. Dlatego przed wielokrotnym iterowaniem należy potwierdzić głębokość łańcucha opcji.

Recenzent backtestu zwrócił werdykt „revise_hypothesis” na etapie bramki przed optymalizacją: mechanizm był poprawny i przeszedł weryfikację, ale miesięczny łańcuch opcji Deribit BTC w katalogu obejmuje zaledwie ~12 terminów wygaśnięcia (od 2025-07), więc lookback_days=365 już go w całości obejmuje i żadna zmiana po stronie dewelopera nie doda okresów — była to ponadto druga próba z identycznym wynikiem 9 transakcji, przez co dalsze iterowanie oznaczałoby bezproduktywne zmaganie się z ograniczeniem danych. Ostateczny etap zostaje porzucony.

Jednonożna strategia długich opcji na Deribit BTC miesięcznych terminów wygaśnięcia, która w wypukły sposób wyrażała kierunkowy pogląd na trend: w potwierdzonym reżimie wzrostowym i przy tanim IV kupowała opcję call OTM o cenie wykonania ~5%, a w potwierdzonym reżimie spadkowym i przy tanim IV — opcję put OTM o cenie wykonania ~5%. Utrzymywała maksymalnie jedną nogę o określonym ryzyku (maksymalna strata = premia) i rolowała ją co miesiąc.

Backtest zawarł tylko 9 transakcji w dostępnej historii opcji (6 opcji call, 3 opcji put, średnie wejście IV 0.323, vega netto przy wejściu +751, ~24 DTE) przy metrics_reliable=false: nominalny Sharpe 3.43 i współczynnik zysku 1.86, dodatnia skośność oraz maksymalne obsunięcie 9.8%, ale sharpe_ci_low z -13.1 (CI obejmujący zero), a cały zwrot netto wynika z jednego odstającego miesiąca (2026-02, +14.3%). Nie przeprowadzono etapu optymalizacji.

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.