Ponownie i z lubością zaglądam do książki Arta Collinsa „Beating the financial futures markets” w poszukiwaniu inwestycyjnych ciekawostek, którymi mógłbym zainteresować albo zaskoczyć Czytelników blogów:)

 

Torturowanie danych w poszukiwaniu wszelkich nieefektywności, trendów, okazji inwestycyjnych czy zjawisk statystycznych to mój ulubiony rodzaj giełdowej alchemii. A ponieważ jako Tomasz jestem ponoć z natury niewierny więc pomysły Collinsa badam po swojemu i dużo szerzej. Tym razem wybrałem popularną strategię przecięcia 2 średnich, w której ukrywa się coś przeczącego naturze tej metody.

Bohaterkami są więc dwie zwykłe, matematyczne średnie z cen zamknięcia 5 i 2 sesji. Ta krótsza jest oczywiście dużo szybsza i to ona co rusz przebija 5-cio sesyjną to od góry, to od dołu. W klasycznej Analizie Technicznej takie wzajemne przecinanie obu traktuje się jako sygnały zmiany pozycji: na długą (kupno rynku) kiedy średnia 2-sesyjna przebija od dołu 5-sesyjną i na krótką (sprzedaż rynku) gdy 2 sesyjna schodzi z góry i przenika 5-sesyjną.

Collins odwraca jednak ową logikę zapytując:

jaki wynik uzyskamy sprzedając rynek gdy 2-sesyjna średnia przebiega powyżej 5-sesyjnej i kupując gdy biegnie ona poniżej? I paradoksalnie takie przeciwstawienie się rynkowi ma jak się okazuje sens. Strategia gry wyglądałaby  następująco:

1. Jeśli budzisz się rano i widzisz, że średni kurs z 2 ostatnich zamknięć sesji jest wyższy niż średni kurs z 5 ostatnich zamknięć to otwórz krótką pozycję w kontraktach na otwarciu sesji i wyjdź z pozycji za zamknięcie tej samej sesji.

2. Jeżeli jednak widzisz układ odwrotny czyli średnia 2 sesyjna przebiega poniżej 5-sesyjnej czym prędzej otwórz długą pozycję na otwarciu sesji i wyjdź z niej na zamknięciu.

Rozrysowałem to dla większej jasności na poniższym wykresie:

Linie ciągłe to obie średnie, strzałki czerwone wskazują sesje, na których tylko sprzedajemy otwarcie, strzałki zielone – sesje spędzone na pozycjach długich.

W książce pojawiają się testy z okresu tuż przed jej wydaniem czyli lata 2001-2005. Każdorazowo kupno lub sprzedaż jednego tylko kontraktu terminowego, prowizje i poślizgi nie są brane pod uwagę celem wychwycenia samego efektu, kapitał początkowy 100 tys $. I oto wyniki dla kilku różnych kontraktów finansowych:

S&P500

Zysk w porównaniu do kapitału początkowego: 100,14%

Zysk średnioroczny: 14,2%

Trafność: 52,28%

Max. zjazd krzywej kapitału: 69625 $

——————–

NASDAQ

Zysk w porównaniu do kapitału początkowego: 27,15%

Zysk średnioroczny: 4,91%

Trafność: 49,47%

Max. zjazd krzywej kapitału: 136150 $

 ———————-

30 letnie Obligacje

Zysk w porównaniu do kapitału początkowego: 48,53%

Trafność: 51,03%

Max. zjazd krzywej kapitału: 19344$

 ———————-

Euro

Zysk w porównaniu do kapitału początkowego: 33,21%

Trafność: 51,72%

Max. zjazd krzywej kapitału: 19588$

 ———————

Frank szwajcarski

Zysk w porównaniu do kapitału początkowego: 19,18%

Trafność: 50,29%

Max. zjazd krzywej kapitału: 13325$

——————

Wyniki nie imponują wprawdzie ale nie chodziło w tym ćwiczeniu o bicie rekordów zyskowności, ale o udowodnienie istnienia swego rodzaju okazji inwestycyjnej, wynikającej z delikatnej nieefektywności rynkowej (ang. market bias). Oto bowiem siła rynku, reprezentowana przez szybszą średnią, nie jest jak mogłoby się wydawać nazbyt znacząca skoro kontrakty dają zarobić na pozycjach przeciwnych do logiki przebicia 2 średnich. Trafność nie jest większa niż okolice 50% co oznacza, że sesji spadkowych i wzrostowych jest mniej więcej tyle samo, ale te przeciwne do kierunku wskazywanego przez krótszą średnią miały w sumie większy zasięg od otwarcia do zamknięcia. To nieco antyintuicyjne – rynki, które uznajemy za poruszające się w trendach wykazują w takim razie w krótkich terminach dziwną słabość, której z powierzchni nie widać. I którą jak widać można wykorzystać uderzając przeciwnie do trendów.

