ANALIZA TECHNICZNA

Czy średnia krocząca poprawia wyniki MACD?

MACD to jeden z najpopularniejszych wskaźników analizy technicznej. Niedawno wykonałem jego testy historyczne na indeksach i akcjach GPW. Poniższe testy są kontynuacją poprzednich, których wyniki wyszły zadowalające jedynie dla małych i średnich spółek, w bardzo długim okresie. Mało kto akceptuje taki horyzont czasowy, więc szukałem sposobu na poprawienie wyników w krótkim terminie. Czy się udało?

Założenia testów

Wprowadziłem „filtr” w postaci prostej średniej kroczącej. Założenie było takie, aby reagować na sygnały kupna generowane przez MACD pod warunkiem, że instrument znajduje się w trendzie wzrostowym. Trend miał być definiowany przez średnią kroczącą. Zatem, jeśli kurs znajdował się powyżej średniej, sygnał kupna na MACD był realizowany. Jeśli kurs znajdował się poniżej średniej, sygnał kupna były ignorowany. Średnia krocząca została poddana optymalizacji, więc dla każdego instrumentu finansowego wyszedł inny jej zakres.

Wykonanych zostało 36 testów na indeksach, które różniły się:

  • okresem inwestycji (6, 10, 17 lat)
  • interwałem (dzienny, tygodniowy, miesięczny)
  • instrumentem (indeksy WIG, WIG20, mWIG40, sWIG80)

Każdy test został wykonany z założeniem, że sygnały sprzedaży generuje wyłącznie MACD, a sygnały kupna MACD filtrowane przez średnią kroczącą . Po sygnale kupna inwestowany był cały kapitał, a po sygnale sprzedaży następowała sprzedaż. Nie były otwierane pozycje „krótkie” (nie było „gry na spadki”). Przedmiotem każdego testu był pojedynczy indeks.

Zakresy średnich: we wszystkich trzech interwałach dla MACD zastosowane zostały średnie o tych samych zakresach: 9 (linia sygnalna) oraz 12 i 26 (MACD). Analogiczny efekt można by oczywiście uzyskać stosując w interwale dziennym odpowiednio wydłużone zakresy średnich.

Prowizja transakcyjna: 0,38%.

MACD-okresy-testow-na-tle-wigWyniki testów

W okresie 17 lat, dzięki filtrowi (średnia krocząca), wyniki poprawiły się. Jednak w większości przypadków poprawa była nieznaczna. Jedynie w przypadku sWIG80 poprawa była dość istotna (z wyjątkiem interwału miesięcznego). Zakres zoptymalizowanej średniej, dzięki której poprawiły się wyniki, wyniósł 155 dla interwału dziennego, a dla tygodniowego – 15.

Po wprowadzeniu filtru, w prawie każdym przypadku, delikatnie poprawił się wskaźnik udziału transakcji zyskownych.

Wyniki w okresie 10 lat bardzo się różnią od tych z okresu 17 lat. Wprowadzenie filtru najlepiej wpłynęło na WIG20, natomiast w przypadku sWIG80 stopy zwrotu bardzo się pogorszyły. Dla WIG20 zakres zoptymalizowanej średniej wyniósł 25o w interwale dziennym, a 30 – w tygodniowym.

W okresie 10 lat, podobnie jak wcześniej, w większości przypadków wskaźnik udziału transakcji zyskownych delikatnie się poprawił.

W okresie 6 lat wprowadzenie filtru dało jeszcze słabsze rezultaty. Na sWIG80 stopy zwrotu z filtrem były niższe niż bez niego. Wyniki dla interwału miesięcznego można zupełnie pominąć ponieważ, po wprowadzeniu filtra, liczba transakcji była bardzo mała lub nie było ich wcale.

W okresie 6 lat wprowadzenie filtra prawie w żadnym przypadku nie wpłynęło na poprawę wskaźnika udziału transakcji zyskownych.

Wnioski

Celem wprowadzenia filtra była poprawa wyników MACD w krótkim terminie, szczególnie w odniesieniu do małych i średnich spółek.

