Pobierz skondensowaną porcję wartościowej wiedzy o inwestowaniu!🙂

Bez względu na to, czy nam się to podoba, czy nie, komputery samodzielnie zawierające transakcje na rynkach finansowych są dziś faktem. I nie wydaje się, by ten trend mógł się odwrócić. Są rynki, na których większość transakcji jest obecnie realizowana już nie przez ludzi, ale właśnie przez komputery i stojące za nimi algorytmy.

W tym odcinku postawiłem sobie za cel przybliżyć Ci w prosty sposób funkcjonowanie takich algorytmów. Dowiesz się o wadach i zaletach podejścia algorytmicznego. Powiem też, w jaki sposób algorytmy mogą być wykorzystane i po co przez małego inwestora indywidualnego, jakim być może jesteś właśnie Ty 🙂

W tym odcinku dowiesz się

  • Kto i jak zawiera transakcje na rynkach finansowych w XXI wieku
  • Co to jest tzw. algo-trading i do czego jest wykorzystywany
  • Co to jest handel wysokich częstotliwości
  • Jakie są wady i zalety algo-tradingu
  • Jak budować strategie algorytmiczne

Przykładowa strategia algorytmiczna

W ramach tego odcinka podcastu przygotowałem dla Ciebie mały prezent w postaci przykładowego systemu transakcyjnego, z którego korzystałem wiele lat temu do handlowania kontraktem terminowym na indeks WIG20 (FW20). Nie jest to nic odkrywczego, tylko powszechnie znana metoda tzw. wybicia ze zmienności.

Pobierz przykładową strategię algorytmiczną 🙂

W roku 2009 w ramach studiów podyplomowych zamieściłem ten system w mojej pracy dyplomowej. Jeśli jesteś osobą zupełnie początkującą, to praca ta przybliży Ci ideę stojącą za algorytmicznym podejściem do tradingu. Przy czym, ponieważ upłynęło już sporo lat od momentu pisania tej pracy, na wiele rzeczy spoglądam dziś inaczej, zwłaszcza na kwestie testowania strategii.

UWAGA! Proszę traktuj udostępniony materiał wyłącznie do celów edukacyjnych, a nie jako gotową strategię inwestycyjną!

Przydatne linki do tego odcinka

  • Mój artykuł na temat algorytmów na rynkach finansowych, wykorzystujących m.in. uczenie maszynowe
  • AmiBroker — oprogramowanie w którym można tworzyć systemy transakcyjne
  • Adaptrade Builder — oprogramowanie w którym można generować strategie przy wykorzystaniu programowania genetycznego
  • StrategyQuant — rozwiązanie analogiczne jak Adaptrade Builder
  • TradeStation — profesjonalna platforma (i broker zarazem) na której uruchamiam własne strategie na rynku kontraktów terminowych w USA. Można tworzyć na tej platformie własne strategie z wykorzystaniem języka programowania EasyLanguage.

Zaproszenie do dyskusji

Serdecznie zapraszam Cię do komentowania i zadawania pytań, bezpośrednio na tej stronie poniżej, lub na mojej stronie na Facebook’u lub moim profilu Twitter’owym.

Alternatywnie możesz zadać pytanie głosowe, nagrywając się na SpeakPipe. Pamiętaj tylko, że masz 90 sekund na nagranie 🙂

Bardzo zależy mi na Twoim głosie, za który już teraz z góry bardzo dziękuję 🙂

✒ TRANSKRYPT PODCASTU

czyli wersja do czytania

Wstęp

Dzień dobry, dzień dobry, witam cię serdecznie w czwartym odcinku mojego podcastu „System trader”. W tym odcinku poruszamy temat algorytmów na rynkach finansowych, a więc mówiąc bardziej obrazowo, porozmawiamy sobie o tym, jak to się dzieje, że komputery dziś, w XXI wieku, podejmują decyzje na rynkach finansowych, że są rynki, na których większość obrotu, większość transakcji zawierają nie ludzie, ale właśnie komputery. I zdaję sobie sprawę z tego, że ten temat wzbudza wiele emocji. Wiele jest tutaj takich niechętnych wręcz osób, jeśli chodzi o spoglądanie w stronę algorytmów i często ta niechęć wynika tak naprawdę przede wszystkim z niezrozumienia tematu.

Natomiast moją rolą w tym podcaście nie jest to, żeby występować tu jako admirator na przykład algorytmów i mówić tylko, jakie to wszystko jest piękne, super i dlatego nic, tylko i wyłącznie wykorzystujmy algorytmy na rynkach finansowych. Będę starał się w obiektywny sposób, prostym językiem przedstawić ci powody, dla których w ogóle coś takiego powstało, dlaczego to jest stosowane, jakie są tego wady i zalety, jakie są tutaj szanse, ale też jakie są zagrożenia związane ze stosowaniem takich algorytmów na rynkach finansowych. Już samo słowo algorytm może wzbudzać niepokój, także od strony takiego zrozumienia. O ile ktoś jest na przykład z wykształcenia programistą, to słowo algorytm dla niego jest czymś bardzo naturalnym, o tyle dla osoby, która ma inny profil wykształcenia, to słowo już może budzić pewną niechęć i niepokój. Jednak w tym odcinku nie będziemy w ogóle mówić na tematy takie czysto techniczne, informatyczne. Owszem, gdzieś tam troszkę tego tematu się tutaj pojawi, ale to na takim bardzo wysokim poziomie, na którym będzie to w stanie zrozumieć każda osoba. Zatem gorąco zapraszam do wysłuchania tego podcastu.

Do czego wykorzystywane są algorymy na rynkach finansowych?

Jak już wspomniałem, dziś na rynkach finansowych komputery są już w stanie zawierać transakcje w sposób analogiczny, jak to robią ludzie, chociaż są też takie sposoby, gdzie te transakcje mogą być zawierane tylko przez algorytmy, ponieważ są to specyficzne warunki, których człowiek po prostu nie byłby w stanie spełnić. Ale o tym też sobie powiemy nieco więcej za chwilę.