Dlaczego? Jedno z wytłumaczeń jest takie, że sporo punktów z trendu ‘kradnie’ nam sam ruch przecinający dłuższą średnią przez krótszą. Podobny efekt cytowałem niedawno z Collinsa w przypadku wyczerpywania się impetu po dwóch sesjach w identycznym kierunku. Jeśli bowiem po dwóch dniach wzrostowych zajmujemy krótką pozycję na otwarciu trzeciego, albo po dwóch spadkowych długą na otwarciu kolejnej, i zamykamy wszystkie pozycje na koniec tej samej sesji to rynek daje nam również okazję zarobić. Np. S&P 500 testowany w okresie 2001-2005 na okoliczność otwarcia pozycji przeciwnej do 2 dni w tym samym kierunku pokazał:

Zysk w porównaniu do kapitału początkowego: 49,4%

Trafność: 51,76%

Max. zjazd krzywej kapitału: 53150 $

 ——————–

a NASDAQ:

Zysk w porównaniu do kapitału początkowego: 63,8%

Trafność: 49,23%

Max. zjazd krzywej kapitału: 36750 $

Test ze średnimi 2 i 5-cio dniowymi poszerzyłem nieco we własnych obliczeniach by przekonać się o ich żywotności w długim okresie i wyszły mi całkiem ciekawe wyniki, o których w kolejnym odcinku. Wniosek z powyższego wpisu: przewagi można szukać w najmniej spodziewanych momentach i miejscach.

—Kat—

[Głosów:0    Średnia:0/5]

