Testowanie i optymalizacja strategii tradingowych

Admiral Markets

Handel na rynkach finansowych jest takim samym biznesem, jak każdy inny. Każdy biznes potrzebuje precyzyjnego planu działania, a zwłaszcza tak wymagający, jak trading. W tradingu nasz plan powinien obejmować strategię inwestycyjną, dobrany do niej styl inwestycyjny oraz system transakcyjny. Te trzy składowe określają w kompletny sposób nasz handel na rynkach finansowych. Tylko precyzyjny plan pozwoli nam odnosić regularne profity w dłuższym czasie.

Krótko przypomnijmy, czy charakteryzuje się strategia, styl inwestycyjny oraz system transakcyjny. Strategia inwestycyjna jest to najogólniej mówiąc zespół konkretnych reguł i wzorów zachowań przy pomocy, których inwestor zamierza realizować swoje dyspozycje kupna i sprzedaży na danym rynku, w danym horyzoncie czasowym. Strategia będzie zależeć od stanu wiedzy inwestora, od tego ile ma czasu, jakie ryzyko jest w stanie ponieść. Do swojej strategii powinien dobrać odpowiedni styl inwestycyjny, przykładowo swing trading, czyli handel średnioterminowy, bądź day trading, który oznacza handel w ciągu jednej sesji, krótkoterminowy. W końcu przychodzi czas na wybranie systemu transakcyjnego, który określi momenty wejścia w pozycję oraz wyjścia z niej. System transakcyjny powinien również zawierać szczegóły dotyczące zarządzania kapitałem oraz ryzykiem.

Metody testowania strategii

Przetestowanie naszego systemu transakcyjnego na rachunku demonstracyjnym jest kluczowe, żeby móc zacząć ryzykować własne środki. Nigdy nie możemy mieć pewności, czy stworzony przez nas system będzie się sprawdzał na rzeczywistym rynku. Nie jesteśmy w stanie przewidzieć każdej sytuacji, która może się pojawić na rynkach finansowych. Żaden system stworzony na "kartce papieru" nie będzie oddawał wszystkich realnych scenariuszy, które mogą się przydarzyć podczas handlu.

Jedną z opcji, jaką możemy zastosować jest zapisanie naszego systemu w języku programowania MQL (MetaQuotes Language), który służy do tworzenia programów do automatycznego handlu. Język MQL został stworzony przez firmę MetaQutoes, która jest twórcą platformy MetaTrader 4. Zapisujemy nasz system w języku MQL, po czym zapisany program wczytujemy na platformę MetaTrader 4 i platforma jest w stanie przetestować nasz system na danych historycznych. Problem polega na tym, że jeżeli nie znamy się na programowaniu, to musimy zlecić to zadanie programiście lub osobie, która się na tym zna. Ponadto nie każdy system można zapisać, jako program do automatycznego handlu. Przykładowo system oparty o dwie średnie kroczące, które się przecinają dając sygnał wejścia w pozycję byłoby łatwo zapisać, albo oparty o inne wskaźniki, oscylatory. Jednak, gdy nasz system oparty jest o poziomy wsparcia, oporu w połączeniu z formacjami świecowymi itd. byłoby dużo trudniejszą sprawą zautomatyzowanie takiego systemu.

Jeżeli nie możemy zapisać naszego systemu w postaci programu, w takiej sytuacji możemy przetestować nasz system na rachunku demonstracyjnym. Żeby testy były wiarygodne muszą obejmować okres przynajmniej kilku tygodni, albo miesięcy. Dzięki temu sprawdzimy ile nasz system przynosi zysków, jakie maksymalne obsunięcie kapitału wygenerował, w końcu, jaką skuteczność ma nasz system oraz tak zwany profit factor, czyli średni stosunek zysku do straty. Przykładowo nasz profit factor wynosi 3, to oznacza, że średnio trzy razy większy był nasz profit, niż wynosiły nasze stratne pozycje. W takiej sytuacji nawet przy skuteczności poniżej 50% jesteśmy w stanie zarabiać. Nasza skuteczność może by nawet o wiele niższa, niż 50%, ale to wymaga dużo wyższego współczynnika ryzyka do zysku.

