Jak Czytać Cenę? Część XV: Playbook (II) [Crypto 101] | CrypS.

Jak Czytać Cenę? Część XV: Playbook (II)

18 min
Maciej Halikowski
cryps jak czytac cene Analizy

Spis treści:


Poprzednia część “Playbooka” starała się tłumaczyć najprostsze możliwe narzędzia, które mogą pomóc Ci w zebraniu statystyk potrzebnych w daytradingu. Teraz sprawdzimy kilka z tamtych pomysłów w praktyce, wykorzystując popularne biblioteki w Pythonie i chatboty oparte na modelach LLM. Następnie, rozwiniemy wątek algotradingu i analizy ilościowej, co pomoże nam nieco lepiej zrozumieć problemy z popularnymi strategiami bazującymi na analizie technicznej.


Artykuł, który czytasz, jest fragmentem darmowego e-booka pt. “Jak Czytać Cenę?: Podręcznik Spekulanta”, który w całości ukaże się w momencie publikacji ostatniej części serii. Projekt ten jest niejako kontrą dla rosnącej popularności płatnych szkoleń i zakłada wzbogacenie polskiej sceny tradingowej o wiedzę, której ta dotychczas nie pokrywała w podobnej formie (włączając w to Auction Market Theory, praktyczne zastosowanie Metody Wyckoff’a czy analizę statystyczną). Przekazywane informacje są uniwersalne i mogą zostać wykorzystane na dowolnym rynku, włączając Forex, kryptowaluty czy rynki akcyjne.

Inne artykuł z tej serii:

  1. Część I: Spekulacja to głupota
  2. Część II: Order Book i podstawy struktury rynku (właśnie czytasz)
  3. Część III: Wprowadzenie do Auction Market Theory
  4. Część IV: Efektywność rynku
  5. Część V: Analiza techniczna – finansowa magia voodoo
  6. Cześć VI: Strefy popytu i podaży, czyli efektywna/nieefektywna dystrybucja płynności
  7. Część VII: Najgorszy trader świata
  8. Część VIII: Wyckoff 3.0 i setupy, które (czasem) działają
  9. Część IX: The Trend is (not) your friend
  10. Część X: Delta, czas i wolumen na giełdzie
  11. Część XI: Analiza fundamentalna działa, ale czy umiesz z niej korzystać?
  12. Część XII: Momentum i analiza Top-Down (I)
  13. Część XII: Momentum i analiza Top-Down (II)
  14. Część XIII: Zarządzanie ryzykiem – hazard i prawdopodobieństwo
  15. Część XIV: Zarządzanie ryzykiem – narzędzia
  16. Część XV: Playbook
  17. Część XV: Playbook (II) (właśnie czytasz)
  18. Część XVI: Analiza międzyrynkowa
  19. Część XVII: Jak czytać cenę? Przykłady (wkrótce)
  20. Część XVIII: Praktyczna psychologia tradingu (wkrótce)
  21. Część XIV (ostatnia): When Lambo? (wkrótce)

Treści dodatkowe:

  1. Jak Czytać Cenę EKSTRA: O tym jak zrobiłem 200% w 10 dni w firmie prop tradingowej i dlaczego to nic nie znaczy

ZigZag Indicator i przeciętna długość wahań

Niektóre przykłady z części poprzedniej przedstawiały scenariusze, w których zbieranie danych było dość trudne. Ze względu na skomplikowanie setupów i informacji, które chcieliśmy zdobyć, takie statystyki trzeba zbierać ręcznie. Skupimy się więc na tych danych, które bez problemów można pozyskać za pomocą prostego kodu.

Jednym z takich pomysłów są badania długości wahań ceny, przy wykorzystaniu wskaźnika ZigZag, z czego korzystali traderzy tacy, jak Brian Watt a.k.a Mr Yen i FuturesTrader71. Teraz spróbujemy wprowadzić go w życie, używając platformy Sierra Chart, Google Sheets oraz bibliotek numpy, pandas i matplotlib w Pythonie.

Najpierw eksportujemy pokrywające okres dwóch lat dane z rynku pary walutowej EURUSD na interwale 60 minut.

sierra chart trading futures

Ustawienie procentowe ZigZag to 0.5, co oznacza, że cena musi spaść/wzrosnąć o 0.5%, by wskaźnik liczył nowe wahanie.

Eksportujemy plik txt, wybierając opcję “Export Bar and Study Data to Text File” z rozwijanego menu “Edit”.

By długość wahań ZigZag została uwzględniona w pliku, należy pamiętać o wybraniu dla elementu “Zig Zag Length Line” opcji “Custom Text” w ustawieniach wskaźnika, oraz zaznaczeniu “Yes” w wierszu “Additional Output for Spreadsheets.

sierra chart trading platforma