Nie jest niczym nowym dla nas, że w dzisiejszym świecie każdy z nas może sobie otworzyć rachunek maklerski i każdy z nas może kilkoma kliknięciami kupić lub sprzedać coś na rynku finansowym. I tu, w tym momencie, nawet nie jest bardzo istotne, jakie były przesłanki do zawarcia tej transakcji, natomiast nie jest to niczym nowym, niczym zaskakującym, że takie transakcje można dziś zawierać na rynku finansowym w bardzo prosty sposób, jest to bardzo szeroko dostępne, praktycznie dla każdego. Natomiast wydaje się nieco dziwne albo mało zrozumiałe, że niektóre transakcje zawierane są przez komputery, że to komputery podejmują decyzję czy coś kupić, czy coś sprzedać. Mało tego, są już tak dużą grupą, jeśli chodzi o uczestników rynku finansowego, że niejednokrotnie stanowią wręcz większość obrotu, czyli to komputery generują czasami większość obrotu, jaki jest na jakimś rynku finansowym. I to samo w sobie, jak wiemy, budzi wiele emocji i wiele niepokojów, często zwłaszcza pośród osób, które nie znają za bardzo tematu głębiej i mają obawy o to, że można w pewien sposób manipulować rynkiem, że prawdopodobnie właśnie przez tego typu działania będziemy jako ludzkość podatni bardziej na kryzysy ekonomiczne, finansowe i tak dalej, i tym podobne. W tym podcaście również będę starał się to poniekąd troszkę wytłumaczyć, natomiast skupimy się przede wszystkim na idei algorytmów.

Algorytm sam w sobie jako taki, to nie jest nic innego, jak pewien zapis reguł, które mogą, ale nie muszą, być wykonywane na komputerze. Czyli w skrajnym przypadku nie tylko generowane są sygnały kupna bądź sprzedaży, ale również realnie transakcja może być zawarta przez komputer.

Algorytmy naśladujące zachowania człowieka

Można by tutaj wymienić kilka klas takich algorytmów. Pierwszą klasą takich algorytmów są te, które faktycznie swoim działaniem przypominają działanie człowieka. Są to algorytmy, które podejmują decyzje inwestycyjne – czy coś kupić, czy sprzedać – w sposób przypominający działanie człowieka, wykorzystującego na przykład analizę techniczną, czyli analizę wykresów giełdowych lub analizę fundamentalną, czyli analizę wartości spółek giełdowych.

Chociażby na przykład w ten sposób, w oparciu o takie informacje, algorytmy starają się podejmować decyzje w sposób analogiczny, jak robią to ludzie. Są to zwykle pozycje tak zwane kierunkowe, gdzie algorytm otwiera pozycję, kupuje na przykład akcje jakiejś spółki po to, żeby móc je później sprzedać drożej. I tak samo, gdy na przykład analityk giełdowy spogląda na wykresy giełdowe i dostrzega tam pewne sygnały kupna, tak samo algorytm stara się spoglądać na taki wykres, dostrzegać to samo czy w podobny sposób, jak robi to właśnie analityk giełdowy i dochodzić do podobnych konkluzji, a następnie zawierać transakcje na rynku. To jest taka pierwsza grupa algorytmów, która właśnie stara się zawierać tak zwane pozycje kierunkowe. I zwykle gdy myślimy o algorytmach, to często myślimy tak naprawdę właśnie o tej grupie, czyli wyobrażamy sobie tę czarną skrzynkę wpiętą do prądu, która w jakiś magiczny, niezrozumiały dla nas, sposób podejmuje decyzje kiedy coś kupić, kiedy coś sprzedać.

Algorytmy wykorzystywane w arbitrażu statystycznym

Kolejną klasą algorytmów, dość popularną na rynkach finansowych, są algorytmy, które specjalizują się na przykład w tak zwanym arbitrażu statystycznym. To jest coś bardzo ciekawego, ponieważ tu wchodzimy już powoli w takie obszary, gdzie wykonywanie czasami takich operacji byłoby trudne do zrealizowania przez człowieka. Ja nie mówię, że niemożliwe, bo w niektórych przypadkach byłoby to możliwe, natomiast jeżeli bardzo liczy się czas, a zwykle w sytuacji arbitrażu liczy się czas, wówczas tak naprawdę pewne strategie są do zrealizowania tylko i wyłącznie przy wykorzystaniu algorytmów. Ale czym w ogóle jest arbitraż? Najprościej mówiąc arbitraż, mówiąc tak bardzo obrazowym językiem, występuje wtedy, gdy dostrzegamy okazję do kupienia czegoś na jednym rynku, na przykład taniej, żeby móc to sprzedać drożej na innym rynku. Mówiąc krótko widzimy, że mamy coś podobnego na dwóch różnych rynkach, przy czym pomimo, że to jest być może wręcz to samo albo coś bardzo podobnego, to ceny się różnią, więc możemy wykorzystać te różnice wyceny pomiędzy takimi walorami na dwóch różnych rynkach i po prostu na tym zarobić. Tak naprawdę nie muszą to być zawsze dwa różne rynki.

Takim bardzo interesującym przykładem arbitrażu jest arbitraż, wynikający z analizowania skorelowanych ze sobą na przykład par akcji. Wyobraźmy sobie, że mamy akcje spółki Lotos i spółki Orlen, są to spółki, które generalnie moglibyśmy nazwać spółkami paliwowymi. I zwykle jest tak, że te spółki są dość mocno skorelowane z wyceną ropy naftowej na rynkach światowych. Jeżeli jedna spółka rośnie, to prawdopodobnie druga również i generalnie jakbyśmy spojrzeli na te akcje w dłuższej perspektywie, to ich kursy są ze sobą dość skorelowane. Ja oczywiście mówię tu w bardzo obrazowy sposób, więc proszę mnie tutaj nie łapać za słowa, bo ten pomysł z Orlenem i Lotosem tak mi przyszedł do głowy, ponieważ chciałem wykorzystać spółki z polskiej giełdy.

