Python w handlu algorytmicznym: kiedy programowanie jest potrzebne
Python w handlu algorytmicznym dla wielu początkujących brzmi jak wysoka poprzeczka: kto chce używać StrategyQuant X, aby budować zautomatyzowane strategie, wcześnie zadaje sobie pytanie, czy musi umieć programować. Krótka odpowiedź brzmi: nie, bo rdzeń tego oprogramowania jest pomyślany do budowania strategii bez własnego kodu. Mimo to w programie jest kilka miejsc, w których programowanie, także z Pythonem, można podpiąć. Ten artykuł pokazuje, co daje droga no-code, gdzie zaczyna się opcjonalna warstwa programowania i jak użytkownik faktycznie używa Pythona w praktyce.
Python w handlu algorytmicznym: najpierw rdzeń no-code
Według wpisu na blogu producenta za pomocą StrategyQuant można budować strategie handlowe, nie pisząc ani jednej linii kodu. Oprogramowanie składa reguły, wskaźniki i klocki, które wybierasz i łączysz przez interfejs, zamiast je programować.
To opis z marketingu producenta, a nie niezależnie sprawdzona specyfikacja techniczna. Nie mówi nic o tym, czy tak zbudowana strategia okaże się na końcu skuteczna, ani o tym, czy strategie programowane wypadają zasadniczo lepiej lub gorzej niż budowane no-code. Dla początkujących oznacza to przede wszystkim: możesz zacząć budować własne strategie, nie ucząc się wcześniej języka programowania.
Warstwa programowania: co dodatkowo daje Code Editor
Poza rdzeniem no-code producent dokumentuje trzy miejsca, w których można podpiąć własne programowanie: Code Editor, interfejs Program i rozszerzenie Custom Analysis.

Edytor kodu łączy w sobie kilka punktów wejścia. Należą do nich publiczne API, praca z Result Groups, dodawanie własnych wskaźników lub sygnałów, własnych kolumn lub filtrów w Databank, logowanie oraz włączanie własnych bibliotek JAR, a także import lub eksport własnych wskaźników i snippetów.

Jak dokładnie nazywają się poszczególne pozycje menu, może się różnić między wersjami programu. Ważne dla uporządkowania: Code Editor jest rozszerzeniem, a nie warunkiem. Nie każdy z wymienionych punktów wejścia jest dostępny od razu bez żadnego doświadczenia w programowaniu, poszczególne zakładają podstawową znajomość programowania.
Udokumentowane przykłady sesji programistycznych pokazują, do czego można wykorzystać tę drogę: optymalizacje i backtesty można uruchamiać przez kod, podobnie backtesty z dodatkowymi testami odporności. Również parametry strategii i konfigurację zadania można zmieniać przez kod, a dane historyczne można wczytywać do własnych snippetów. To przykłady z udokumentowanych przebiegów pracy, nie obowiązkowe kroki dla każdego użytkownika i także nie pełna lista wszystkich możliwych sesji programistycznych.
Interfejs Program: bloki wywołują się nawzajem
Dla własnych snippetów lub pluginów producent dokumentuje ponadto interfejs Program. Przez niego własny blok może wywołać funkcjonalność z innych pluginów lub z wbudowanej biblioteki programu, zwykle pobierając najpierw pasujący interfejs, a następnie wywołując metodę z potrzebnymi parametrami.
Ten interfejs należy do wewnętrznego API dla własnego rozwoju i jest skierowany do kogoś, kto już programuje. Nie jest to funkcja dla początkujących, którą można by używać bez doświadczenia w programowaniu.
Custom Analysis: podłączyć własne obliczenia i zewnętrzne skrypty
Kolejne udokumentowane rozszerzenie nazywa się Custom Analysis. Pozwala stosować własne obliczenia lub filtry na wygenerowanych, ponownie przetestowanych lub zoptymalizowanych strategiach, również na całych databankach. Należy do tego możliwość wywoływania zewnętrznych programów lub skryptów, na przykład Python.

Custom Analysis to punkt rozszerzenia odpowiedniego modułu. Współdziałanie z Pythonem jest dzięki temu możliwe, ale to połączenie nie dostarcza automatycznie lepszych strategii. To, czy i jak go użyjesz, pozostaje twoją decyzją.
Przykład z praktyki: do czego użytkownik faktycznie używa Pythona
Jak to może wyglądać w praktyce, opisuje autor we własnym wpisie. Używa Pythona obok StrategyQuant do kilku zadań: do analizy baz danych wyników, do własnych skryptów w ramach analitycznego przepływu pracy, do korzystania z wiersza poleceń SQX, do dekorrelacji strategii, do stosowania uczenia maszynowego oraz do tego, by z istniejących strategii wyodrębniać reguły i budować z nich nowe własne elementy.
To jest przepływ pracy jednej osoby, nie oficjalna lista funkcji producenta i nie droga, którą każdy użytkownik musi odtworzyć.
Seria wideo na start
Kto chce się wdrożyć w podstawy, znajdzie punkt zaczepienia we wpisie na blogu producenta: opisany jest tam spójny kurs wideo, udostępniany jako playlista, który omawia budowę strategii dla rynków forex, futures i akcji.
To również jest opis z wpisu na blogu. Treść i dostępność playlisty mogą się z czasem zmienić. Taki kurs nie zastępuje własnej weryfikacji wyników i nie jest obietnicą, że po nim będziesz automatycznie prowadzić transakcje z sukcesem.
Czego to porównanie nie pokazuje
Ten artykuł nie porównuje, czy strategia rozszerzona o Python jest ostatecznie skuteczniejsza niż ta, która powstała wyłącznie z no-code kreatora. Nie chodzi tu też o to, która droga jest lepsza. Chodzi o to, jakie narzędzia w ogóle masz do dyspozycji, a decyzja za programowaniem albo przeciw niemu należy do ciebie, nie do oprogramowania.
Z własnym kodem czy bez: każdy wynik backtestu lub optymalizacji, który przy tym powstaje, opisuje wyłącznie dane z przeszłości. Nie pozwala stwierdzić, jak strategia zachowa się w przyszłości.
Ten artykuł ma charakter edukacyjny i nie stanowi porady inwestycyjnej. Wyniki historyczne, także z backtestów, nie gwarantują przyszłych wyników. Handel instrumentami finansowymi wiąże się z ryzykiem i możesz stracić pieniądze.
Ten artykuł ma charakter edukacyjny i nie jest doradztwem inwestycyjnym. Wyniki osiągnięte w przeszłości nie gwarantują przyszłych wyników.
A jak ty to robisz? Opowiedz w społeczności. Za darmo, w twoim języku.
Zarejestruj się za darmo