Zawartość wyeksportowanego pliku wklejamy do Google Sheets, gdzie wybieramy opcję “podziel tekst na kolumny”.

google sheets

Następnie, filtrujemy wszystkie wiersze, które zawierają wartości “0”, by dostać długości wahań ZigZag, które nas interesują. Obok kolumny “ZigZag Length”, zostawiamy jeszcze “Date” i “Time”. Resztę usuwamy i zapisujemy dane jako plik w formacie csv.

python jupyter notebook

W Jupyter Notebook tworzymy nowy plik Pythona, importujemy potrzebne biblioteki oraz otwieramy utworzony wcześniej plik csv i drukujemy jego zawartość. Jak widać powyżej, zawiera 432 wartości określające długość wahań ZigZag w punktach (pierwszym wierszem jest wiersz 0).

python trading jupyter notebook

Z pomocą matplotlib tworzymy histogram dla tych danych. Na pierwszy rzut oka możemy zaobserwować, że do rzadko występujących wahań należą te o długości >0.017 i <-0.017. Uprośćmy wykres tak, aby przedstawiał wartość bezwzględną wahań i stwórzmy kilka nowych zmiennych, by określić, za jaki procent wszystkich danych odpowiadają wahania w określonych zakresach.

python matplotlib trading

Jak widać na powyższej grafice:

  • Minimalna długość wahania ZZ to 0.00501, a maksymalna: 0.04962
  • Długość średnia to 0.0112
  • Za niemal ¾ zbioru odpowiadają wahania w zakresie od minimum do 0.013
  • Wahania w zakresie od minimum do 0.018 stanowią niemal 90% zbioru

Z tych prostych statystyk możemy wyczytać, że jeśli korzystamy z narzędzia ZigZag o ustawieniu 0.5, do wahań występujących rzadko należą te o długości powyżej 0.018 punktów. Takie, jak te na poniższym screenie:

sierra chart futures trading

Mr Yen, wykorzystywał bardzo podobne dane, spekulując w ramach strategii typu mean reversion. Szukał ruchów skrajnych, które następnie kontrował (niekiedy wielokrotnie, uśredniając cenę), licząc na realizację niewielkich zysków po powrocie rynku do średniej. Trzeba jednak pamiętać, że choć podpieranie się prostą statystyką jest lepsze, niż nic, tak tego typu systemy na pewno nie należą do bezpiecznych.

Odchylenie ceny od średniej kroczącej

Kolejnym, nieco podobnym badaniem będzie określenie długości przeciętnych oraz skrajnych odchyleń ceny od prostej średniej kroczącej o ustawieniu 200. Wybrany instrument to EURUSD, a interwał: 15M.

sierra chart futures trading
Na powyższym obrazku widać, co dokładnie liczy nasz kod – to odchylenie punktów zwrotnych  ZigZag od SMA200, które w tym przypadku wyniosło około -2.5%.

W tym celu należy wyeksportować nowe dane z platformy Sierra Chart, które będą uwzględniały wartość średniej kroczącej. Reszta procesu jest taka, jak w przypadku wahań ZZ, z jednym wyjątkiem –  liczymy procentową różnicę między ZZ, a wartością SMA.

sma200 trading python programowanie

Wyniki tego badania widać powyżej. Zgodnie z nimi:

  • Odchylenia minimalne i maksymalne to 0.3 i 3.37%
  • Średnie odchylenie ceny od SMA to ok. 0.62%
  • Za około 70% wszystkich danych odpowiadają odchylenia w zakresie od 0.3 do 0.68%
  • Odchylenia od 0.3 do 1% odpowiadają za ponad 88% danych

Lokacja ceny zamknięcia sesji, a następna sesja

Kolejne badanie jest nieco zmodyfikowaną wersją pomysłu, który pojawił się w jednym z wątków na ForexFactory.

Dla każdej świecy OHLC na interwale dziennym określimy w procentach położenie ceny zamknięcia tej świecy.

swiece japonskie ohlc

Tłumaczy to powyższy schemat. L, czyli najniższa cena w świecy, odpowiada za 0% jej zakresu, a H – za 100% zakresu. Na przykładzie, punkt C – cena zamknięcia, położony jest w 50% zakresu całej świecy.

Żeby policzyć ten procent, skorzystamy z prostej formuły:

położenie ceny zamknięcia = (C-L) / (H-L) x 100

Następnie, naszym celem będzie sprawdzenie, czy położenie ceny zamknięcia w zakresie świecy wpływa na zachowanie rynku w następnej sesji. Podzielimy dane na 5 różnych koszyków:

  • 0-20%
  • 20-40%
  • 40-60%
  • 60-80%
  • 80-100%