Ale do czego zmierzam? Zmierzam do tego, że w dłuższej perspektywie czasowej możemy zaobserwować pewną średnią kursów, w jakiej poruszają się dwie bardzo ze sobą skorelowane spółki. I może się zdarzyć tak, że w pewnym momencie ta średnia, ta korelacja pomiędzy tymi spółkami się rozjeżdża. Zwykle te „rozjechania” są bardzo krótkoterminowe i my możemy na takich chwilowych nieefektywnościach, mówiąc krótko, zarabiać, zajmując na jednej spółce pozycję długą, a na drugiej nodze, jak to się mówi, na drugiej spółce zawierać pozycję krótką. Później zarabiamy na tym, że korelacja znów będzie widoczna, czyli te kursy niejako się zjadą do siebie i wtedy możemy na tym zrealizować pewien zysk. OK, ale tak naprawdę podcast nie jest odnośnie arbitrażu, więc chciałem tylko powiedzieć, że takie strategie są możliwe, natomiast wracając do algorytmów, to algorytmy właśnie umożliwiają nam to, aby wyłapywać takie pewne sytuacje arbitrażowe i to wyłapywać w czasie rzeczywistym, analizując rynki. No bo wyobraźmy sobie, że w Stanach Zjednoczonych mamy kilka tysięcy spółek giełdowych i załóżmy, że chcemy tam realizować taką strategię. Ciężko jest człowiekowi siedzieć przy komputerze i analizować kilka tysięcy spółek w czasie rzeczywistym. Natomiast dla komputera to może być bułka z masłem. I trudno też byłoby człowiekowi realizować takie transakcje, zwłaszcza, że tutaj w rachubę bardzo wchodzi czas, to znaczy jeżeli my się spóźnimy z realizacją takiej transakcji, to być może ktoś dostrzeże tę nieefektywność przed nami i po prostu nasza okazja zarobienia na tym pieniędzy nam zniknie.

Algorytmy typu quant czyli prawdziwy rocket science

Kolejną grupą algorytmów są już bardzo skomplikowane modele, które operują na bardzo zaawansowanej matematyce. Są to takie modele quantowe, jak to się mówi. Ludzie, którzy są po angielsku nazywani quantami, to osoby budujące zaawansowane modele matematyczne, statystyczne, gdzie decyzje nie muszą być zawierane w sposób taki wynikający wprost z logiki rynkowej, w rozumieniu takiej logiki, jak my to rozumiemy jako ludzie, tylko wykorzystujące pewne nieefektywności rynkowe, ale na takim poziomie zupełnie, zupełnie abstrakcyjnym. I są po prostu algorytmy, które to realizują, realizujące takie strategie w czasie rzeczywistym na rynkach. Myślę, że ja na tym tutaj poprzestanę, ponieważ tak naprawdę z punktu widzenia takiego szarego człowieka możemy założyć, że to są takie cudowne czarne skrzynki, które rozumie niewiele osób na świecie i które mogą wzbudzać pewne niepokoje u osób właśnie z tego powodu. Natomiast myślę, że to nie do końca jest zasadne, ponieważ trzeba wiedzieć, że każdy dodatkowy uczestnik na rynku wnosi już na dzień dobry jedną pozytywną rzecz, mianowicie upłynnia ten rynek, co jest bardzo kluczowe tak naprawdę dla innych uczestników. Więc jeśli chodzi o algorytmy typu „quant”, to tyle, jeśli chodzi o potrzeby tego odcinka.

Algorytmy automatyzujące żmudną pracę

Przejdźmy sobie do kolejnej klasy algorytmów. Są to algorytmy, które wykorzystywane są do celów takich, powiedziałbym, technicznych, roboczych, mianowicie chodzi mi tutaj o wsparcie dla na przykład różnego rodzaju funduszy. Fundusze, które operują wielkim kapitałem, muszą często kupować koszyki wielu walorów za duże pieniądze i takie zrealizowanie zlecenia na rynku może być dość skomplikowane. Trzeba te zlecenia odpowiednio podzielić na mniejsze paczki tak, żeby tym rynkiem w miarę nie ruszać, ponieważ byłoby to niekorzystne z punktu widzenia późniejszej wyceny tych funduszy. Na przykład przy kupnie funduszy ETF, które odwzorowują na przykład rynek jakiegoś indeksu giełdowego i kupują akcje tego indeksu, to tutaj często wykorzystanie takiego algorytmu jest dużo bardziej wskazane, niż żeby robić to niejako z palca.

Handel wysokich częstotliwości

No i wreszcie ostatnia grupa algorytmów, o których chcę tutaj wspomnieć, to są algorytmy, które wzbudzają nawet jeszcze większe emocje, niż te algorytmy typu „quant”, a mianowicie chodzi mi tutaj o algorytmy wysokich częstotliwości, po angielsku „high frequency trading”, HFT. Są to bardzo specyficzne algorytmy, które tak naprawdę mogą zarabiać na tym, że mogą widzieć pewne rzeczy na rynku szybciej niż inni uczestnicy tego rynku. Chodzi tutaj po prostu tak naprawdę o szybkość wykorzystywania danych rynkowych i szybkość wykonywania transakcji.

