Naga Markets



W ostatnich artykułach sprawdzaliśmy zyskowność dwóch strategii (Force of Trend oraz ISR). W obu przypadkach wyniki były satysfakcjonujące. Niektórzy z Was pewnie zastanawiają się w jaki sposób osiągnąć taki wynik i czy można taką strategię zbudować od początku. Odpowiedź jest prosta – oczywiście, że tak. Obie powyższe strategie budowałem sam, metodą prób i błędów oraz w oparciu o wiedzę i doświadczenie. Dzisiaj spróbuję pokazać jak przebiega taki proces budowania strategii od samego początku.


Program do analizy

W pierwszej kolejności musimy wybrać sobie program do analizy danych. Chodzi tutaj oczywiście o najprostszy program do analizy technicznej. Mam na myśli program, ponieważ zazwyczaj są w nim zawarte odpowiednie narzędzia do przeprowadzania testów historycznych. Jeżeli jednak ktoś jest zdeterminowany i nie chce wydawać pieniędzy na licencję oprogramowania, może wykorzystać darmowe programy do analizy technicznej (znajdziemy taki np. na portalu www.stooq.pl). Pomyślicie pewnie, że to czasochłonne i wymagające poświęcenia – tak, to prawda. Wiem o tym doskonale, ponieważ… sam przez dwa lata pracowałem na tego rodzaju programach, a wyniki wpisywałem ręcznie na kartce papieru i w Excelu.

Aktualnie używam programu Metastock 11Pro, którego interfejs mam już trochę opanowany, znam podstawy programowania w języku Metastock i mogę sprawnie przeprowadzać testy historyczne. Dlatego też, na potrzeby niniejszego artykułu, bazować będę właśnie na tym programie.

Nowa strategia

W programie Metastock z automatu mamy gotowych kilkadziesiąt przykładowych strategii o różnych parametrach, wykorzystujących różne wskaźniki i metody. Możemy oprzeć się na jednej z nich, bądź stworzyć zupełnie nową. My spróbujemy zbudować naszą strategię od podstaw, dlatego wybieram „New system…”.

W zakładce „General” mamy ogólne informacje o strategii:

  • Nazwa – podajemy nazwę strategii,
  • Opis – krótki opis, charakterystyka, na czym będzie polegać itd.,
  • Priorytet zlecenia – dotyczy raczej skomplikowanych strategii, gdzie sygnały mogą się ze sobą „kłócić”, wtedy musimy określić, jaki rodzaj zlecenia ma pierwszeństwo,
  • Struktura portfela – również w przypadku skomplikowanych strategii, czy mogą być otwarte jednocześnie pozycja długa i krótka, czy też nie,
  • Limit pozycji – zazwyczaj stosujemy to w przypadku kontraktów terminowych, gdzie zysk liczony jest w punktach, określa dokładną ilość pozycji jaka maksymalnie może zostać otwarta.

Warunki otwarcia pozycji

Kolejna zakładka „Buy Order” to zlecenie zakupu, określamy tutaj przede wszystkim formułę, po której nasza strategia ma otwierać pozycję długą. Nasza formuła zakupu jest określona takim oto wzorem: cross(mov(C,15,E),mov(C,50,E)) i oznacza, że sygnał zakupu następuje w momencie:

przecięcia (cross) średniej (mov – moving avarage) wykładniczej (E – exponential) 15-okresowej (15) z cen zamknięcia (C – close) ze średnią wykładniczą 50-okresową cen zamknięcia. Średnia szybsza przecina średnią wolniejszą od dołu.

W tej samej zakładce określamy także rodzaj zlecenia, funkcję dla zlecenia limit lub stop (jeżeli dotyczy) oraz opóźnienie sygnału.

Następna zakładka „Sell Order” to nic innego jak zlecenie sprzedaży. W naszym przypadku określimy po prostu odwrotne zależności, funkcja będzie zatem wyglądała następująco: cross(mov(C,50,E),mov(C,15,E)). Oznacza to, że sygnał sprzedaży wystąpi w przypadku przecięcia się średnich, ale tym razem średnia szybsza przecina średnią wolniejszą od góry.

Zakładki „Sell Short Order” oraz „Buy to Cover Order” dotyczą sytuacji, w których mamy możliwość spekulacji na spadkach. Dla uproszczenia zakładamy, że w naszej strategii możemy otwierać tylko pozycje długie, stąd pomijamy te dwie części.