Bazowym założeniem jest, że jeśli cena zamknięcia jest położona w dolnych 20% świecy (0-20%), prawdopodobieństwo, że L tej świecy zostanie przełamane w następnej sesji, powinno być większe. I odwrotnie – jeśli lokalizacja C to górne 20% świecy (80-100%), w następnej sesji prawdopodobieństwo przełamania H tej świecy powinno być wyższe.

python programowanie trading

Widoczna na zrzucie ekranu tabela z wynikami potwierdza oryginalne przypuszczenia (kod badał 3111 świec na wykresie dziennym EURUSD). Jeśli cena zamknięcia świecy jest zlokalizowana w dolnych 20% zakresu, szanse na przełamanie L tej świecy przez świecę następną wydają się większe (przy cenie zamknięcia w w dolnych 20% zakresu, do przełamania H tego zakresu w następnej świecy dochodziło w niespełna 6% przypadków). Teoretycznie, możemy wykorzystać tę informację przy budowie scenariuszy na daną sesję handlową.

Inside Bar i Outside bar

Ostatnią statystyką, jaką pozyskamy, jest ta dotycząca częstości występowania świec Inside Bar i Outside Bar, przy czym:

  • Inside Bar: to świeca, której cały zakres zawiera się w zakresie świecy poprzedniej (świeca, która nie złamała ani H, ani L świecy poprzedniej)
  • Outside Bar: to świeca, która złamała H oraz L świecy poprzedniej
inside bar outside bar tradingview

Interesuje nas przede wszystkim Outside Bar. Tego typu świece występują na rynku dosyć rzadko, a przeciętna sesja zwykle łamie jedynie H lub L poprzedniej świecy.

trading daytrading strategia

Przyjmijmy, że w scenariuszu powyżej, trwająca sesja przełamała L poprzedniej. Następnie, cena zawraca do poziomu, gdzie rozpoznajemy setup, który chcemy rozegrać. Otwieramy pozycję krótką, licząc na kontynuację trendu spadkowego (1), a na wypadek niekorzystnego rozwoju wydarzeń (2), ustawiamy stop loss powyżej H ostatniej świecy. Dlaczego? Ponieważ jeśli obecna sesja przełamie H ostatniej sesji, stanie się Outside Barem, a Outside Bar, jak mówiliśmy, występuje na rynku rzadko.

Python pomoże nam określić, jak rzadko.

python programowanie trading

Kod bazuje na podstawowej pętli, która przeczesuje dane wiersz po wierszu, poszukując dwóch najważniejszych przypadków:

  • outside bar = L obecnej świecy < L poprzedniej świecy oraz H obecnej świecy > H poprzedniej świecy =
  • inside bar = L obecnej świecy > L poprzedniej świecy oraz H obecnej świecy < H poprzedniej świecy

Obok nich, program liczy także przypadki, w których obecna świeca przełamała tylko i wyłącznie H lub L poprzedniej świecy.

python inside bar outside bar trading

Zgodnie z wynikami z tabeli:

  • Świeca złamała H lub L poprzedniej świecy w 75% przypadków
  • Świeca nie złamała ani H ani L poprzedniej świecy w 14% przypadków (Inside Bar)
  • Świeca złamała H oraz L poprzedniej świecy w 11% przypadków (Outside Bar)

Generowanie statystyk dla kilku kryptowalut z Binance API

Możemy wykorzystać dotychczas napisany kod, by przebadać wykresy kilku różnych kryptowalut, pobierając potrzebne dane OHLC z giełdy Binance, dzięki API.

python binance api

W tym celu:

  • Tworzymy funkcję pobierającą dane z Binance
  • Zamieniamy w funkcje fragmenty kodu służące do rozpoznawania inside/outside bars i wydobywania statystyk dot. lokacji cen zamknięcia świec

Następnie, przywołujemy te funkcje w pętli dla każdej z kryptowalut na liście ‘ticker_list” i wyświetlamy wyniki. W tym przypadku, krypto z listy to Ethereum, Solana i Bitcoin. Interwał 1d.

python crypto trading binance api

Statystyki w tabelkach wyglądają bardzo podobnie bez względu na rynek. Im wyżej we własnym zakresie zamknęła się świeca, tym większe prawdopodobieństwo przełamania jej szczytu przez kolejną świecę i odwrotnie, zaś outside bars występują tu maksymalnie w 12% przypadków. 

Wizualizacja danych za pomocą ChatGPT w wersji 4.0

Chociaż powszechny dostęp do chatbotów opartych na modelach LLM znacznie obniżył próg wejścia do świata hobbystycznego programowania, w idealnych warunkach, trader próbujący korzystać ze statystyki powinien umieć pisać kod na podstawowym poziomie. Wymienione wcześniej pomysły opierają się na bardzo prostej logice, ale zrozumienie tego, co masz zamiar zrobić, pozwoli na szybsze formułowanie pomysłów i usprawni komunikację z chatbotami. Tym bardziej, że te radzą sobie najlepiej i są najbardziej użyteczne wtedy, gdy nie mają pisać kodu od zera, a poprawić już istniejący.