Wyobraźmy sobie, że działa to w ten sposób, że zanim my zobaczymy notowanie jakiejś spółki na naszym monitorze, to jakiś inny gracz, stosujący właśnie strategie HFT, mógł widzieć to ułamki sekund przed nami i mógł zawrzeć transakcję ułamki sekund przed nami, a nawet – zanim my zobaczymy coś na monitorze – on już mógł tę transakcję zamknąć. Więc tak naprawdę tutaj jest przede wszystkim walka z czasem. Zwykle takie algorytmy nie wiążą się z ryzykiem inwestycyjnym, bo one nie działają jak gdyby w sposób taki, gdzie trzeba przewidywać, niejako prognozować rynki, tylko po prostu one działają tak, jak gdyby nieco poruszały się w wehikule czasu i widziały rynki finansowe o ułamek sekundy przed nami. Wykorzystując tę informację, wykorzystując to, że wiedzą coś wcześniej niż reszta rynku, w ten sposób zarabiają. To, co jest kluczowe, jeżeli chodzi o algorytmy typu HFT to to, że ich realizacja jest możliwa tylko i wyłącznie przy użyciu komputerów, ponieważ tutaj nie ma możliwości, żeby człowiek przy komputerze, klikając sobie po jakiejś tam platformie tradingowej, był w stanie realizować zlecenia i transakcje w tak szybki sposób, gdzie tak naprawdę liczą się naprawdę malutkie ułamki sekund. Tutaj dochodzi wręcz do tego, że tu jest walka o najmniejsze ułamki sekund. Do tego stopnia, że uczestnicy realizujący takie strategie, uczestnicy rynku, starają się lokalizować swoje komputery i swoje algorytmy jak najbliżej – fizycznie jak najbliżej – giełdy. Tu liczy się dosłownie sygnał, który leci z prędkością światła w światłowodzie. Jeżeli ja będę realizował takie zlecenie, będąc parę tysięcy kilometrów od giełdy, a ktoś inny będąc na przykład sto metrów od giełdy, to normalnym jest, że ten kto jest sto metrów od giełdy, pomimo że prędkość światła jest bardzo szybka, to jednak ten, kto jest sto metrów od giełdy, będzie mógł szybciej przesłać to zlecenie na giełdę niż ja, będąc od tej giełdy oddalony o kilka tysięcy kilometrów. To jest troszkę taki „rocket science” dla większości, natomiast wspomniałem o tym po to, żebyście mieli kompletny obraz algorytmów.

I tak na koniec. Oczywiście jest możliwa też, jeżeli chodzi o algorytmy, pewna kombinacja poniekąd różnych stylów algorytmów, wpięta tak naprawdę w jeden algorytm, czyli taki miks. Tu już, powiedzmy, tak naprawdę jedynym ograniczeniem jest tylko i wyłącznie kreatywność ludzi, którzy je stosują, którzy budują takie algorytmy.

OK, czyli mamy taki wstęp za sobą, wiemy mniej więcej jakie grupy algorytmów funkcjonują na rynkach finansowych, to teraz chciałbym powiedzieć trochę o zaletach takiego algotradingu, jak to się mówi.

Otóż pierwszą taką zaletą jest ta, o której poniekąd już wspominałem przed chwilą, mówiąc o tym, że niektóre strategie nie byłyby możliwe do zrealizowania bez algorytmów, a właściwie jeżeli chodzi o „high frequency trading”, czyli te algorytmy wysokich częstotliwości, to tylko i wyłącznie można realizować to w sposób komputerowy. Tak samo jest, jeżeli chodzi o algorytmy typu „quant”, natomiast z arbitrażem tutaj już nieco mniej. Można robić to przy pomocy komputera, dawniej ludzie robili to, mówiąc kolokwialnie, ręcznie i też to działało, natomiast wraz z pojawieniem się komputerów stało się to trudniejsze, trzeba szybciej reagować, więc teraz zwykle też się stosuje do tego komputery.

Zalety wynikające ze stosowania algorytmów

Ale OK, jeżeli chodzi o te algorytmy HFT, „quant”, arbitrażowe to zostawiam sobie je na boku, ponieważ zwłaszcza te strategie HFT i „quant” są na tyle być może skomplikowane dla przeciętnego człowieka, że to jest coś zupełnie poza zasięgiem zwłaszcza przeciętnego inwestora indywidualnego. Natomiast porozmawiamy sobie troszkę o zaletach algorytmów, które starają się zawierać transakcje na rynku w sposób podobny, jak to robią ludzie, czyli wykorzystując na przykład analizę techniczną. I tutaj zaletą takich algorytmów jest to, że mogą one działać w bardzo konsekwentny sposób. Wyobraźmy sobie tego analityka, który siedzi przy komputerze i analizuje wykres giełdowy. Problem jaki tu występuje polega na tym, że analityk może widzieć jakąś formację, załóżmy, na wykresie i będzie uważał to za sygnał wzrostowy, natomiast drugi analityk, który również będzie polegał na analizie technicznej, może tego nie widzieć i mówiąc krótko, będą mieć tutaj różne poglądy co do tego, co się dzieje i co widzą na wykresie. Ludzie nie są konsekwentni, jeżeli chodzi o działanie i dlatego tutaj komputery mają tę zaletę nad człowiekiem, że mogą działać w sposób bardziej konsekwentny.

To, co jest istotne, to ja tutaj piję zwłaszcza w stronę osób, które nie mają doświadczenia rynkowego, które myślą, że przenosząc swoje codzienne doświadczenia życiowe, są w stanie wykorzystywać je na rynku finansowym. Bo to się wydaje takie dość naturalne, że w końcu jeżeli przeżyliśmy, nie wiem, dwadzieścia parę lat na tym świecie i nadal żyjemy, to znaczy, że potrafimy sobie w tym świecie poradzić. A w końcu na rynkach finansowych również są ludzie, więc naturalnym jest, aby stosować ten bagaż doświadczeń również tam. No niestety, prawda jest dużo bardziej brutalna, bowiem okazuje się, że rynki finansowe to jest po prostu gra w umiejętności i tam można mieć tylko pozory tego, że można zarabiać bez umiejętności, bo można zarobić pieniądze na krótką metę, natomiast w dłuższym horyzoncie czasowym tak naprawdę liczą się tylko i wyłącznie umiejętności. Oczywiście może nie do końca tylko, bo również ten element szczęścia jest gdzieś potrzebny, ale pomijajmy to.

Co do zalet algorytmów czy algotradingu, wracając do tematu, to tutaj jeszcze bym wyróżnił coś takiego, że emocje, jakie są związane z handlowaniem przy wykorzystaniu algotradingu mogą, chociaż nie muszą, być „łatwiejsze” do przepracowania. To znaczy my, w oparciu o taki plan, jakim jest algorytm, możemy zmniejszyć ich poziom. Oczywiście emocje zawsze są, to nie jest tak, że skoro komputer się nie emocjonuje, to znaczy, że my też się nie będziemy emocjonować. Nie, komputer się nie emocjonuje. On podejmuje jakieś decyzje na rynku i otwiera, zamyka pozycje, natomiast my widzimy, co ten komputer robi, co ten algorytm robi i widzimy, jak zmienia się wartość naszego rachunku, a wtedy no nie ma szans, żeby nie miało to wpływu na nasze emocje. Oczywiście, że ma. Ma to nawet tak duży wpływ czasami na nasze emocje, że my nie będziemy w stanie podążać za takim algorytmem, będziemy mieć ochotę wyłamać się z podążania za takim algorytmem. Natomiast mimo wszystko uważam, że te emocje mogą być łatwiejsze do przepracowania, niż gdybyśmy korzystali zupełnie tylko i wyłącznie ze swojego doświadczenia, zwłaszcza jeżeli to doświadczenie jest niewielkie.

