Automatyzacja strategii opcyjnej w QuantConnect
Moja podstawowa strategia opcyjna opiera się na sprzedaży spreadów z terminem wygaśnięcia w okolicach 40 dni (DTE ~40). W praktyce łączę kilka prostych wskaźników z wykresu z odpowiednią konstrukcją pozycji. Gdy system wygeneruje sygnał, weryfikuję potwierdzenia i warunki wejścia, a następnie otwieram spread o delcie około 0,30 – to kompromis między prawdopodobieństwem zysku a wysokością premii i ryzykiem maksymalnym.
Zysk czasu
Na zarządzanie tą strategią poświęcam zwykle 2–3 godziny tygodniowo. Co ciekawe, identyczna logika sprawdza się także na opcjach tygodniowych. Problem jest prozaiczny: przy obowiązkach domowych i kilku innych pasjach nie mam przestrzeni, by aktywnie obsługiwać „tygodniówki”. Stąd pomysł automatyzacji. Jeśli selekcję okazji i otwieranie pozycji przejmie bot, zyskam nie tylko czas, lecz także możliwość handlowania seriami, których dotąd nie byłem w stanie obsłużyć. To realne zagęszczenie transakcji przy jednoczesnym odciążeniu kalendarza.
Odcięcie emocji
Automat ma jeszcze jedną, kluczową zaletę: odcina emocje od procesu. Na żywo łatwo ulec nastrojom rynku. Gdy widzę panikę, mam odruch, żeby nie otwierać niczego (co bywa rozsądne), ale euforia zachęca do przelewarowania lub zagrywek „poza planem”. Takie decyzje mogą chwilowo przynieść zysk, jednak prędzej czy później kończą się ciosem, który potrafi skasować miesiące pracy. Historia Nicka Leesona i upadku Barings Bank jest tu ostrzegawczym symbolem: dobre wyniki w krótkim horyzoncie nie zastąpią dyscypliny i ram. Po latach pracy nad sobą wiem, że te instynkty nie znikają całkowicie. Bot robi coś, czego człowiek nie umie w 100% utrzymać: konsekwentnie egzekwuje zasady. Jeśli kryteria są spełnione – otwiera lub zamyka pozycję. Jeśli nie – nic nie robi.
Backtest
Automatyzacja nie oznacza jednak, że „wychodzę z kokpitu”. Planuję na bieżąco monitorować działanie systemu, porównywać transakcje z założeniami strategii i szybko wyłapywać potencjalne problemy – od jakości sygnałów po kwestie techniczne. Dodatkowy atut zautomatyzowanego podejścia to możliwość rzetelnych backtestów. Gdy strategia jest skodyfikowana, mogę szybciej optymalizować parametry, testować ją na innych aktywach i rozszerzać o kolejne moduły (np. zarządzanie kapitałem, filtrowanie zmienności, logikę „rollowania” pozycji).
Quantconnect
Do budowy bota wybrałem QuantConnect. To kompletne środowisko do algotradingu: od narzędzi analizy technicznej i elementów statystycznych, przez backtesty, po uruchomienie live na dedykowanym węźle w chmurze. Co ważne, nie trzeba być zawodowym programistą Pythona – wystarczy solidna znajomość podstaw. Resztę można dobudować, korzystając z dokumentacji, materiałów edukacyjnych oraz współczesnych narzędzi AI.
www.quantconnect.com
W tej serii pokażę krok po kroku, jak przejść od idei do działającej automatyzacji. Dzisiaj zaczynam od absolutnych fundamentów – pierwszego zlecenia na zakup opcji call na ETF SPY (odzwierciedlający S&P 500). Zaimplementuję prostą, „techniczno-poglądową” strategię: w poniedziałek kupuję call z wygaśnięciem za 4 dni, a pozycję zamykam przy zysku +50% lub stracie –50%. Ta taktyka sama w sobie nie ma większego sensu inwestycyjnego i nie powinna być używana na realnym rachunku; służy wyłącznie temu, by zademonstrować mechanikę: wejście → monitorowanie → wyjście. Przy okazji zobaczysz, jak działa backtest w QC.
Nie będę omawiał całego kodu — skupię się na kluczowych elementach. W metodzie Initialize ustawiam główne parametry: zakres backtestu (od 1 stycznia 2020 r. do 14 września bieżącego roku), wielkość konta (20 000 dolarów), model brokera (Interactive Brokers) oraz typ rachunku (Margin). Określam też rozdzielczość danych dla algorytmu — w tym przypadku minutową.

Następnie definiuję parametry specyficzne dla strategii, m.in. alokację wielkości pozycji na poziomie 5% wartości konta. Initialize uruchamia się raz po starcie bota i porządkuje całą konfigurację.

Dalej mam kilka funkcji pomocniczych, a sercem systemu jest OnData. To tutaj zachodzi cała logika — metoda wywoływana jest po zamknięciu każdej świecy minutowej. Sprawdzam w niej m.in. realizację poziomów SL i TP. Jeśli algorytm znajduje się w oknie transakcyjnym („trade window”) i nie ma otwartej pozycji, kupuje opcję call z terminem wygaśnięcia za 10 dni.

Rozmiar pozycji wynosi 5% kapitału, zlecenie składane jest jako market order, a następnie ustawiane są poziomy TP i SL. Po egzekucji zlecenia uruchamia się dedykowana metoda korygująca TP/SL do rzeczywistej ceny wejścia. Na końcu zaimplementowana jest procedura wcześniejszego zamykania pozycji przed wygaśnięciem, jeśli zajdą odpowiednie warunki.

Rezultaty backtestu
Po uruchomieniu backtestu otrzymujemy wyniki: możemy podejrzeć krzywą kapitału (equity curve) i podsumowanie rezultatów. W tym przykładzie strategia wygenerowała symboliczny zysk 37 USD. Ten rezultat jest nieistotny — nie stosowaliśmy tu zarządzania wielkością pozycji; po prostu kupowaliśmy jeden kontrakt.

Aby pokazać, jak łatwo modyfikować parametry w backteście, zmienię zasady zarządzania pozycją tak, by alokacja wynosiła 25% kapitału.

Na wykresie widać, że nawet tak drobna zmiana wywarła duży wpływ na wynik. Strategia co prawda „wystrzeliła” w pierwszym roku i pokazała spektakularny zysk, ale później oddała go w całości i już się nie podniosła. To sygnał, że sama alokacja nie uratuje kiepskiej logiki wejść/wyjść — bez solidnego zarządzania ryzykiem i filtrów rynkowych strategia pozostaje krucha.

Można by pomyśleć, że większa pozycja automatycznie przełoży się na proporcjonalnie większy zysk. Tymczasem wyniki backtestu pokazują, że to nie takie proste – zwiększenie wielkości pozycji potęguje zarówno zyski, jak i straty, a w dłuższym horyzoncie może doprowadzić do całkowitego wymazania kapitału. Kontrola ryzyka to nie ozdobnik w strategii, lecz jej fundament.
Przypomina mi się tu słynny cytat z filmu Rocky: „Nie chodzi o to, jak mocno potrafisz uderzyć, lecz o to, ile ciosów jesteś w stanie przyjąć i wciąż iść naprzód”. W tradingu działa to tak samo – wygrywa nie ten, kto raz trafi „home run”, lecz ten, kto potrafi przetrwać serię strat, utrzymać kapitał i konsekwentnie realizować plan. Dopiero wtedy matematyczna przewaga strategii ma szansę się zmaterializować.