Niemniej, obecnie dostępne modele potrafią na tyle dużo, że bez problemu powinny radzić sobie z manipulacją danymi i ich wizualizacją.

Sprawdzimy to w modelu GPT 4 od OpenAI, biorąc na warsztat bardzo złą strategię, której wykres P/L widzisz poniżej.

trading pnl krzywa kapitalu

Liczba transakcji w tym backteście to 334. Aż 320 z nich zakończyło się zyskiem, co daje 95.8% skuteczności.

Wybrałem ten system dlatego, że dość łatwo jest w stanie oszukać początkującego tradera.

Patrząc na powyższy wykres widzimy, że bardzo długo przetrzymywał straty, ale przez ponad 100 transakcji obsunięcie kapitału było relatywnie niewielkie. W takiej sytuacji można uznać, że problemem jest “zła psychologia”, a strategia ma jakiś ukryty edge. Niektórzy, po fakcie mogliby stwierdzić, że są o krok od regularnego zarabiania na rynku – wystarczy tylko nastawić się mentalnie tak, by “ciąć straty szybciej”. W tym przypadku nie jest to prawdą, a widocznego na wykresie załamania nie dało się uniknąć.

Na początek, udostępniamy modelowi plik csv z historią transakcji i prosimy go o wygenerowanie histogramu przedstawiającego wyniki tej strategii.

trading chatgpt

Jak widać, to skrajny przykład strategii z dystrybucją skrzywioną negatywnie. Duża ilość mikroskopijnych zysków i kilka solidnych strat, które pożarły je wszystkie.

Następnie, ChatGPT przeprowadzi dla nas symulację Monte Carlo i wygeneruje wykres dla każdej ze 100 iteracji.

symulacja monte carlo chatgpt

Ten nie wygląda szczególnie zachęcająco. Strata najgorszej, losowej serii transakcji niemal dwukrotnie przekracza zysk osiągnięty w najlepszej serii. Dodatkowo, ogromna część iteracji praktycznie kręci się w okolicach zera, co może sugerować niezdolność strategii do generowania zysków w długim terminie i brak jakiejkolwiek przewagi.

Chatbot bez problemu wygenerował też histogram dla powyższej symulacji:

chatgpt python

Następnie proszę, by znalazł optymalną wartość stop lossa na podstawie dostępnej w arkuszu kolumny Drawdown i wygenerował nowy wykres dla strategii uwzględniającej tę wartość.

Przez zastąpienie rzeczywistego wyniku transakcji wybraną wartością SL (jeśli maksymalne obsunięcie kapitału przekroczyło poziom ustalonego SL), model symuluje scenariusz, w którym SL zostałby zrealizowany, ograniczając dalsze straty.

chatgpt data science

Zdaniem modelu, najlepszy końcowy P/L osiągamy przy stop lossie na poziomie -50 pipsów. Ten przykład pokazuje, że optymalizacja backtestu niewiele dała. Strategia co prawda jest na plusie, ale od szczytu osiągniętego po transakcji nr 150 zmierza donikąd.

Rozwiązaniem tej zagadki jest oczywiście zmiana warunków rynkowych. Przez 150 transakcji, cena poruszała się we w miarę przewidywalnych zakresach, dlatego strategia regularnie zbierała drobniaki. Następnie, instrument wpadł w trend kierunkowy i czasy prosperity dobiegły końca.

ChatGPT przeprowadził także symulację Monte Carlo dla danych ze zmodyfikowanym stop lossem:

chatgpt ai wykres monte carlo symulacja

I ponownie przedstawił ją w postaci histogramu.

chatgpt wizualizacja danych

Iteracja z najgorszym wynikiem wygenerowała niemal 6000 pipsów straty, przy czym ta z wynikiem najlepszym dała mniej niż 4000 pipsów zysku.

Taka zabawa z chatbotem teoretycznie może pomóc zrozumieć osobom początkującym, że strategia, której krzywa kapitału wygląda tak…

trading krzywa kapitalu equity curve

… może w gruncie rzeczy nie cechować się żadną przewagą, a zyski, które generuje, są przypadkowe.

A to wciąż nie jest wiedza powszechna, bo rynek Expert Advisors do MT4, gdzie przeciętna krzywa kapitału wygląda mniej więcej w ten sposób, cały czas ma się dobrze.

Algotrading, struktura rynku i problem z analizą techniczną

Powyższe przykłady ocierają się o świat algotradingu, więc korzystając z okazji, warto poświęcić trochę czasu na to, by spróbować zrozumieć, czym mniej-więcej zajmują się algotraderzy. To dużo ważniejsze, niż się wydaje, ponieważ rozwija wątek struktury rynku i całkiem przypadkiem tłumaczy, dlaczego założenia popularnych strategii AT nie mają wielkiego sensu.

