Recenzja książki
Uczenie przez wzmacnianie w finansach. Wprowadzenie z wykorzystaniem Pythona
- Praktyka 6/10 ile da się wdrożyć
- Głębia 5/10 siła argumentu
- Aktualność 7/10 czy nie zestarzała się
Hilpisch buduje agenta, który uczy się przewidywać kierunek rynku z dokładnością wyraźnie powyżej rzutu monetą, a potem własnymi rękami pokazuje, dlaczego nie wolno się tym ekscytować. Trzymamy tę książkę w bibliotece nie dla kodu, choć kod tu jest, lecz dla tej drugiej części: to jedno z niewielu wprowadzeń do uczenia ze wzmocnieniem (reinforcement learning, RL) w finansach, które zamiast sprzedawać marzenie o maszynie do zarabiania, uczciwie nazywa każde miejsce, w którym model kłamie. Dla nas, którzy liczymy wszystko w jednostkach R i po kosztach, taki ton jest wart więcej niż kolejna sieć neuronowa.
Jak książka sama się rozbraja
Yves Hilpisch prowadzi The Python Quants i ma na koncie kilka grubych tomów o Pythonie w finansach. Ta pozycja jest cieńsza i węższa: to polskie wydanie „Reinforcement Learning for Finance”, zwięzłe wprowadzenie do jednej rodziny metod, głównie Deep Q-Learning (DQL), zastosowanej do problemów rynkowych. Książka idzie od podstaw uczenia z interakcji, przez agenta grającego w CartPole z biblioteki Gymnasium, aż do czterech zastosowań finansowych: handlu kierunkowego, dynamicznego hedgingu opcji, alokacji aktywów i optymalnej realizacji dużego zlecenia.
Najciekawsza rzecz dzieje się już w rozdziale trzecim. Hilpisch buduje środowisko Finance, które celowo naśladuje API gry CartPole, sadza w nim tego samego agenta DQL i pokazuje, że potrafi on przewidywać następny ruch rynku ze skutecznością istotnie wyższą niż bazowe 50 procent. Brzmi jak początek historii o świętym Graalu. I dokładnie w tym momencie autor zatrzymuje się, żeby ten Graal stłuc:
Jednak środowisko Finance ma dwie poważne, powiązane ze sobą wady: ograniczoną ilość danych i brak wpływu akcji.
Yves J. Hilpisch, Rozdział 3
To zdanie ustawia całą resztę książki. Agent, który „przewiduje rynek”, robi to w świecie zbudowanym z dwóch wygodnych kłamstw, a Hilpisch zamiast je przemilczeć, rozkłada oba na czynniki pierwsze. Dla czytelnika szukającego gotowej strategii to rozczarowanie. Dla nas to powód, dla którego ta książka w ogóle trafiła na półkę.
Dane jak jedna partia szachów
Pierwsza wada dotyczy danych. Środowisko Finance uczy się na jednym, statycznym szeregu czasowym: ten sam zbiór, ten sam stan początkowy, te same kolejne stany przy każdym resecie. W grze planszowej agent może rozegrać miliony partii sam ze sobą i w praktyce ma dane nieograniczone. Na rynku tego luksusu nie ma, a Hilpisch oddaje to obrazem, który zostaje w głowie:
Sytuacja wygląda tak, jakby agent uczący się przez wzmacnianie poznawał grę w szachy tylko na podstawie pojedynczej historycznej partii, którą nieustannie by powtarzał.
Yves J. Hilpisch, Rozdział 3
Każdy, kto robił backtest, zna ten dreszcz. Model wygląda świetnie, bo dopasował się do jednej realizacji historii, której nigdy więcej nie zobaczy. Autor jest tu uczciwy do końca i dodaje, że dorzucenie kolejnych serii czy danych intraday łagodzi problem, ale go nie usuwa, bo dane finansowe są z definicji skończone. Cała druga część książki, symulacje Monte Carlo i sieci GAN, jest próbą obejścia tej ściany przez sztuczne mnożenie danych. To dobra inżynieria, lecz warto pamiętać, że dane wygenerowane dziedziczą założenia modelu, który je wyprodukował. Jeśli generator nie zna grubych ogonów ani zmienności skupionej w czasie, agent też się ich nie nauczy.
Wzmacnianie bez konsekwencji
Druga wada jest subtelniejsza i ciekawsza. W szachach czy w CartPole działanie agenta zmienia następny stan świata: ruch figurą, pchnięcie wózka. W środowisku Finance prognoza agenta nie rusza rynku ani o pip. Kolejna cena pojawia się niezależnie od tego, co agent zrobił. Hilpisch zauważa, że dla pojedynczego, drobnego gracza to założenie jest rozsądne, bo nikt z nas nie poruszy kursu EUR/USD jednym kliknięciem. Ale potem stawia pytanie, które uderza w sam fundament metody:
W jaki sposób miałoby się odbywać „wzmacnianie”, gdyby działania nie miały żadnego wpływu?
Yves J. Hilpisch, Rozdział 3
To jest dobre pytanie i autor nie ucieka od jego ciężaru. Sięga nawet po trzy poziomy wnioskowania przyczynowego Pearla, żeby pokazać, że agent przewidujący szereg czasowy operuje na najpłytszym z nich, na korelacji, a nie na realnym wpływie. Dla praktyka płynie stąd konkretny wniosek. Tam, gdzie nasze decyzje naprawdę zmieniają świat, czyli przy wejściu w pozycję i wyjściu z niej, pojawiają się poślizg i koszt, których model predykcyjny nie widzi. Co znamienne, jedyny rozdział, w którym wpływ działań jest wbudowany w model, to ten o realizacji dużego zlecenia, i nieprzypadkowo jest też najbliższy realnej mechanice rynku.
Rynek bez kosztów
Tu dochodzimy do zdania, dla którego naprawdę warto mieć tę książkę w naszym warsztacie. W uwagach końcowych Hilpisch podsumowuje, w jakim świecie żyły wszystkie jego agenty, i robi to bez owijania:
Ponadto środowiska pod kilkoma względami działają jak rynki „doskonałe”. Na przykład pomijam koszty transakcyjne i ogólnie zakładam doskonałą płynność.
Yves J. Hilpisch, Rozdział 10
To jest dokładnie ta linia, którą u nas podkreślamy na czerwono. Agent nagradzany w świecie bez prowizji, bez opłat giełdowych, bez spreadu i bez poślizgu optymalizuje wynik, którego na rachunku nie zobaczysz. Na MES (kontrakt Micro E-mini S&P 500, na którym pracujemy) koszt jednej rundy potrafi zjeść większość przewagi setupu, który na papierze wygląda dochodowo. Jeśli funkcja nagrody nie liczy kosztu, agent nauczy się handlować za dużo, bo w jego świecie handel jest darmowy. Hilpisch sam wskazuje wyjątek: rozdział o optymalnej realizacji zleceń, gdzie koszty i wpływ transakcji są w modelu jawnie. I to jest dla nas najważniejszy rozdział całej książki, bo jako jedyny gra według reguł, w których naprawdę żyjemy. Reszta pokazuje mechanizm w próżni, a my czytamy ją z poprawką: dopóki nagroda nie jest policzona po kosztach, wynik z symulacji jest opowieścią, nie obietnicą.
Jak tego używamy
U nas ta pozycja ma rolę roboczą, nie inspiracyjną. Rdzeń systemu R&D na MES to dziś pomiary, koszty i logika setupów. RL ma wejść później, w warstwę decyzyjną: testowanie, ile i kiedy, a nie tylko czy wchodzić. Kiedy do tego dojdziemy, Hilpisch da nam cztery gotowe szkielety zastosowań finansowych, które łatwiej przerobić pod własny problem niż budować od zera. Hedging, alokacja i realizacja zlecenia to akurat te problemy kontroli dynamicznej, w których RL ma sens, bo decyzje są sekwencyjne i zależne od stanu rynku.
Bierzemy stąd jednak nie kod, tylko dyscyplinę. Po pierwsze, traktujemy projekt funkcji nagrody jako decyzję pierwszego rzędu i wpisujemy w nią koszt transakcyjny, spread i poślizg, zanim w ogóle uruchomimy trening. Inaczej powtórzymy błąd doskonałego rynku z książki. Po drugie, pamiętamy o jednej historycznej partii szachów i trzymamy zbiór testowy nietknięty aż do końca, bo agent uczony na jednej realizacji historii bardzo łatwo myli dopasowanie z umiejętnością. Po trzecie, czytamy rozdział o realizacji zleceń uważniej niż pozostałe, bo to on modeluje świat z konsekwencjami, a nie próżnię. Książka nie policzy tego za nas. Daje za to działające środowiska i, co rzadsze, mapę miejsc, w których najłatwiej okłamać samego siebie.
Czego tu nie ma
Najuczciwiej o książce mówi się tam, gdzie pęka. Pierwsze pęknięcie autor deklaruje sam:
W tej książce przyjmuję podejście praktyczne. Dlatego teorię omawiam tylko na minimalnym niezbędnym poziomie lub nawet całkowicie pomijam.
Yves J. Hilpisch, Rozdział 10
To świadomy wybór, nie wada przez przypadek, ale trzeba go znać przed sięgnięciem po książkę. Kto chce zrozumieć, dlaczego DQL zbiega albo kiedy się rozjeżdża, nie znajdzie tu wyprowadzeń. Po teorię trzeba sięgnąć do Suttona i Barto, na których autor zresztą odsyła. To wprowadzenie pokazuje, jak coś zakodować, a nie dlaczego to działa.
Drugie pęknięcie: środowiska są celowo skromne. Stan to kilka liczb, agent najczęściej ma dwa albo trzy ruchy, modele bazowe to proste geometryczne ruchy Browna. Hilpisch prosi wprost, żeby traktować jego kod jako punkt wyjścia, nie gotowy produkt, i ta prośba jest szczera, ale oznacza też, że droga od przykładu do czegokolwiek bojowego jest długa.
Trzecie: to książka o kodzie z konkretną datą ważności. Przykłady stoją na TensorFlow 2.13 i wygodnie chodzą na firmowej platformie autora, Quant Platform. Jedno i drugie się starzeje, a zależności w uczeniu maszynowym potrafią się posypać po roku. Sama idea DQL przetrwa, otoczka raczej nie. I czwarte, oczywiste, lecz warte powtórzenia: rozdział o handlu kierunkowym to ćwiczenie dydaktyczne, nie strategia. Kto liczy na gotową receptę na wejście, odłoży książkę rozczarowany, a autor pierwszy mu to powie.
Werdykt
Praktyczność 6, głębia 5, aktualność 7. Aktualność stawiam najwyżej, bo to jedno z nielicznych wprowadzeń, które bierze RL natywnie od strony finansów, a nie jako poligon obok gier i robotyki, i trafia dokładnie w warstwę decyzyjną, którą u nas planujemy na później. Punktów wyżej nie daję, bo przykłady są na poziomie zabawki, a najbliższy nam temat, czyli koszty i mikrostruktura, dostaje tylko jeden rozdział.
Praktyczność pośrodku i celowo niżej niż u szerszych podręczników RL. Kod tu jest, działa i daje cztery finansowe szkielety, ale jest świadomie minimalny, osadzony na firmowej platformie i na starzejącej się wersji TensorFlow, więc do realnego użytku wymaga sporo własnej pracy. To narzędzie wstępne, nie warsztat gotowy do boju.
Głębię stawiam najniżej z trzech wymiarów, spójnie z tym, co napisałem o krytyce: autor sam deklaruje, że teorię pomija, więc trudno oczekiwać tu pogłębionej analizy metody czy rynku. Ratuje ją jedna rzecz, dla której w ogóle warto czytać tę pozycję, czyli intelektualna uczciwość rozdziału o tym, gdzie analogia z grami zawodzi. Nie jest to głęboka książka o teorii RL, lecz uczciwa książka o granicach RL w finansach, i tę uczciwość cenimy wyżej niż jeszcze jeden tom pełen obietnic.
Komu polecić? Praktykowi, który zna Pythona i podstawy uczenia maszynowego, planuje kiedyś dołożyć warstwę decyzyjną opartą na RL i chce zacząć od finansowo osadzonych przykładów, a nie od Atari. Kto szuka gotowej strategii albo solidnej teorii, trafi pod zły adres. U nas książka czeka na swój moment, na etap, w którym system zacznie wspierać decyzje o wielkości pozycji i czasie wyjścia. Wtedy sięgniemy po nią z jednym warunkiem zapisanym z góry: każda nagroda policzona po kosztach, bo rynku doskonałego z tych przykładów na naszym rachunku nie ma.