Kolejna rzecz, jeżeli chodzi o zalety algotradingu, to jest łatwość dywersyfikacji. I to już jest akurat coś bardzo namacalnego i konkretnego. Chodzi o to, że człowiekowi jest trudno równocześnie handlować na – na przykład – dwudziestu rynkach i jeszcze na różnych interwałach, i jeszcze w różnych strefach czasowych. Efektywnie załóżmy, że człowiek musiałby spędzać po dwadzieścia godzin codziennie przy komputerze, co jest fizycznie po prostu niemożliwe. Natomiast zaleta algotradingu polega tutaj na tym, że właśnie dzięki temu, że te transakcje są realizowane przez komputer, można je realizować na wielu rynkach, na wielu różnych interwałach. Czyli są strategie, które być może otwierają transakcje na dosłownie kilka minut, są transakcje, które trwają przez kilka dni czy nawet tygodni, mamy też transakcje, które są realizowane równocześnie w różnych strefach czasowych, a więc nie ma dla nas to znaczenia, że na przykład jest środek nocy u nas, a algorytm może sobie funkcjonować na jakiejś giełdzie, która akurat jest czynna. I tutaj zaleta algotradingu jest namacalna, bo chodzi tak naprawdę o to, że dzięki dywersyfikacji rozpraszamy ryzyko.

Zwłaszcza jeżeli są to strategie, które nie są ze sobą skorelowane, a więc jak mamy takie portfolio, taki portfel wielu strategii, to łatwiej nam przejść przez ten proces inwestycyjny. O ile być może kilka strategii będzie akurat miało gorszy okres i to okres, który będzie trwał nawet dłuższy czas, nie wiem, tygodnie, miesiące, o tyle jest szansa, że inne strategie w tym czasie będą mogły niwelować ten gorszy okres innych strategii i być może nawet jeszcze do tego wypracowywać zysk. Mówiąc krótko, wynikiem wielu transakcji przeprowadzanych przez wiele różnych strategii będzie po prostu gładsza linia kapitału na całym globalnym portfelu, co jest bardzo, bardzo istotne. Bo wyobraźmy sobie taką strategię, która jest bardzo dobrą strategią i która zarabia regularnie co roku określoną kwotę pieniędzy, ale jednak nawet taka strategia może mieć kilkumiesięczny gorszy okres, gdzie będzie traciła pieniądze. I w takim okresie jest naprawdę ciężko osobie, która podąża za taką strategią, realizować tę strategię nadal, bez próby wyłamania się, bez próby obchodzenia tego systemu, bez próby zastanawianie się ciągłego, czy być może ta strategia przestała działać, być może trzeba coś zmodyfikować. I to są konkretne problemy. Natomiast w momencie, kiedy my mamy wiele strategii, to nawet jeżeli taka jedna strategia gorzej sobie działa, to inne mogą coś w tym momencie akurat zarabiać i dzięki temu łatwiej będzie nam, jako inwestorom, zachować też konsekwencję i dyscyplinę w całym procesie inwestycyjnym.

I ostatnia zaleta, jeżeli chodzi o algotrading, jest taka, że strategia tworzona jest poza rynkiem. Wtedy nie jest tak, że my wchodzimy sobie na rynek, bo jest sesja giełdowa i patrzymy, co się dzieje i próbujemy, zakładając jeszcze, że nie mamy doświadczenia rynkowego, na gorąco podejmować jakieś emocjonalne decyzje. Natomiast jeżeli budujemy algorytm, to algorytm buduje się poza rynkiem, poza sesją, poza emocjami rynkowymi. Można go również testować poza rynkiem, co jest dużym plusem, bo my możemy sobie dosłownie jednym kliknięciem zasymulować w sekundę, nie wiem, tysiąc przeprowadzonych transakcji, oczywiście na danych historycznych. Z tym są związane później konkretne problemy, o których też będę za chwilę trochę wspominał. Natomiast jeżeli byśmy się opierali tylko i wyłącznie na naszym doświadczeniu i intuicji, to my musielibyśmy przeprowadzić na rynku ileś realnych transakcji, żeby móc stwierdzić, czy nasz model, nasze podejście rynkowe jest skuteczne. Tak że tu przewaga algorytmów jest dość istotna, co nie znaczy, że to jest coś, co mówi, że tylko i wyłącznie przy pomocy algorytmów można zarabiać. Ja takich rzeczy tutaj absolutnie nie będę mówił, bo uważam, że na rynku można zarabiać na bardzo wiele sposobów.

Wady wynikające ze stosowania algorytmów

OK, no to teraz powiedzmy sobie trochę o wadach algotradingu. Taką wadą algotradingu jest chociażby to, że zwykle strategie oparte na algorytmach powodują większe obsunięcia na tak zwanej linii kapitału w naszym portfelu. Mówiąc krótko, jak byśmy widzieli przyrost czy jak się zachowuje wartość naszego portfela i porównalibyśmy fajną strategię czy dobrą strategię algorytmiczną versus strategię realizowaną w sposób dyskrecjonalny, intuicyjny przez doświadczonego, dobrego uczestnika rynkowego, to człowiek zwykle będzie miał tę linię kapitału bardziej wygładzoną. Jednak tutaj jest widoczna przewaga człowieka. Natomiast komputer, poniekąd przez to, że realizuje twarde zasady, które są w nim zakodowane, tę linię kapitału może mieć bardziej poszatkowaną, chociaż finalnie być może wyniki będą podobne, jak z wynikami człowieka. Natomiast obsunięcia na linii kapitału, czyli tam, gdzie jest ryzyko, tam, gdzie są emocje, zwykle są większe. Dlatego tutaj pewnym remedium na to jest to, że o ile człowiek doświadczony nie będzie mógł realizować transakcji na dwudziestu rynkach równocześnie, o tyle my będziemy mogli przy pomocy algorytmów faktycznie realizować na przykład strategię na dwudziestu rynkach równocześnie. Dzięki temu, pomimo że poszczególne strategie będą miały tę linię kapitału poszatkowaną, to gdy połączymy te wszystkie strategie razem ze sobą, to linia kapitału też będzie bardziej wygładzona. Niemniej jednak jest tu wada algotradingu, czyli generalnie zwykle większe obsunięcia na linii kapitału.

