ANALIZA TECHNICZNA

Optymalizacja strategii inwestycyjnej – perspektywa sztucznej inteligencji. Marek Stefaniak (Trustuko.com)

optymalizacja-strategii-sztuczna-inteligencja

Tworząc swój system inwestycyjny wybieramy narzędzia, do których mamy przekonanie. Zastanawiamy się też, jakie ich ustawienia będą najlepsze. Jednak optymalizacja strategii budzi kontrowersje. Różnie podchodzi się do zakresu czasowego testów wstecznych, minimalnej ich liczby czy kwestii reoptymalizacji. Przeprowadziłem rozmowę z Markiem Stefaniakiem, specjalistą w dziedzinie sztucznej inteligencji, twórcą projektu trustuko.com. Omawiamy metodologię optymalizacji strategii uruchamianych przez autonomiczne roboty.

Skąd wzięło się Twoje zainteresowanie sztuczną inteligencją?

Zawodowo zajmuję się budową systemów informatycznych dla usług finansowych, ukończyłem kurs Machine Learning na Uniwersytecie Stanford oraz stacjonarnie studiowałem matematykę. To pozwala mi projektować autonomiczne roboty handlujące.

Jak znaleźć optymalne parametry dla swojej strategii inwestycyjnej?

Nie jestem zwolennikiem podejścia „globalnego” do testowania strategii i szukania globalnych parametrów, które statystycznie dobrze działają na dużych zakresach dat – na kilku hossach, bessach i okresach trendu bocznego. Moje podejście polega na szukaniu sposobu wyliczania parametrów strategii w zależności od rynku. Jeśli przykładowo budujemy strategię opartą o średnie albo oscylatory, to powinna mieć inne wartości parametrów w zależności od hossy i rynku bocznego. Moim celem zatem nie jest odszukanie jednej „magicznej” konfiguracji, ale na bieżąco, każdego dnia, wyliczanie najbardziej optymalnych wartości.

Czy zatem klasyczne optymalizacje nie mają sensu nawet na dużym zakresie czasowym?

Moim zdaniem nie mają, ponieważ prosty wynik statystyczny na dużym zakresie dat niewiele mówi o tym, jak zachowuje się strategia i jakie są szanse na powtórzenie wyników w przyszłości.

Testując w różnych okresach można więc jedynie zobaczyć jak strategia zachowuje się na różnych rodzajach rynku.

Tak, to bardzo dobra praca na etapie weryfikacji hipotezy strategii, która początkowo musi zostać potwierdzona prostym modelem statystycznym.

Jak w takim razie podchodzić do optymalizacji?

Moim zdaniem osobno należy traktować każdy walor, a nie szukać parametrów wspólnych dla wszystkich. Wynika to chociażby z tego, że różne akcje są inaczej skorelowanie. Jedna konfiguracja dla całego rynku nie jest optymalna. Ja do optymalizacji używam algorytmów sztucznej inteligencji, które w dużym uproszczeniu rozpoczynają proces optymalizacji od losowych wartości parametrów i następnie w procesie zastosowania bardzo wydajnych narzędzi matematycznych oraz informatycznych wyliczają najbardziej zyskowną konfigurację parametrów.

Jak rozwiązać kwestię wyboru zakresu czasu?

W tym obszarze algorytmy sztucznej inteligencji mają przewagę nad klasycznym podejściem do testowania strategii. W metodologię testowania tych algorytmów wpisany jest sposób określania wielkości zbiorów uczących. Za pomocą wykresu krzywej uczącej można łatwo określić, czy zbiór treningowy jest odpowiedni, czy jest za duży lub za mały. Nie ma generalnej zasady określającej optymalną wielkość zbiory treningowego, zależy on od modelu, algorytmu oraz dziedziny której algorytm się uczy.

Wiem, że w przypadku klasycznego podejścia do testowania transakcji, wielkość zbioru jest zawsze problematyczna, ponieważ w zależności od rozmiaru strategia generuje inne wyniki. Ja rozwiązałem ten problem uruchamiając proces automatycznego i ciągłego optymalizowania strategii. Jeżeli w wyniku procesu uczenia, strategia testowa uzyskuje lepsze wyniki niż strategia na rynku realnym, to aktualizuje parametry. Dzięki takiemu podejściu mam pewność, że strategia na bieżąco reaguje na zmiany rynku.

Jaka powinna być minimalna liczba transakcji w testach wstecznych?

Nie ma jednej dobrej odpowiedzi, to zależy od użytego modelu. Generalnie im bardziej złożony model, tym liczba powinna być większa ponieważ model dopuszcza więcej kombinacji. Zadowalającą wielkość określam za pomocą krzywej uczącej. Jeśli dla kolejnych transakcji błąd prognozy nie zmniejsza się znacząco, znaczy to, że algorytm jest dobrze wytrenowany.