Zacznijmy od przypomnienia, że Hipoteza Rynku Efektywnego (EMH) zakłada kształtowanie się cen instrumentów w procesie błądzenia losowego.

Na rynku istnieje jednak fenomen “Volatility Clustering”, zaobserwowany po raz pierwszy przez Benoit Mandelbrota, który oznacza występowanie okresów wyższej i niższej zmienności. Po większych zmianach cen zwykle następują kolejne, większe zmiany i odwrotnie, co nie pokrywa się z modelami opartymi na błądzeniu losowym.

volatility clustering gielda indie nifty
Wykres przedstawiający wykres zjawisko Volatility Clustering. Możemy zaobserwować tu okresy niższej (zielony) i wyższej zmienności (czerwony). Źródło: https://blog.algoanalytics.com/2022/10/03/volatility-clustering/

Analitycy techniczni, słysząc o Volatility Clustering, szybko uznają to zjawisko za dowód na to, że na giełdach przeszłość wpływa na przyszłość, co ich zdaniem będzie argumentem za wartością AT. Błąd jest tu oczywisty: to, że coś nie jest losowe, nie oznacza jeszcze, że dysponujemy narzędziami, które byłyby w stanie dostrzec te “nielosowe” elementy. 

Przewaga niedostrzegalna dla przeciętnego człowieka

Świetnie tłumaczy to jeden z fragmentów książki “Advances in Financial Machine Learning”, który porównuje budowę przewagi na rynkach finansowych do poszukiwania złota. W XVI i XVII wieku, proces wydobycia metali szlachetnych był na tyle prosty, że wielu chętnych mogło próbować z powodzeniem oprzeć na tym biznes. W miarę rozwoju technologii i wzrostu zainteresowania dziedziną, ta działalność została zdominowana przez potężne firmy, mające dostęp do narzędzi, którymi zwykły Kowalski nie dysponuje.

Innym porównaniem może być proces polerowania powierzchni. Początkowo, przeciętny człowiek gołym okiem jest w stanie dostrzec na niej małe pęknięcia czy nierówności. Może wykorzystać proste narzędzia, by usunąć te skazy, za co zostanie wynagrodzony pieniężnie. W miarę upływu czasu, łatwo obserwowalnych skaz (nieefektywności) jest coraz mniej. Ludzie przyglądają się im w okularach, później – pod mikroskopem. Aż dochodzi do momentu, że bez odpowiedniego, kosztownego sprzętu i przygotowania merytorycznego po prostu nie jesteś w stanie zaobserwować żadnych nierówności. Z Twojej perspektywy, tafla jest całkiem gładka – rynek jest efektywny i nie da się na nim zarobić, ponieważ wahania cen są nieprzewidywalne. 

Obok spekulantów korzystających z AT, na rynku znajdziemy też ludzi, którzy przyznają, że rynek może być w pewnym stopniu nieprzypadkowy, ale na tradingu zarabiać się nie da, ponieważ “rywalizujesz z najpotężniejszymi algorytmami na świecie”. Choć jest to stanowisko pozornie racjonalne, “rywalizacja” bardzo często jest tutaj rozumiana bardzo dosłownie – ich zdaniem nie możesz, jako kruchy Dawid, wygrać walki z cyfrowym Goliatem, który jest szybszy, nieporównywalnie bardziej skuteczny i na każdym kroku próbuje Cię wykorzystać. To dlatego część pierwsza wspomina o szkoleniowcu, który reklamując kursy twierdził, że “rozgryzł działanie algorytmów”.

Konkurujesz z robotem i jedni twierdzą, że z nim nie wygrasz, a inni – że jesteś w stanie go pokonać.

To plus-minus podejście zagorzałych zwolenników AT, przyjmujących że najwięksi gracze na rynku zachowują się podobnie do nas. Spekulują jak my i rozumieją finanse tak samo, więc są naszymi rywalami. Ze względu na ten błąd, bardzo łatwo jest uwierzyć w Smart Money od ICT. Na rynku, na którym wszyscy robią podobne rzeczy, logicznym jest założenie, że gdy otwierasz pozycję i ustawiasz SL poniżej dołka, zapoluje na niego algorytm – by wykorzystać go jako płynność, zmienić kierunek ceny i zarobić Twoim kosztem.

Wyckoff i “świadoma ignorancja”

To uproszczenie pochodzi oczywiście z Metody Wyckoffa, z której ta seria czerpie garściami. Wiemy już, że jest to uproszczenie niezbędne i przyjmując ten wykastrowany model rynków finansowych, świadomie się “ogłupiamy”. Rezygnacja z tego ogłupienia automatycznie oznaczałaby rezygnację z tradingu, ponieważ czytanie ceny jest prawdopodobnie najbardziej udanym dzieckiem konwencjonalnej AT i nic lepszego w tej dziedzinie nie znajdziemy.