Kolejną wadą algotradingu jest taki dyskomfort, wynikający z oddania kontroli nad rynkiem. Bo jeżeli my patrzymy, co się dzieje na rynku i widzimy, że nasz algorytm, nasza strategia podjęła jakąś decyzję i załóżmy, że zdecydowała otworzyć pozycję na kontrakcie terminowym na wzrosty, a my uważamy, że „hm, ja bym jednak otwierał na spadki”, to wtedy możemy mieć takie poczucie braku kontroli nad tym, co się dzieje na rynku. To znaczy kontroli nad rynkiem my nigdy nie będziemy mieć, natomiast mamy brak kontroli nad naszym portfelem i nad tym, co robimy, bo niejako oddajemy się w niewolę, można powiedzieć, algorytmowi i to algorytm decyduje o tym, co się dzieje z naszymi pieniędzmi na rynku. Co tutaj można poradzić? No cóż, jedna rzecz to jest to, o czym już wspomniałem, czyli udział w naszym portfelu nie jednej, ale wielu strategii równocześnie, czyli dzięki temu łatwiej nam będzie przeżyć to, że jakaś strategia traci pieniądze, jak będziemy widzieć, że być może dwie-trzy inne strategie w tym czasie zarabiają. A po drugie tutaj jest też ważne zrozumienie, co stoi za taką strategią – do tego tematu za chwilę też wrócę – natomiast to nie jest dobrze, jeżeli strategia jest taką czarną skrzynką, która podejmuje pewne decyzje kupna-sprzedaży, ale my nie wiemy, dlaczego te decyzje są takie, a nie inne, nie rozumiemy logiki tej strategii. Wtedy ten dyskomfort wynikający z utraty kontroli zdecydowanie jest znacznie większy.

Pewnym rozwiązaniem tego problemu utraty kontroli jest powiązanie niejako czy połączenie dwóch podejść, to znaczy podejścia algorytmicznego i podejścia intuicyjnego, w jedno. Podajmy taki przykład: strategia generuje sygnał otworzenia pozycji. Po otwarciu pozycji człowiek może jednak prowadzić tę transakcję niejako ręcznie, czyli modyfikować w trakcie wielkość pozycji i to właśnie tu może tkwić największa siła roli człowieka, wspomagana algorytmem. To znaczy algorytm nam mówi, kiedy otworzyć pozycję, ale my później tę transakcję prowadzimy, czyli dobieramy wielkość tej pozycji. Człowiek może też w ogóle zignorować sygnał, który został wygenerowany przez algorytm i stwierdzić, że w tej sytuacji nie posłucha się tego algorytmu i jeżeli jest to realizowane przez człowieka doświadczonego, takie podejście może mieć jak najbardziej dużo, dużo sensu. Oczywiście może też być sytuacja taka, że jak już mamy tę pozycję otwartą, to człowiek może zdecydować, że transakcję zamknie wcześniej, niż by to zrobił algorytm, też z jakiegoś określonego powodu, który wynika z doświadczenia tego człowieka. I generalnie wtedy można powiedzieć, że taka strategia, taki algorytm jest wykorzystywany na zasadzie takiego azymutu, który nam mówi mniej więcej, gdzie jesteśmy na rynku i w którą stronę podążać, natomiast to od nas tak naprawdę zależy decyzja, gdzie faktycznie będziemy na tym rynku podążać.

OK, wracając do wad algotradingu, to taką wadą jest trudniejsza adaptacja do zmian rynkowych. Człowiek zwykle potrafi szybciej dostrzegać zmiany na rynkach finansowych, mówię tu znów z zastrzeżeniem takim, że jest to człowiek, który ma doświadczenie rynkowe. Jeżeli chodzi o algorytmy, to te, które są powiedzmy „reoptymalizowane” co jakiś czas, bo mają jakieś parametry (rynki się zmieniają, więc my będziemy reoptymalizować te parametry), to będą tu zwykle mieć jakieś przesunięcie w czasie i opóźnienie. Natomiast człowiek może niejako szybciej adaptować się do zmian zachodzących na rynku.

Kolejnym problemem, jeżeli chodzi o algorytmy jest to, że bardzo łatwo możemy tu popełnić błędy na poziomie czy na etapie budowy tych algorytmów. I tu nie chodzi mi nawet o błędy takie czysto logiczne, bo to, że popełniliśmy błąd czysto logiczny, jest powiedzmy najprostsze do wyłapania. Natomiast chodzi mi tutaj bardziej o takie błędy wynikające z zagrożeń tym, iż dobieramy na przykład zły zestaw danych, że zbytnio nasz algorytm zostanie dopasowany do danych historycznych. Bo mając dzisiejsze komputery, dzisiejsze moce obliczeniowe bardzo łatwo jest tak naprawdę zbudować algorytm, który na tych danych historycznych będzie generował piękne wyniki. Będzie generował piękne zyski, ale tylko i wyłącznie na danych historycznych, a nam przecież zależy na tym, żebyśmy zarabiali w realnym rynku. A więc tutaj faktycznie jest dużo niebezpieczeństw, ja nie będę tutaj wchodził w szczegóły, jeżeli chodzi o te niebezpieczeństwa, bo to już są bardziej techniczne rzeczy, natomiast jest tutaj duże zagrożenie.