Poprawa na małych spółkach wystąpiła, ale jedynie w najdłuższym terminie. W krótkim wyniki na małych spółkach pogorszyły się. Filtr, w postaci średniej kroczącej, nie spełnił swojej roli.

Pobierz arkusz wyników MACD z filtrem średniej kroczącej

Serdecznie dziękuję Marcinowi Brendota, który pomógł mi poznać podstawy języka AFL w Amibroker. Polecam każdemu Marcina jako współpracownika 🙂

Komentarze

Dodaj komentarz

  • Ciekawy tekst. Dobrze by było jednak dodać linię equity i podać podstawowe statystyki jak cagr,maxdd. Generalnie mało jest takich testów, są głównie iszimoki, czy elioty z milionami fibokreseczkami wszerz i wzdłuż.

    • Cześć Mirek, dzięki za opinię. Jeśli miałbyś sugestie odnośnie do założeń, jestem otwarty. Podstawowe statystyki odnoszące się wyników MACD BEZ FILTRA znajdziesz we wpisie: http://okiemmaklera.com/macd/. Na samym dole jest link umożliwiający pobranie szczegółów każdego testu. Pozdrawiam, Artur

      • czesc Artur,

        Czy masz moze doswiadczenie z mechanicznymi systemami transakcyjnymi i ewentualnie planujesz pisac w tym temacie? A w szczegolnosci cos w temacie programowania genetycznego i nastepnie statystycznej obrobce strategii celem sprawdzenia ich przydatnosci na realnym rynku?

        Dzieki i pozdrawiam,
        Michal

        • Cześć Michał, temat leży w orbicie mojego zainteresowania, lecz na razie wgryzam się w prostsze rzeczy. Polecam Ci zadać to pytanie na FB w grupie „Backtesting i programowanie na Forex”

        • Michał, nie polecam używania algorytmów genetycznych, przede wszystkim dlatego, że ta dziedzina algorytmiki nie jest obecnie mocno rozwijana. Istnieje wiele mocniejszych algorytmicznie narzędzi, głownie machine (deep) learning, które skutecznie są używane przez banki inwestycyjne.

          • Dzieki za odpowiedzi.

            Algorytmy genetyczne w gruncie rzeczy sa wlasnie forma machine learning. Z mojego osobistego doswiadczenia, jest to bardzo interesujaca forma budowania strategii, o ile poparta jest rzetelna obrobka statystyczna, minimalizujaca problem curve-fitting’u (o ktory ze wzgledu na data mining latwo).

            @Marek
            Marku, chetnie poznam Twoje doswiadczenia w tej materii.

  • Tak na marginesie, to czy można znaleźć gdzieś linie equity realnych systemów transakcyjnych opartych na takich złożonych procedurach, jak algorytmy genetyczne/sieci neuronowe. Takie które operują na „monochromatycznym” rynku, np. tylko akcje z Nasdaq100, tak by wyniki można porównać wprost do benchmarku. Techniki te istnieją już sporo czasu, a jakoś poszło to gdzieś na bok, natomiast rozpycha się HFT – przewaga techniczna, a inni ….niech sobie testują (i tak z tego nic nie będzie, kwestia czasu).

    • Nie wiem czy ktos publikuje swoj system, pokazuje jego srodek i mowi — a tak wyglada equity line z live tradingu. Natomiast z mojego doswiadczenia moge powiedziec, ze:
      – systemy generowane przy pomocy GP powinny byc jak najprostsze, zeby nie wpadnac od razu na curve-fitting
      – systemy takie musza przejsc ciezkie testy (monte carlo, cluster walk forward analysis, significance testing, etc.)
      – probka transakcji powinna byc duza (z mojego doswiadczenia nawet ponad 1000, gdyz dzielimy to na in-sample, out-of sample i super-out-of sample).
      – sieci neuronowe nie pomagaja z mojego doswiadczenia w budowaniu sensownych (nie dopasowanych do danych) systemow

      HFT to jednak cos zupelnie innego. Bo systemy generowane poprzez GP to raczej LFT (low-frequency).