Choć takie testy są niezbędne, to mają jedną kluczową wadę. Są bardzo czasochłonne. Jeżeli chcemy przetestować nasz system w przeciągu kilku miesięcy, to zajmie nam to właśnie kilka miesięcy. Po tym okresie może się okazać, że system w ogóle nie sprawdza się i musimy szukać innej strategii. I znowu będziemy musieli spędzić tygodnie, a może miesiące, żeby sprawdzić kolejny system transakcyjny.

Jest jednak prostsze rozwiązanie. Posiadając platformę MetaTrader 4 możemy zainstalować rozszerzenie do niej, a mianowicie Supreme Edition. Rozszerzenie oferuje bardzo dużo funkcji, które ułatwiają nam codzienny handel. My jednak skupimy się na symulatorze handlu. Narzędzie Trading Simulator pozwala manualnie przetestować dowolny system transakcyjny opierając się na historycznych danych. Jesteśmy w stanie przetestować okres kilkunastu miesięcy w przeciągu kilku, maksymalnie kilkunastu godzin. Jest to ogromna oszczędność czasu.

Wyniki testów naszej strategii

Po zakończeniu testów przyszedł czas na analizę wyników, jaki został uzyskany na danym systemie transakcyjnym. Jednak sprawdzenie, czy system transakcyjny wygenerował zysk lub stratę nie wystarczy. Wynik finansowy nie mówi nam wiele o systemie, oprócz tego, że zarabia w danym okresie, albo traci. Należy przeanalizować dokładnie wszystkie parametry raportu, który jest generowany po zakończeniu testów. Raport przestawia następujące zmienne:

Profit lub stratę, którą wygenerował nasz system w przetestowanym okresie. Wynik ten jest w końcu najważniejszym parametrem w wyborze danego systemu transakcyjnego.

EUR/USD

Krzywą kapitału, która zobrazuje nam, czy nasz kapitał równomiernie szedł w górę i skakał, jak "pijany zając". Profesjonalny handel na rynkach charakteryzuje się osiąganiem regularnych zysków, nie chodzi o zarobienie bardzo dużej kwoty w jednej transakcji, gdyż zazwyczaj szybko taki profit jest oddawany rynkowi.

Skuteczność strategii, przykładowo 55%, co oznacza, że 55% transakcji była zyskowna, a 45% stratna.

Tak zwany profit factor, który przykładowo wynosi 2, co będzie oznaczać, że nasze transakcje zyskowne były średnio dwa razy większe od tych stratnych. Profit factor należy porównać do skuteczności, bo system może mieć skuteczność 80%, ale profit factor poniżej jednego, czyli zarabiamy mniej, niż tracimy na pojedynczej transakcji. Z drugiej strony skuteczność drugiego systemu może być mniejsza, niż 50%, a system będzie się charakteryzował duży współczynnikiem profit factor, co ostatecznie da lepsze rezultaty, niż pierwszy system posiadający dużą skuteczność.

Maksymalne obsunięcie kapitału, które jest pomijane często przez inwestorów. Co z tego, że nasz system wygeneruje w danych okresie zysk, jeżeli w tym czasie będą momenty, kiedy nasze obsunięcie kapitału będzie wynosić kilkadziesiąt procent. Myślę, że nasz spokój psychiczny mógłby zostać zachwiany, gdy nagle nasz rachunek skurczyłby się o 50%, 60%, a może nawet więcej procent.

Dlatego tak istotne jest dokładne przeanalizowanie systemu transakcyjnego, nie tylko pod kątem zysku, ale również wielu innych parametrów takich, jak chociażby skuteczność, osoby bardziej cierpliwe będą akceptować mniejszą skuteczność na rzecz większego zysku do straty, jaką ponoszą na każdą transakcję, czyli będą chciały uzyskać, jak najwyższy współczynnik profit factor lub risk - reward, a będą w stanie zaakceptować niższą skuteczność, przykładowo poniżej 50%. Taki system będzie generował więcej transakcji stratnych, ale jak pojawi się transakcja zyskowna, to będzie ona znacznie większa, niże te stratne. Z kolei osoby mniej cierpliwe będą wolały częściej zbierać z rynku mniejsze zyski, niż czekać na jeden większy profit. Każda strategia musi być dostosowana do naszych osobistych predyspozycji, co wymaga sprawdzenia systemu transakcyjnego na tak zwanych backtestach.