17 Komentarzy

  1. Lucky

    Czyli jak rynek idzie przeciwko nam to kisimy strate? Czy czegos nie zrozumialem?

  2. Lucek

    “Czyli jak rynek idzie przeciwko nam to kisimy strate?”

    “Bohaterkami są więc dwie zwykłe, matematyczne średnie z cen zamknięcia 5 i 2 sesji.”

    Ukisi sie jak trzeba przy tych średnich, czy będzie niedokiszona?

  3. copy

    Prosta strategia oparta na zajmowaniu pozycji po przecieciu dwóch średnich daje zarobić na każdym rynku. Ile i jakim kosztem obsunięcia kapitału to inna sprawa. Poniżej, dla ciekawskich, testy optymalizacji kilku rodzajów średnich we wszystkich wzajemnych kombinacjach, na parze eurusd w okresie styczeń 2007 – kwiecień 2012 na popularnym interwale H4, wykonane przy pomocy Amibrokera. MTd to maksymalne jednorazowe obsunięcie; MTS – maksymalne obsunięcie systemu. Średnie to: s-simple moving; ex – expotential; dex- duble expotential; tex – triple expotential; wi – wilders; we – weight; tsf – time series forecast; ls – linear regresion. Wyniki w pipsach na jednym kontrakcie.

    Rodzaj Period Profit MTD MSD % Win

    s/s 1466;1421 10000 -1300 -1300 84
    s/ex 271;386 6900 -2200 -2200 77
    s/dex 386;871 12500 -2500 -2500 100
    s/tex 436;1451 11300 -1300 -1800 100
    s/wi 271;196 6900 -2200 -2200 79
    s/we 226;931 9400 90
    s/tsf 46;256 9100 -1300 -1700 55
    s;ls 46;256 8700 -1300 -1600 53

    ex/s 906;901 10500 -2200 -2200 100
    ex/ex 1;126 7000 -945 -2100 20
    ex/dex 346;851 9300 -2100 -2100 100
    ex/dex 396;926 9100 -2100 -2100 80
    ex/tex 36;996 9700 -2100 -2100 57
    ex/wi 111;56 7900 -2200 -2200 77
    ex/we 861;1321 10000 -2200 -2200 100
    ex/tsf 651;1496 7100 -2100 -2100 100
    ex/ls 651;1496 7400 -2100 -2100 100

    dex/s 311;131 6700 -2200 -2200 70
    dex/ex 266;126 7800 -2200 -2200 77
    dex/dex 551;1036 10000 -2200 -2200 85
    dex/tex 971;1496 9900 -2100 -2100 100
    dex/wi 266;61 7600 -2200 -2200 77
    dex/we 216;131 7200 -2200 -2200 53
    dex/tsf 161;251 9700 -1200 -2100 61
    dex/ls 156;246 9500 -1100 -1700 60

    tex/s 466;131 8800 -2200 -2200 69
    tex/ex 501;151 9100 -2200 -2200 100
    tex/dex 541;361 11200 -2200 -2200 85
    tex/tex 861;1491 9800 -2200 -2200 85
    texwi 471;66 9600 -2200 -2200 81
    tex/we 456;181 10000 -2200 -2200 88
    textsf 391;341 9800 -1400 -1800 63
    tex/ls 431;356 9600 -1400 -2200 61

    wi/s 1021;1071 10000 -2200 -2200 100
    wi/ex 851;1491 9600 -2100 -2100 100
    wi/dex 131;1456 9900 -2200 -2200 100
    wi/tex 181;1341 10000 -2700 -2700 100
    wi/wi 1231;846 6800 -1800 -1800 100
    wi/we 436;1331 10600 -2200 -2200 100
    wi/tsf 326;1496 6900 -2100 -2100 100
    wi/ls 326;1496 7000 -2100 -2100 100

    we/s 1366;911 10200 -2200 -2200 81
    we/ex 316;301 6700 -2200 -2200 72
    we/dex 721;1061 13100 -2700 -2700 100
    we/tex 91;1001 10600 -2100 -2100 71
    we/wi 316;151 6700 -2200 -2200 77
    we/we 341;906 8800 -2200 -2200 80
    we/tsf 76;241 7500 -1300 -1600 53
    we/ls 71;211 8000 -1300 -2300 52

    tsf/s 556;241 10400 -2200 -2200 81
    tsf/ex 546;261 8400 -2200 -2200 90
    tsf/dex 606;1020 11300 -2200 -2200 72
    tsf/tex 881;1136 11800 -2200 -2200 84
    tsf/wi 546;131 8400 -2200 -2200 90
    tsf/we 526;291 9600 -2200 -2200 84
    tsf/tsf 931;1226 9800 -2200 -2200 78
    tsf/ls 926;1221 10000 -2200 -2200 80

    ls/s 556;241 10300 -2200 -2200 81
    ls/ex 546;261 8000 -2200 -2200 81
    ls/des 606;1026 11200 -2200 -2200 72
    ls/tex 881;1171 11100 -2200 -2200 92
    ls/wi 551;131 7500 -2200 -2200 90
    ls/we 526;291 9500 -2200 -2200 84
    ls/tsf 906;1206 9500 -2200 -2200 90
    ls/ls 931;1226 9800 -2200 -2200 80

  4. Darkh

    s/s 1466;1421 10000 -1300 -1300 84
    1466 i 1421 – to okresy na H4 ? zdziebko magiczne ;]

    madra mysl (jak podejrzewam) niedawno w sieci podchwycilem, a brzmiala ona mniej wiecej: “optymalizuj zdarzenia a nie parametry”.. i chyba odrobine blizszy jej zrozumienia jestem 😀

  5. copy

    To wyniki optymalizacji – żadna magia, czysta statystyka. Tak działa optymalizacja, zawsze dopasuje odpowiednie wartosci do zadanego pytania. W tym wypadku testowałem zysk netto. W wwyzej wspomnianym okresie przeciecie dwoch prostych srednich odpowienio z 1466 swieczek i 1421 świeczek w interwale 4 godzinnym dało zarobić 🙂 10 000 pipsow. Przy czym trafnosc wynosila 84%. Przeciez mozesz to sprawdzić:)

  6. copy

    Dlaczego mielibyśmy ograniczać sie tylko do średnich z 2 i 5 sesjii? Są ciekawsze kombinacje. Weźmy dla przykładu interwał 13 godzinny 🙂 również na rynku eurusd i dwie dowolne średnie, np. Weight Moving Average i Duble expotential. Ten sam okres czyli lata 2007 -2012. Kapitał początkowy 100 000 $, gramy jednym kontraktem i tylko odwracamy pozycje po sygnale. Proste jak konstrukcja cepa. Wyniki? Proszę bardzo.
    Net profit – 14 000 pipsów
    Annual return – 18%
    Exposure – 6%
    Total profit – 100%
    Max. trade drawndawn – 11%
    CAR/MDD – 1.5
    RRR – 3.9
    Sharp – 7
    Ilośc transakcji – 8
    Aktualna pozycja Short od 12:59, 27.04.2011 🙂
    Parametry średnich: We – 2041; dex – 2211

    Słaba anomalia? Zaraz znajdę lepszą.

  7. copy

    Znalezienie ciekawych średnich po czasie to nie problem. Problem z systemami mechanicznymi, poza wymienionym kiedyś przez Pita, czyli koniecznośći uwzględnienia wszystkich transakcji ( a co za tym idzie pewności posiadanych danych, a wiemy, że każde dane mają luki), więc problem polega na sposobie optymalizacji parametrów (znalezienia odpowiednich interwałów, znalezienia odpowiednich przedziałów czasowych, w których przeprowadzane będą kolejne optymalizacje, ponieważ średnie w miarę upływu czasu muszą się zmieniać, lub znalezienia takich średnich, na które czas nie ma wpływu 🙂

  8. copy

    To może teraz nasz rodzimy rynek i kontrakty FW 20, bo akurat znalazłem bardzo ciekwą anomalię, która wygenerowała dopiero co sygnał. Może ktoś skorzysta, a co. Otóż i interwał 3 dniowy, jak lubię. Dwie przyzwoite średnie: Simple moving z 23 świeczek i Duble Expotential z 92 świeczek wygenerowały właśnie otwarcie pozycji długiej na kontraktach FW20 po cenie 2273. Cóż one zdziałały takie, aby sie nimi przejmować. Backtest na danych od 2006 roku pokazuje takie oto wyniki przy grze jednym kontraktem z kapitałem początkowym 10 000 PLN, żeby nie przesadzać:
    Net profit: +5427 punktów
    Exposure: 14.6%
    Annual return: 36%
    Total profit %: 100
    Max. syst.Drawndawn: – 475 pkt.
    CAR/MDD: 1.6
    RRR: 2.8
    Sharp: 1
    Rows: 10

    Słaba anomalia? Teraz tylko trzeba trzymać kciuki, żeby się nie wykrzaczyło. Bo co działało, może przestać też działać:)

  9. copy

    Popatrzyłem raz jeszcze na ten wynik i wydał mi sie całkiem niezły, jak na 10 wejśc na rynek średnio co 7 miesięcy przy obsuwie jedynie 475 pkt. To co prawda nie 20 pkt. dziennie, ale 900 rocznie z rączkami w kieszeniach. W 6 lat popiątnić wynik – nieźle. Pomyślałem, że dałoby się pewnie i podziesiątnić i zbudować na bazie tych średnich jakąs prostą strategię, żeby na boku trochę zaskurniaków odłożyć, inwestując jedynie 10 000 na poczatek. Tyle to każdy spryciarz przed żoną zachachmęci. No wiec, co by było, gdyby powiększać pozycję przy każdej kolejnej konwersji, a nie konsumować zarobione moniaki? Oto wyniki prostej strategii zarzadzania kapitałem – jesli mogę tak powiedzieć:). Gdyby otwierać kolejną pozycję wedle modelu 1 kontrakt na każde 10 000, to dziś gralibyśmy 28 kontraktami (ok. 275 000) i max drowndawn systemu wynosiłby 22%, roczny zwrot: 74%. A gdybyśmy zaszaleli i otwierali pozycję przyjmując, że kupujemy kontrakt za każde 5000 posiadanego kapitału , no to bejbi, dziś gralibyśmy 220 kontraktami (okrągły milionik) przy obsuwie jedynie 38%, roczny zwrot byłby na poziomie 118%.
    Bardzo przyzwoita anomalia. Niezłe zaskurniaki.
    Jest tylko jeden problem. O tym wszystkim wiemy dziś i z pewnością przez następne 6 lat te średnie nie będą tak działały i nie działały też w momencie zawierania pierwszej transakcji, czyli 1.08.2008.
    I jak z tego wybrnąć? O tym w następnych odcinkach, jesli nastąpią:)

  10. Lucek

    “Gdyby otwierać kolejną pozycję wedle modelu… A gdybyśmy zaszaleli… roczny zwrot byłby na poziomie 118%.”

    A gdyby babcia miała wąsy?…
    Analizowanie czegokolwiek z założeniem “gdyby”, kojarzy mi się nieodparcie z rozmowami w PZU, przy okazji zgłaszania szkody komunikacyjnej. “Gdyby ten przede mną nie zahamował tak ostro”…
    Albo przy okazji kumulacjii w Totka. “Gdyby tak trafić szóstkę, najlepiej samemu”…

    Nie jest ważne co byłoby, tylko ważne jest to, co jest.
    A jest nieciekawie. Bo nie ma zwrotu na poziomie 118% rocznie i nie ma, bejbi, 220 kontraktów. Jest tylko bajdurzenie przy kolejnym kuflu piwa.
    Chyba, że powstanie jakiś przebój jak ten ze “Skrzypka na dachu” – If I were a rich Man:)

  11. copy

    No nie wiem, czy warto w ogóle pisać coś gwoli wyjaśnienia. Albo się zna elementarna statystykę albo nie. Raczej już zadam ci pytanie. Jak inaczej opisać strategię, jeśli nie za pomocą historycznych statystyk? Nie ma czegos takiego jak teraz. Każde teraz jest juz tylko byłym teraz 🙂

  12. pit65

    @copy

    z całym szacunkiem dla Ciebie , ale co ty liczysz????

    1.Nawet bez kompa przy interwale 3 dniowym i takich dość długich średnich ich przecięcie zajmuje wieki.
    Proste przeciecie tych średnich nie ma prawa wygenerować 5000 pkt z FW20. Nie ma takiej opcji.
    Jak dojdziesz do 1000 może z hakiem to Max.
    Nie potrzeba AB by to zobaczyć wystarczy spojrzeć na wykres.

    2. Poza tym jak juz podpierasz sie statystyką to wypadałoby by ilość danych była istotna statystycznie /minimum 30/.
    Przy 10 trejdach z backtestu po prostu nie wypada tego uzasadniać statystką 🙂

    Nara

  13. copy

    Pit, zawstydzasz mnie, podejrzewająć , ze nie wiem co robię. Casem nie wiem, ale nie tym razem 🙂 Nie twierdze ze wyniki na fw20 maja wybitne znaczenie statystyczne, to wyniki jak inne – przeciecia dwoch zoptymalizowanych srednich, stad min. gdyby 🙂 Minimum 30 danych to takie samo czarowanie rzeczywistości jak 3% kapitału. Te liczby są z księżyca. NP. z założenia ad hoc, że istnieje niewielkie prawdopodobieństwo 33 źle obstawionych trejdów. Nie wierz w cuda, wierz w liczby.
    Same wyniki sa ok. A na oko to wiesz co.. . Tu są trejdy. Przecież masz Amibrokera mozesz sprawdzić zamiast po próżnicy pisać leda co 🙂

    Otwarcie Cena Zamknięcie Cena Zysk Skumulowany
    Short 2006-08-01 3128 2006-09-26 2960 166 166
    Long 2006-09-26 2960 2007-06-04 3746 784 950
    Short 2007-06-04 3746 2007-06-06 3678 66 1010
    Long 2007-06-06 3678 2007-09-21 3808 128 1144
    Short 2007-09-21 3808 2009-03-16 1509 2297 3441
    Long 2009-03-16 1509 2010-08-05 2558 1047 4488
    Short 2010-08-05 2558 2010-08-31 2429 127 4615
    Long 2010-08-31 2429 2011-03-23 2763 332 4947
    Short 2011-03-23 2763 2012-04-05 2273 488 5435
    Long 2012-04-05 2273 2012-04-13 2292 17 5452

  14. pit65

    @Copy

    Nie wiem jak liczysz, nie wiem jak to zapisałes , ale proste przeciecie typu stop-reverse Close podanych przez Ciebie średnich na pewno nie da ponad 5 tys pkt od 2006r.Wirtualne piwo za to 🙂
    Że 10 trejdów zgoda .
    Sprawdź ustawienia bo na 99,9 % bez AB i kompa jest coś nie tak.

  15. copy

    Zaniepokoiłeś mnie tym 99.9%, bo to poważnie wygląda. Sprawdziłem. Na 100% jest ok. Po prostu wrzuć sobie na wykres średnią simple 23 na nią duble expotential 92 i musisz to zobaczyć, nie potrzeba do tego żadnego kodu, a jak będziesz chciał to sobie nawet policzysz 🙂 Zresztą masz przeciez u góry pełną dokumentację trejdów. Co tu może być nie tak?

  16. pit65

    @copy

    Niech to zmusiłeś mnie do zakodowania tego:-)
    Rzeczywiście masz rację 🙂
    Sprawdziłem sobie to wiec na próbce 1998-2006.
    798 pkt / 1232 DD. 6 stratnych 6 zyskownych.Płasko przez lat 8.
    Dane wpasowane w wykres 2006-2012/te 100% trafności mówi samo za siebie/ i tak jak mówiłem próbka statystyczna zbyt mała, żeby sie podniecać.
    Pozdro

  17. Janek z wózka

    Taka dygresja do tego systemu co zawiera transakcje codziennie. Licząc 0,5% prowizji razem za otwarcie i zamknięcie, to przez 250 sesji w roku mamy w sumie koszt 125% prowizji.

    Oczywiście niektórzy płaca mniej, ale warto te 125% mieć na uwadze, szczególnie w systemach, które dają 14 % zysku rocznie bez prowizji.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *

Proszę podać wartość CAPTCHA: *