Jednak żeby upraszczać rynek świadomie, warto wiedzieć, jak może wyglądać prawda, która prawdopodobnie jest dużo bardziej skomplikowana i paradoksalnie dużo nudniejsza, niż byśmy chcieli: ten algorytmiczny “Goliat” najczęściej w ogóle Cię nie dostrzega, nie interesuje go to, co robisz, a jego cele i narzędzia do ich osiągania są zupełnie inne od Twoich.

Aby lepiej zrozumieć tę kwestię, przyjrzymy się podstawowym narzędziom wykorzystywanym przez algotraderów, co pozwoli nam uświadomić sobie, jak bardzo różnią się one od tych, do których mamy dostęp jako Dumb Money.

Algotrading w mainstreamie

W głównym nurcie algotrading reklamuje się jako sposób na bezstresowy handel. Takie systemy, najczęściej przeznaczone na platformy MT4/MT5,  mają egzekwować transakcje, które sam mógłbyś zawrzeć ręcznie, co eliminuje/ogranicza problemy z niesławną psychologią inwestowania.

Skoro mainstreamowy algotrading ma wyręczyć Cię w czymś, co mógłbyś zrobić samemu, najczęściej korzysta z tych samych metod, których powszechnie używa się w AT. To styl handlu, który proponuje autor kanału NoNonsenseForex, czyli – budujemy algo ze wskaźników, zaczynając np. od linii bazowej, która ma dzielić rynek na dwa reżimy – hossę i bessę. Następnie, wybieramy wskaźnik wysyłający sygnał do otwarcia pozycji, ten, który każe nam ją zamknąć, a obok nich – wskaźniki potwierdzające – np. wskaźniki wolumenu.

Na grafice poniżej widać najprostszy przykład takiej strategii, wykorzystującej Kijun-Sen z systemu Ichimoku i przecięcia MACD.

tradingview wykres algotrading

Większość znalezionych w internecie treści na ten temat przedstawia algotrading w taki sposób. Dlatego osoba początkująca jest gotowa pomyśleć, że fundusz budujący algorytmy zajmuje się czymś podobnym.

Realnie, systemy należące do tej grupy cieszą się raczej złą opinią, a jeśli generują zyski to często dlatego, że korzystają z uśredniania i martyngału (czyli prędzej czy później zerują rachunki – tak, jak system badany wcześniej przez ChatGPT).

Autor książki “the Black Book of Financial Hacking”, który zajmował się programowaniem algorytmów dla klientów, określa je mianem “wskaźnikowych zup” (z ang. Indicator Soup). 

Źródło: https://financial-hacker.com/please-send-me-a-trading-system/

Powyższa tabela przedstawia dane dotyczące kilku różnych typów budowanych przez niego strategii oraz rynków, na których zostały wykorzystane. Jak widać, systemy typu Indicator Soup radziły sobie najgorzej, a fakt, iż 32% z nich przynosiło zyski, pozytywnie (!) zaskoczył samego autora. 

Reasumując, algotrading w takim wydaniu:

  • Najczęściej zawiera transakcje, które moglibyśmy zawrzeć samodzielnie
  • Wykorzystuje tradycyjne wskaźniki techniczne
  • Przeważnie jest nieskuteczny

Ostatnim i najważniejszym punktem wspólnym takich systemów jest jednak to, że najczęściej zakładają trading kierunkowy. Czyli taki, w którym próbujemy przewidzieć, gdzie w najbliższej przyszłości podąży cena instrumentu po to, by kupić taniej i sprzedać drożej.  

Obok strategii tradingu kierunkowego, istnieją jednak strategie neutralne rynkowo (Market Neutral), które zakładają zarobek bez przewidywania trendów w klasycznym rozumieniu. 

Neutralność rynkowa

Słyszałeś już o neutralnej delcie. W świecie kontraktów opcyjnych oznacza ona brak ekspozycji na ryzyko związane z wahaniami cenowymi, tak więc trader wykorzystujący strategię Delta Neutral w teorii zarabia niezależnie od kierunku rynku.

Jak to w ogóle możliwe?

Pierwszy przykład już znasz. To Market Making, polegający na wystawianiu zleceń po obu stronach rynku i zarabianiu na spreadzie, który jest wynagrodzeniem dla Market Makera za gotowość do przyjęcia na siebie ryzyka (to ryzyko, w jego portfelu przeważnie przetrzymywane jest bardzo krótko). Dzisiaj, czymś takim zajmują się algorytmy HFT, a ich być albo nie być bardzo często zależy od odpowiedniej infrastruktury i szybkości realizacji transakcji. Edge opiera się tu przede wszystkim na niskiej latencji. 