Kolejnym takim zagrożeniem jest to, że budując takie systemy, takie strategie tradingowe, takie algorytmy, możemy mieć chęć zbytniej komplikacji, czyli dodawania dodatkowych warunków, dodawania kolejnych filtrów po to, żeby na tych danych historycznych osiągać jeszcze lepsze wyniki. Natomiast to będzie właśnie powodowało, że jeszcze bardziej będziemy nasz model dopasowywać do danych historycznych. A dane historyczne, to są tylko dane historyczne. Przyszłość nie będzie się nigdy równała historii, przyszłość może w jakiś sposób przypominać historię i chcielibyśmy, żeby jak najbardziej przypominała tę historię, ale nigdy nie będzie to jeden do jeden. Jeżeli za bardzo będziemy eksploatować historyczne dane, tak zwany „data mining bias”, czyli po prostu błąd wynikający z kopania w danych, co przy użyciu mocnych komputerów jest dziś bardzo proste w realizacji, powodować będzie tylko i wyłącznie fajne wyniki generowane na danych historycznych, ale nie na danych w rzeczywistości. I to jest zagrożenie, bo będziemy musieli umieć sobie jasno postawić granicę, gdzie jest budowanie modelu, który eksploatuje pewne nieefektywności rynku, które mają sens i będą działały bez względu na to, czy robimy to na danych historycznych czy w przyszłości, a gdzie wykorzystujemy już takie specyficzne zachowania się cen historycznych, które mają bardzo nikłe szanse na powtórzenie się w przyszłości.

Kolejną wadą, jeżeli chodzi o algorytmy jest to, że opracowanie strategii algorytmicznej wymaga sporo pracy. I to jest taka wada i nie wada zarazem. Otóż chodzi o to, że to nie jest do końca wadą, gdyż opracowanie działającej strategii, ale nie takiej stricte algorytmicznej, o której tu mówimy, tylko takiej dyskrecjonalnej, opartej o intuicję, również tak naprawdę wymaga masę czasu i wymaga zdobycia masę doświadczenia. Natomiast ludzie początkujący, zwykle bez przygotowania i doświadczenia myślą, że intuicja może im szybciej pozwolić zarabiać na rynkach finansowych. To jest złudzenie, bo tak naprawdę wcale nie jest łatwiej, być może nawet trudniej, to zależy od konkretnego przypadku. Natomiast jest to złudzenie łatwości, bo zbudować algorytm, tym bardziej go jeszcze zakodować, to może wymagać posiadania konkretnych umiejętności i to może być bardziej trudne. Natomiast jaki jest problem wejść sobie na platformę transakcyjną i zawierać transakcje według naszego uznania? Technicznie żadnego problemu nie ma, natomiast oczywiście jeżeli my nie mamy doświadczenia, umiejętności i nie wiemy, co tak do końca naprawdę robimy, to to jest tylko i wyłącznie złudzenie. W ten sposób na pewno w długiej perspektywie czasowej nie będziemy w stanie zarabiać. Jeszcze raz to powtórzę: rynki finansowe to jest gra w umiejętności, tylko i wyłącznie umiejętności się liczą i jeżeli ich nie mamy, to nie liczmy na to, że będziemy mogli konsekwentnie przez kilka dekad zarabiać na rynkach finansowych.

Jak buduje się algorytmy

OK, a teraz porozmawiajmy sobie chwilkę o tym, jak budować w ogóle takie algorytmy. Tu są możliwe dwa podejścia. Po pierwsze możemy robić to ręcznie, czyli po prostu siadamy przy komputerze i planujemy algorytm, który później wyrażamy w postaci języka programowania. I to już może wymagać konkretnych umiejętności technicznych. Zaletą takiego podejścia jest to, że bardzo dokładnie rozumiemy zwykle to, co kodujemy, czyli mamy jakąś konkretną logikę, którą chcemy wykorzystać, przepisujemy ją na poziom języka programowania i później, jak będziemy taką strategię realizować na rynku, to jest nam to bardzo przydatne, że wiemy, co za tą strategią siedzi. Natomiast jest też drugie podejście do budowania algorytmów, gdzie w pewnym sensie możemy tę budowę zautomatyzować, wykorzystując różne zaawansowane technologie, zwłaszcza z zakresu sztucznej inteligencji, programowania genetycznego, uczenia maszynowego. Nie będę tutaj wchodził w wielkie szczegóły, ale wyobraźmy sobie, że są takie pakiety oprogramowania, które na wejściu otrzymują dane rynkowe, a na wyjściu produkują nam zestaw różnych strategii. I to jest fajne, bo z jednej strony może nam to pomóc w odszukiwaniu pewnych nieefektywności rynkowych, ale rodzi to za sobą ogrom niebezpieczeństw, ponieważ zwykle większość takich strategii to są po prostu zwykłe śmieci, które po prostu są tylko i wyłącznie wynikiem zbytniego dopasowania się modelu do danych historycznych. I większość takich strategii po prostu umiera na rynku bardzo, bardzo szybko albo w ogóle nie działa na rynku, nawet od pierwszego dnia. Poza tym jest tutaj też takie zagrożenie, że nawet gdybyśmy zrobili strategię, która by funkcjonowała nieźle w ten sposób na rynku, to jeżeli my nie będziemy rozumieli, co się w tej strategii dzieje, jak ona funkcjonuje, będziemy ją traktować jako czarną skrzynkę, to nie będziemy mieli zaufania do czegoś takiego, zwłaszcza w momencie, kiedy taka strategia zacznie mieć gorszy moment. Więc to jest według mnie duże zagrożenie. Ja osobiście nie byłbym w stanie podejmować decyzji rynkowych w oparciu o czarną skrzynkę, bez rozumienia przesłanek, jakie stoją za zawarciem jakiejś transakcji.

Podsumowując, takie narzędzia mogą być bardzo fajne i interesujące, natomiast trzeba to stosować z ogromną, ogromną dozą ostrożności. Oczywiście nic nie stoi na przeszkodzie, żeby móc jak gdyby połączyć te dwa podejścia, to znaczy możemy generować część strategii w sposób automatyczny po to, żeby wyszukać jakieś interesujące nas, być może, modele, a później takie modele już rozpracowywać ręcznie. Akurat to podejście wydaje mi się dość sensowne, natomiast tutaj oczywiście będzie to oznaczało więcej pracy.