Optymalizacja naszej strategii

Ważnym elementem tworzenia naszej strategii jest jej optymalizacja. Strategia oraz system transakcyjny powinny być jak najbardziej dopasowane do naszych osobistych predyspozycji. Osoby mniej cierpliwe mogą chcieć wcześniej realizować zysk, na rzecz współczynnika ryzyko do zysku. Z kolei osoby o żelaznej psychice nie zadowolą się mniejszym zyskiem, będzie ich interesowało zamknięcie pozycji przy maksymalnym wykorzystaniu warunków rynkowych. Będą w stanie zaakceptować mniejszą skuteczność, co oznacza częstsze księgowanie strat, ale jak już trafią na zyskowną transakcję, to będzie ona kilkukrotnie większe od średniej zaksięgowanej straty, zazwyczaj trzy, cztery, a nawet pięć i więcej razy większa. Część osób będzie wolało wchodzić w pozycję zlecenia z limitem, czyli po lepszej cenie, niż rynkowa. Pozwoli to zmniejszyć ryzyko, rozmiar zlecenia stop loss, ale może spowodować, że niektóre transakcje nam uciekną Cena nie zejdzie, albo nie wzrośnie do zlecenia z limitem. Inni gracze będą woleli wykorzystać wszystkie okazje ponosząc większe ryzyko. Optymalizacja ma na celu stworzenie strategii, która będzie idealnie pasować do Ciebie. System transakcyjny, który sprawdzał się u kogoś nie musi sprawdzać się u drugiego gracza. Im mniej dopasowany system do predyspozycji konkretnej osoby, tym większa pokusa do łamania zasad danego systemu.

Podsumowanie

Wykonywanie testów naszego systemu jest kluczowe. Nie każdy system można zapisać w języku programowania MQL, co pozwoli w szybki sposób sprawdzić go na platformie MetaTrader 4. Część systemów posiada subiektywne założenia, które nie da się przełożyć na program do handlu automatycznego. W takiej sytuacji pozostaje manualnie przetestować nasz system na rachunku demonstracyjnym. Aby wynik był wiarygodny musi obejmować okres od kilku tygodni do miesięcy, im dłuższy, tym lepiej. Standardowe dokonywanie transakcji na rachunku demo jest jednak bardzo czasochłonne i nie mamy gwarancji, że nasz system przejdzie pozytywnie testy. Wtedy będziemy musieli powtórzyć testy ze zmienionymi parametrami lub testować całkowicie nowy system, co ponownie zajmie tygodnie, albo miesiące.

MT4 Supreme Edition

Rozwiązaniem są manualne backtesty, które na szczęście możemy dokonać na platformie MT 4 Supreme Edition Admiral Markets. Rozszerzenie posiada wyżej opisaną funkcję Trading Simulation, która pozwala przetestować okres kilkunastu miesięcy w przeciągu kilku godzin. Wykres może poruszać się szybciej, niż standardowy, co oczywiście przyśpiesza dokonywanie transakcji, co więcej możemy przewinąć okresy, które nas nie interesują, przykładowo sesje nocne. To bardzo przydatne narzędzie pozwala zaoszczędzić bardzo wiele czasu. Obecnie czas jest niezmiernie cenny, a zwłaszcza w tradingu, gdzie tyle się dzieje, a rynki tak szybko się zmieniają. Systemy, które były skuteczne dekadę temu mogą dzisiaj już zupełnie nieprzydatne. Rynki obecnie są w bardzo dużym stopniu skomputeryzowane, niż jeszcze kilkanaście lat temu, nie mówiąc juz kilkadziesiąt lat temu. Dlatego tak istotne jest, żeby nie tracić wiele czasu na testowanie systemu transakcyjnego, który może się okazać nieskuteczny. Możliwość przetestowania w krótkim czasie wielu systemów to bardzo duża przewaga na rynku, którą uzyskujemy dzięki MT4 Supreme Edition. Symulator handlu pozwoli zaoszczędzić Ci bardzo dużą ilość czasu, które możesz przeznaczyć na testowanie różnych systemów lub optymalizację już sprawdzonej strategii. Każdy nowy pomysł możesz od razu przetestować na historycznych danych, co pozwoli szybko wdrożyć go do handlu.