Ale Market Making to tylko wierzchołek góry lodowej, a strategie neutralne rynkowo są bardzo popularne. Na tyle popularne, że pierwsza strategia, na jaką natrafia początkujący algotrader, jest właśnie strategią tego typu.

Pairs Trading jako przykład strategii neutralnej rynkowo

Mowa o arbitrażu statystycznym i strategii Pairs Trading.

Jak wiesz, rozkład zwrotów instrumentów na rynkach finansowych nie jest stacjonarny. To nieustannie ewoluujący system, dlatego wszystkie podmioty angażujące się w spekulację czy inwestowanie są narażone na wystąpienie Czarnych Łabędzi. Czyli zdarzeń, które nie wystąpiły na rynku wcześniej i są nieprzewidywalne, jednak w pewnym sensie oczekiwane – właśnie z uwagi na niestacjonarność tego systemu.

stacjonarne i niestacjonarne szeregi czasowe time series analysis

Jednakże chociaż proces Price Discovery (ustalania cen przez popyt i podaż) pojedynczego instrumentu finansowego jest procesem niestacjonarnym, relacja pomiędzy instrumentami już może być stacjonarna. Przynajmniej jeśli spojrzymy na dane historyczne.

Stąd Pairs Trading, polegająca na znalezieniu pary silnie korelujących ze sobą aktywów (arbitraż statystyczny nie ogranicza się do par i może opierać się na rozgrywaniu longów i shortów na wielu różnych rynkach jednocześnie). Przyjmijmy, że ma być to korelacja pozytywna. Określamy jej stopień i jeśli jest odpowiednio wysoki, przeprowadzamy tzw. test kointegracji. Bada on czy dwa instrumenty są ze sobą historycznie powiązane i czy rozbieżność między nimi – spread, przeciętnie zawraca do średniej.

Jeśli wartości opisujące relację tej pary korelujących instrumentów można zamknąć w rozkładzie stacjonarnym, są kandydatami do wykorzystania w strategii.

W ramach takiego systemu czekamy, aż ceny korelujących instrumentów oddalą się od siebie w stopniu, który historycznie występował rzadko (można określić to z pomocą Z-Scores, mierzących odchylenie wartości od średniej rozkładu normalnego).

Np. niebieski instrument A na poniższej grafice gwałtownie podrożał, na co cena instrumentu B nie reaguje.

pairs trading arbitraz statystyczny

Sprzedajemy więc instrument A na krótko, jednocześnie otwierając long na instrumencie B. Kiedy korelacja wróci do normy i ceny aktywów zbliżą się do siebie, zarobimy na różnicy cen. Nie jest to więc spekulacja, jaką znamy, ponieważ nie interesuje nas, czy ceny spadną czy wzrosną – ważne, by spread powrócił do średniej wartości.

W praktyce, Pairs Trading niekoniecznie jest bezpieczny. Instrumenty mogą przerwać korelację, np. ze względu na bankructwo lub drastyczne zmiany w jednej z firm w parze (w przypadku spółek), czy z uwagi na zmianę warunków makroekonomicznych, która doprowadzi do ewolucji relacji między aktywami.

Z arbitrażu wykorzystującego m.in. konwergencję amerykańskich, europejskich i japońskich obligacji skarbowych, korzystał fundusz Long-Term Capital Management, w którego zarządzie znajdował się m.in. Myron Scholes – laureat nagrody Nobla i współautor słynnego równania różniczkowego Blacka-Scholesa, wykorzystywanego przy wycenie opcji europejskich. Mimo potężnych nazwisk na pokładzie, wysokolewarowany LTCM upadł.

I stało się to pod koniec lat 90, tak więc stat arb i Pairs Trading to bardzo stare wynalazki i tym samym – choć na papierze wyglądają zachęcająco, znalezienie tutaj przewagi przez tradera detalicznego w latach 20. XXI wieku jest, mówiąc delikatnie, trudne.

Mimo wszystko, założenia tej strategii tłumaczą w prosty sposób, jak bardzo mogą różnić się cele zwykłych traderów detalicznych i algotraderów (włączając w to algotrading profesjonalny). Gdy wierzymy, że “wieloryby” polują na nasze stop lossy żeby zarobić w trendach kierunkowych, te same wieloryby najczęściej stosują bardzo zaawansowany arbitraż statystyczny.

Przykładowe narzędzia w algotradingu

Jeśli strategie algotradingowe nie są neutralne rynkowo, metody wykorzystywane przy ich projektowaniu i tak najczęściej nie mają wiele wspólnego z tym, co znamy. Praktycznie wszystko opiera się tu na matematyce. Nawet w przypadku algotraderów detalicznych, którzy, jeśli nie mają formalnego/nieformalnego wykształcenia matematycznego, i tak rozumieją potrzebne zagadnienia w stopniu pozwalającym na wykorzystanie ich w programach.