Jeszcze na koniec taka przestroga. Jeżeli ktoś myśli, że kupi sobie oprogramowanie za duże pieniądze, które będzie generowało strategie automatycznie, czyli załóżmy, że kupimy sobie oprogramowanie za tysiąc, dwa tysiące dolarów, dostarczymy takiemu oprogramowaniu dane rynkowe, ono wygeneruje nam po jakimś czasie szereg różnych strategii inwestycyjnych, a my następnie po prostu sobie wepniemy to w rynek i będziemy na tym zarabiać, to jest w bardzo głębokim błędzie. I to jest absolutnie wielka przestroga: nie róbmy takich rzeczy, w ten sposób to na pewno nie będzie funkcjonowało. Żeby to miało szansę funkcjonować, to trzeba wykonać szereg innych zabiegów, jak chociażby odpowiednie testowanie, być może jeszcze modyfikacja takich strategii, adaptacja, rozumienie w ogóle tego, co robimy, a nie na zasadzie kilku kliknięć i… No to byłoby zbyt proste. Wyobraźmy sobie, że są instytucje, które mają ogromne kapitały. Gdyby to w ten sposób funkcjonowało, to by te instytucje wyssały niejako w cudzysłowie kapitał z rynków finansowych, podpinając takie automaty, robione w sposób automatyczny.

Wykorzystanie algorytmów w praktyce

A na koniec jeszcze chciałem powiedzieć o egzekucji – tak się to mówi po polsku, chociaż możemy mieć złe skojarzenia – w wykonywaniu transakcji. Bo to, że my mamy algorytm, to nie znaczy, że my również tym algorytmem składamy zlecenia. I tutaj są dwie możliwości. Mamy możliwość taką, że algorytm jest tak naprawdę zapisany w sposób taki, nawet nie komputerowy, ale po prostu na kartce papieru i na bazie tego generowane są sygnały kupna-sprzedaży, a my później ręcznie wykonujemy te zlecenia na giełdzie. Jest to jak najbardziej możliwe, sam coś takiego robiłem przez wiele lat. Jest to możliwe, o ile nie działamy na jakichś bardzo niskich interwałach, gdzie po prostu wymagałoby to od nas śledzenia ciągłego rynku. No i jest oczywiście możliwość pełnej automatyzacji, czyli podejście, w którym to tak naprawdę algorytm na bieżąco analizuje napływające dane rynkowe i na podstawie tego zawiera transakcje. Także to podejście jest możliwe i jest fajne, zwłaszcza wtedy, kiedy chcemy realizować portfel wielu strategii naraz.

Natomiast taka tutaj przestroga. Wielu, jak obserwuję, niedoświadczonych uczestników rynku za bardzo skupia się na tej automatyzacji i traktuje to jako takie pewne świecidełko. Tak naprawdę automatyczna realizacja tych transakcji, to jest taki czysto techniczny temat, który uważam za najmniej kłopotliwy, jeżeli chodzi o realizację. I to nie tutaj jest trudność, że tak powiem, w budowaniu strategii. Żeby cokolwiek automatyzować, to musimy mieć świadomość, że to coś ma jakąś wartość, bo jeżeli my sobie zautomatyzujemy głupotę, to będziemy mieć głupotę na wejściu i będziemy mieć głupotę na wyjściu, mówiąc tak obrazowo. Mówiąc krótko na pewno w ten sposób nie będziemy w stanie realizować z sukcesami jakichś założonych planów tradingowych na rynku finansowym.

Czy algorytmy wyprą ludzi? Ja osobiście, jakbym miał na takie pytanie odpowiedzieć, to odpowiem sobie teraz, że nie. Nie uważam, żeby to się zdarzyło, uważam, że do końca nigdy nie będziemy mieć sytuacji, gdzie tylko i wyłącznie to komputery będą handlowały. Jednak żeby rynki miały sens, to musi być tutaj cały czas ta walka popytu z podażą. A tak naprawdę obecność tych algorytmów komputerowych często będzie powodować tak naprawdę tylko dwie rzeczy. Po pierwsze to, że będzie większa płynność na rynkach i to jest pozytywne. A dwa – często te algorytmy będą powodowały, że będzie jeszcze więcej szumu na rynkach finansowych, szumu czyli fluktuacji cen, które nie mają znaczenia żadnego jeżeli chodzi o – powiedzmy – podejmowanie decyzji. Czyli to, że sobie tam wzrosło coś o 0,3%, to tak naprawdę nie musi oznaczać, że być może dwadzieścia lat temu to by oznaczało, że cena będzie szła dalej w górę, a dziś może się okazać, że to jest nic nie znaczący szum i tak naprawdę można to ignorować, jeżeli nas takie małe ruchy nie interesują. Tak że dwie rzeczy: algorytmy przede wszystkim upłynniają rynek, a dwa, podnoszą poziom szumu na rynku. Natomiast uważam, że rola człowieka i szansa dla człowieka działającego bez algorytmów będzie nadal jak najbardziej możliwa.

To tyle, jeżeli chodzi o ten odcinek podcastu. Gorąco zapraszam do komentowania i zadawania pytań na stronie www.systemtrader.pl/004, jak numer tego odcinka. I od razu też chciałem zapowiedzieć odcinek nr 5, w którym to będzie długi wywiad z bardzo znaną osobą, jeżeli chodzi o trading, osobą, która ma niemal czterdzieści lat doświadczenia na rynku i jest nadal na tym rynku aktywna. Jest to Linda Raschke, osoba absolutnie niesamowita.

Ja tymczasem gorąco raz jeszcze dziękuję za wysłuchanie tego odcinka, zapraszam do komentowania i do usłyszenia następnym razem. Cześć.

Jacek

Subskrybuj
Powiadom o
guest

2 komentarzy
najstarszy
najnowszy oceniany
Inline Feedbacks
View all comments

Ruszyła sprzedaż oprogramowania #ST

Kilkadziesiąt gotowców inwestycyjnych!