Mariusz Prowaźnik

o programowaniu w Javie, Scali i Clojure.


Quantitative Trading - recenzja książki

Quantitative Trading to krótki i łatwy w odbiorze poradnik. Nie trzeba być bardzo skoncentrowanym, żeby go czytać, bo nie ma tam skomplikowanej matmy, ani trudnych modeli finansowych. Z drugiej strony, zawiera też stosunkowo mało przykładów algorytmicznych strategii. To taka książka do czytania w metrze przez kogoś mało rozeznanego w temacie rynków finansowych (czyli mnie na przykład). Można w niej przeczytać między innymi o:

  • Sharpe Ratio - określającym relację zysku do ryzyka ze strategii
  • "Kelly Formula" - które ma pomóc określić jak rozdzielić pieniądze pomiędzy różne strategie
  • "Fama French Three-Factor Model"
  • "survivorship bias" - błąd w testowaniu strategii, wynikający z testowania na danych nie zawierających notowań spółek, które upadły. Był na to dobry przykład: strategia "inwestuj 10 najtańszych akcji na rynku" testowana na danych obecnie istniejących spółek daje świetne rezultaty, ale nie w praktyce, bo 8 na 10 takich spółek upadnie.
Autor książki, Ernest Chan, opowiada też o swojej karierze, najpierw w hedge fundzie, potem jako niezależny trader. Jest to ciekawe, ale spodziewałem się więcej na temat budowania własnego zautomatyzowanego systemu "od śrubki do bomby" i innych technicznych spraw. A zawarta w książce lista darmowych i tanich źródeł danych jest już nieaktualna.

Podsumowując, dla mnie ta książka była ciekawa, ale czy była dobra, czy taka sobie, nie umiem określić. Wstrzymam się z taką oceną, dopóki nie wypróbuję rad z książki w praktyce.


Zagadka z błądzeniem losowym

Wyobraź sobie grę według takich zasad:

  • ustalasz z przeciwnikiem liczbę rund, np 100
  • wykładasz na stół 100 zł
  • podczas każdej z rund rzucasz monetą
    • jeśli wypadnie orzeł, przeciwnik dokłada do puli 50% tego, co obecnie leży na stole (jeśli leży 100 zł, dokłada 50 zł, jeśli leży 200 zł, dokłada 100 zł)
    • jeśli wypadnie reszka, przeciwnik zabiera 50% tego co leży na stole
  • po 100 rundach zgarniasz to, co zostało na stole

Zagadka brzmi: czy taka gra jest sprawiedliwa? Czy obaj macie takie same szanse, żeby zakończyć grę z większą ilością gotówki niż na początku?

Szanse pomyślnego rzutu w każdej rundzie obaj macie takie same, oraz taką samą kwotę tracicie w przypadku niepomyślego. Poza tym ty możesz stracić maksymalnie niecałe 100 zł, a twój przeciwnik o wiele więcej… A mimo to, najprawdopodobniej zostałbyś ogołocony z większości kasy.

Poniżej symulacja w R. Robimy 1000 prób i sprawdzamy z jaką pulą kończy pierwszy gracz.

Tylko w 4 przypadkach na 1000, gracz, który wykładał stówkę na stół coś na tym zyskał. Średnio kończył grę z 11 złotymi.

Na podobny problem natrafiłem w Quantitative Trading, tylko, że tam był przykład akcji, które każdego dnia z równym prawdopodobieństwem mogły wzrosnąć 1% albo spaść 1%. Okazuje się, że w takiej sytuacji, długoterminowo się traci i średnia dzienna procentowa strata będzie wynosić g równe:

gdzie m to średnia arytmetyczna, s to odchylenie standardowe. Czyli w przykładzie z zakładem, gracz A traciłby średnio 12,5% na rundę.

Dodatkowa zagadka na koniec: ile procent musiałby dokładać gracz B w przypadku przegranej rundy, żeby gra była sprawiedliwa?