Jednym z najprostszych i najczęściej spotykanych narzędzi w handlu algorytmicznym są Łańcuchy Markowa, które dzielą procesy zachodzące w systemie na różne stany, a następnie określają prawdopodobieństwo przejścia tego systemu z jednego stanu w drugi. Prawdopodobieństwo określa się na podstawie stanu, w którym system znajduje się obecnie – sekwencja stanów, które wystąpiły wcześniej, nie ma znaczenia.

lancuch markowa trading prawdopodobienstwo
Źródło: https://quantdare.com/markov-chain-as-market-predictor/

Powyżej widać matrycę prawdopodobieństwa takiego łańcucha, pochodzącą z portalu Quantdare. Autor badania podzielił wykres historyczny spółki Apple na 7 różnych reżimów zmienności. Reżim 7 oznacza tutaj najbardziej agresywny wzrost, a Reżim 1 – najbardziej agresywny spadek. Jak widać, system ma tendencje do pozostawania w tym samym stanie, czyli np. jeśli aktualnym stanem jest Reżim 6, w następnym kroku w sekwencji rynek najprawdopodobniej pozostanie w tym reżimie. 

W artykule, autor rozważał wykorzystanie wyników z matrycy do modyfikacji ekspozycji portfela na zmienność Apple w celu maksymalizacji zwrotów. I duża część tradingu algorytmicznego opiera się właśnie na budowie średnio- lub długoterminowych portfeli. Korzysta się z Modern Portfolio Theory, w celu znalezienia optymalnego stosunku podejmowanego ryzyka (rozumianego jako zmienność przetrzymywanych aktywów) do oczekiwanego zysku. Niektórzy algotraderzy określają sentyment rynkowy wykorzystując uczenie maszynowe. Takie algorytmy niekiedy są wykorzystywane także w klasycznym news-tradingu, analizując ogromne ilości “czytanego” tekstu w ciągu sekund, a następnie, zawierając transakcję zgodną z wydźwiękiem tych treści. Systemy arbitrażu statystycznego HFT skanują niezliczoną ilość rynków w poszukiwaniu rozbieżności cenowych między instrumentami, które są niedostrzegalne dla człowieka. I tak dalej…

Wszystko to składa się na chaos, który obserwujemy na wykresach i mówi nam dwie rzeczy: 

Pierwsza: Operator Złożony Wyckoffa jest nam potrzebny, ale drastycznie upraszcza rzeczywistość (choć istnieją algorytmy, których działanie pokrywa się z jego rozumieniem rynku – jak Momentum Ignition Algorithms, których działanie przynajmniej w pewnym stopniu tłumaczyła część dot. manipulacji). 

I druga: jako traderzy czy nawet inwestorzy manualni jesteśmy jaskiniowcami świata finansów. Kiedy próbujemy analizować przychody spółek, przekopując się przez dane z Yahoo Finance, gdzieś tam jest algotrader (i to wcale nie musi być profesjonalny algotrader), który zbudował dashboard dostarczający w ciągu kilku sekund analizę setek lub tysięcy aktywów, która nam zajęłaby miesiące lub lata. 

Wypracowanie niemierzalnej przewagi jest możliwe. Inaczej nie istnieliby traderzy tacy, jak Tom Hougaard czy Kristjan Kullamägi. Ale trzeba pamiętać, że z każdym rokiem dla takich ludzi może być na rynku coraz mniej miejsca. 

 

Czytaj poprzedni: Część XV: Playbook




reklama

Dodaj komentarz

Ostrzeżenie o ryzyku Kryptowaluty oraz produkty lewarowe to bardzo ryzykowne istrumenty finansowe, mogące spowodować szybką utratę kapitału.

Materiały opublikowane na tej stronie mają jedynie cel informacyjny i nie należy ich traktować jako porady inwestycyjnej (rekomendacji) w rozumieniu przepisów ustawy z dnia 29 lipca 2005r. o obrocie instrumentami finansowymi. Nie są również doradztwem prawnym ani finansowym. Opracowania zamieszczone w serwisie Cryps.pl stanowią wyłącznie wyraz poglądów redakcji i użytkowników serwisu i nie powinny być interpretowane w inny sposób.

Niektóre artykuły opatrzone są odnośnikami do innych stron. Służy to uzupełnieniu przedstawionych informacji.
Niektóre jednak linki mają charakter afiliacyjny: prowadzą do oficjalnych stron producentów, na których można kupić opisywany produkt. Jeśli użytkownik dokona transakcji po kliknięciu w link, nasz serwis pobiera z tego tytułu prowizję. Nie wpływa to na finalną cenę produktu, a w niektórych przypadkach ją obniża. Portal CrypS.pl nie ponosi odpowiedzialności za treści, które znajdują się na podlinkowanych stronach.