Przedostatnia zakładka dotyczy zleceń SL, a więc zleceń ochronnych. Mamy tutaj spory wachlarz możliwości. Możemy określić np.:

  • Breakeven – poziom przesunięcia SL na moment wejścia, a więc próg rentownośc,
  • Maximum Loss – maksymalny poziom straty na pozycji,
  • Profit – poziom zysków,
  • Inactivity Minimum Change – poziom minimalnej zmiany, bardzo ciekawa opcja, w której podajemy zakres procentowy lub punktowy zmiany ceny przez dany okres, jeżeli cena utrzyma się w tym przedziale to traktowane jest to przez program jako nieaktywność i strategia automatycznie zamyka pozycję,
  • Trailing – poziom SL kroczący, a więc taki który podąża za ceną.

Na początek przeanalizujemy strategię bez zleceń SL.

Ostatnia zakładka służy optymalizacji strategii. Póki co też jej nie będziemy używać, sprawdzimy jak zachowuje się strategia na „suchych” założeniach.

Wybór rynków i pierwszy test

Następnym krokiem jest wybór rynków lub też konkretnych papierów, na których dokonamy testów naszej strategii. Do przeprowadzenia testów wybrałem wszystkie spółki z WIG20. Poniżej zaprezentowane zostały wyniki osiągnięte przez strategię:

Najgorszy wynik strategia uzyskała na akcjach PGE (-56,62%) natomiast najlepiej poradziła sobie na akcjach LPP (310,69%).

Wyniki na pewno nie zachwycają, spróbujmy zatem coś zmienić. Dodajmy SL 10%, w takim układzie każde zlecenie, które będzie tracić na wartości 10% i więcej zostanie z automatu zamknięte przez system. Oto wyniki:

Niestety trzeba stwierdzić, że mimo iż wprowadzony został poziom SL, który teoretycznie powinien chronić przed stratami – zwiększył je. Okazuje się, że spółki generowały mniejszy zysk, a te które generowały straty, powiększyły je. Nasz poziom SL okazał się złym wyborem. Próbujmy zatem dalej.

Optymalizacja strategii

Przejdziemy teraz do optymalizacji naszej strategii. Zamiast stałych wartości średnich, spróbujemy zastosować różne kombinacje:

  • szybka średnia – kombinacje od 5-okresowej do 50-okresowej, krok co 5 okresów,
  • wolna średnia – kombinacje od 30-okresowej do 100-okresowej, krok co 5 okresów.

Łącznie uzbiera nam się 150 testów, co przy 20 spółkach daje 3000 wyników. Zobaczmy zatem jaki zestaw średnich uzyskiwał najlepsze wyniki.

Najlepszy średni zysk uzyskała strategia 50/100 (szybsza średnia 50-okresowa oraz wolna 100-okresowa):

Aż 8 spółek uzyskało wynik trzycyfrowy (ponad 100%) w ciągu ostatnich 2500 sesji (około 10 lat). Jednocześnie to samo zestawienie średnich uzyskało najlepszy średni stosunek zysku do straty, aż 8,04!

Wniosek jaki można wyciągnąć z powyższych testów jest taki, że najbardziej zyskowna okazała się strategia długoterminowa z „najwolniejszym” układem średnich. To może potwierdzać powszechne powiedzenie giełdowe, że na rynku liczy się cierpliwość.

Ryzyko optymalizacji

Pamiętajmy jednak, aby nie optymalizować nadmiernie strategii np. nie stosować kroku co 1-okres w przypadku średnich. Wtedy dany system inwestycyjny może dopasować nam średnią idealnie pod dane z wykresu i okaże się, że na realnym rynku strategia będzie totalnie bezużyteczna. Podam może przykład.

Spróbujmy znaleźć idealne średnie dla spółki KGHM. Po przeprowadzeniu testów tysięcy kombinacji okazało się, że na przełomie ostatnich 2500 sesji giełdowych, najlepszym zestawem średnich dla KGHM jest szybka średnia 3-okresowa oraz wolna 61-okresowa.

Niestety jeżeli sprawdzimy ten sam zestaw średnich na wykresie KGHM, ale we wcześniejszym okresie to wyniki wyglądają tak:

Powyższe wykresy obrazują linie kapitału podczas całego okresu korzystania z danej strategii. Mimo takich samych parametrów, w różnych okresach wyglądają one zupełnie różnie. To właśnie jest najlepsze zobrazowanie ryzyka optymalizacji, a więc dopasowania strategii do danych historycznych. Rynek jest zmienny i strategia działająca przez ostatnie 10 lat znakomicie, może przynieść totalnie odwrotne wyniki w kolejnych 10 latach. Na to trzeba uważać i o tym warto mówić.

Krzysztof Strauchmann, http://www.pieniadzenagieldzie.pl/



Conotoxia

Dołącz do dyskusji logując się za pomocą Facebook

To również Cię zainteresuje - Comparic24.tv

ZOSTAW ODPOWIEDŹ

Please enter your comment!
Please enter your name here