Zdarza się, że ktoś przedstawia nam stopy zwrotu swojej strategii. Skąd mamy wiedzieć, czy wyniki strategii to nie przypadek?

To klasyczny przykład mówienia o przeszłości, która na rynkach finansowych nie ma dużej wartości. Nawet jeżeli to prawda, nawet jeśli zobaczysz wyniki potwierdzające na realnym rynku, to istotne jest inne pytanie. Jakie jest prawdopodobieństwo powtórzenia tego wyniku w następnym roku? Tu otwiera się przestrzeń do ciekawych dyskusji. Generalnie bardziej sensowne jest pytanie nie o stopę zwrotu, lecz o ideę jaka stoi za danym pomysłem inwestycyjnym.

„Podskórnie” czujemy, że wyniki w okresie np. dwóch hoss i dwóch bess są bardziej wiarygodne niż tylko podczas np. jednej hossy.

Ja bardzo sceptycznie podchodzę do strategii, które żyją kilka hoss i nie zmieniają swoich parametrów. Nie znaczy to, że taka strategia nie może zarabiać, ale wydaje mi się że jest to nieoptymalne podejście. Głównie dlatego, że rynek zmienia się bardzo szybko, m.in. w wyniku zmian technologicznych, automatyzacji. Bardziej efektywnym jest dostosowywanie parametrów strategii do ryzyka, które występuje na rynku.

Czy masz na myśli zarządzanie wielkością pozycji?

Mam tu na myśli kwotę jaka powinna być zainwestowana w konkretnej transakcji.

Kolejnym problemem takich długich okresów czasu jest sposób mierzenia skuteczności strategii. Bez rozumienia metod statystycznych można wyciągać błędne wnioski z metryki strategii. Dla mnie największym problem z optymalizacją strategii jest brak gwarancji powtórzenia jej wyników w przyszłości. Ten problem jest szczególnie istotny w długich okresach testowania strategii, wynik statystyczny może być zadowalający, ale trudno określić na jaki okres testowania strategii był najbardziej efektywny. Może się okazać, że wydłużając czas trwania strategii poprawiamy jej wynik tylko dlatego, że strategia dobrze pracowała w przeszłości, a obecnie już nie zarabia. Ja stosuje zasadę ciągłej optymalizacji, ciągłego uczenia się rynku i ciągłej zmiany parametrów strategii. Jeśli system wykryje, że uczenie na nowych danych daje lepsze wyniki niż wcześniej wytrenowana strategia, wtedy zmieniam parametry zgodnie z najnowszymi wyliczeniami.

Gdy rynek się zmienia, algorytm dostosowuje parametry. Jednak po aktualizacji, nowa rzeczywistość może być już tylko przeszłością. Czy przy takim podejściu algorytm nie będzie permanentnie spóźniony?

Tak, to jeden z największych problemów. W ujęciu teoretycznym sztuczna inteligencja działa w ten sposób, że uczy się jakiejś dziedziny, która jest stała i niezmienna. Rynek finansowy jest zupełnie inny. Algorytm musi się ciągle uczyć. Parametry powinny być zmienione m.in. w zależności od tego czy na rynku hossa, bessa czy trend boczny.

Jak często należałoby powtarzać optymalizację?

Dla strategii które tworzą krótkie transakcję, należy optymalizować ciągle – na koniec każdego dnia  (lub nawet w ciągu dnia dla strategii działających na okresach mniejszych niż D1). Dla strategii długoterminowych (od roku w górę) można optymalizować np. raz na tydzień.

Innym problemem jest sposób określenia benchmarku, wiedzy o tym, na jakim rynku strategia działa dobrze, a na jakim źle. Ważne jest to dlatego, żeby nie psuć strategii, gdy to rynek nie pozwala jej zarabiać.

Im bardziej skomplikowany jest model strategii, tym większe ryzyko, że powstał w wyniku przeoptymalizowania (zbytniego dopasowania do danych). Gdzie jest granica skomplikowania modelu?

Nawet proste modele matematyczne można za bardzo dostosować do danych testowych i z tego powodu uzyskać fatalne wyniki na koncie realnym. Model powinien być najprostszy jak to tylko możliwe, ale nie ma sensu na siłę budować proste modele. Czasem dodanie kilku parametrów może znacząco poprawić skuteczność strategii. Model jest zbyt złożony, jeśli autor przestaje rozumieć reguły jego działania, lub gdy komputer nie jest w stanie efektywnie uczyć się tego modelu.

Tagi