Wykresy kontynuacyjne kontraktów

Właściwie nie powinienem być zdziwiony słysząc, że jeden z serwisów internetowych, oferujący płatny dostęp do danych historycznych z giełd całego świata, nie koryguje w żaden sposób wykresów kontynuacyjnych kontraktów futures. Znacznie mocniej zaskoczyła mnie wiadomość, że twórcy serwisu nie wiedzą w jakim celu i w jaki sposób takie korekty się przeprowadza.

Ale w osłupienie wprawiła mnie informacja, że korzystający z owych danych używają ich w tej formie całkiem bezkrytycznie i nikt nigdy nie zwrócił na to uwagi. Ba, widziałem nawet niedawno dość sążniste testy mechanicznych strategii oparte właśnie na tych, było nie było, upośledzonych seriach.

Temat prawidłowej kontynuacji danych na wykresach kontraktów terminowych nie jest przecież białą plamą, w zasadzie w literaturze branżowej pojawia się na poziomie podstawowym czy średnio zaawansowanym. Rozumiem, że nie ma obowiązku jej czytać. Ale przecież istnieje jeszcze coś co nazywa się logiką i zdrowym rozsądkiem, od których zwolnienia być nie powinno.

BOŚ w swoich zasobach oferuje dwa rodzaje danych kontynuacyjnych (futures walutowe i indeksowe):

  • wykres niekorygowany gdzie kolejne serie są dopisywane do ciągu bez żadnych dodatkowych ingerencji i takim plikiem jest np. ten pod nazwą FW20WS
  • wykres korygowany np. FW20 gdzie przy dodawaniu nowej serii wszystkie wcześniejsze ceny koryguje się o wielkość luki pomiędzy wygasającą serią a nową (wg zasad opisanych przez J. D. Schwagera w książce ‘AT rynków terminowych’ )

Korekta dokonywana punktowo, czyli ta najpopularniejsza, jest bardzo prosta. Przykład:

cena zamknięcia starej serii na ostatnim notowaniu = 2950

cena zamknięcia nowej serii na tej samej sesji           = 2970

różnica                                                                         =    20

Żeby zbudować wykres kontynuacyjny dodajemy do WSZYSTKICH historycznych cen O, H, C, L  20 punktów tak, żeby cena zamknięcia starej serii wynosiła 2970. Gdyby różnica między seriami wyniosła minus 20 pkt wówczas od cen historycznych należałoby odjąć owe 20. I tak co kwartał przy każdym rolowaniu. Czasem może się zdarzyć, szczególnie w wypadku futures towarowych, że po serii korekt ujemnych luk, notowania sprzed kilku lat wypadają poniżej zera! To nie wygląda estetycznie i realnie ale jak przekonamy się dalej- jest niezbędne.

Jak wspominałem we wcześniejszym wpisie – w symulacjach gdzie używa się działań mnożenia i dzielenia kursów, należałoby użyć wykresów korygowanych tzw. RAD (Ratio Adjusted Data) gdzie korektę wykonuje się odpowiednio dzieląc lub mnożąc. W powyższym przykładzie zamknięcie nowej serii jest większe o 0,68 % ( 2970 dzielone na 2950) więc  WSZYSTKIE ceny historyczne mnożymy przez 1+0,0068=1,0068 aby na zamknięcie starej serii otrzymać 2970.

Istnieją jeszcze inne, bardziej skomplikowane sposoby typu korekta ważona, ale dla celów praktycznych nie są używane poza instytucjami. Natomiast ważny jest dzień dokonania korekty i choć nie ma tu ścisłych zasad to należy jedną z nich przyjąć i niezmiennie używać. Ja koryguję wykres po tej sesji, gdzie obrót i liczba otwartych pozycji na nowej serii przekroczy po raz pierwszy te wartości z serii wygasającej. Ale równie dobrze można to zrobić w ostatnim dniu wygasania albo np. w 9 czy 6 dniu przed wygaśnięciem (tak robią światowi dostawcy plików z notowaniami)

Najważniejszą kwestią w tych rozważaniach pozostaje ta: o co cały ten hałas? Ano o bardzo istotną sprawę – wiarygodność testów.

Ciąg cen niekorygowany ma znaczenie, choć też dość ograniczone, tylko dla podstawowej analizy technicznej ponieważ wszystkie dane z przeszłości są rzeczywiste i odpowiadają realnym notowaniom. Zakrzywieniu niewielkiemu ulegają co najwyżej formacje pojawiające się na styku serii. Ale nie jest błędem posługiwanie się w tym wypadku wykresem kontynuacyjnym np. FW20WS z archiwum bossa.pl. Należy jedynie zwrócić uwagę, jakim rodzajem wykresu posługuje się czytany przez nas analityk lub inwestor, z którym prowadzimy dyskusję. Często zdarzają się bowiem spore różnice w analizowanych poziomach wsparcie/opór czy linia trendu przecina się w innym miejscu. Proszę zwrócić uwagę na przykład poniżej. O ten sam optycznie poziom oporu można by się spierać co do jego wartości jeśli 2 inwestorów używa 2 różnych wykresów kontynuacyjnych.

wyk11.jpg

Prawdziwym wyzwaniem jest jednak sytuacja, o której wspominam we wstępie. Mógłbym zrobić bardzo długą listę błędów, jakie pojawiają się przy backtestach systemów transakcyjnych jeśli są one przeprowadzane na danych NIE korygowanych. Ich wynik staje się tym samym nierealny, nieprawdziwy statystycznie i może doprowadzić do ruiny rachunku. Z całej litanii zarzutów, jakie mógłbym poczynić w tym wypadku i jakie da się wywnioskować używając logiki, wybrałem jeden ale bardzo istotny, do którego najczęściej dochodzi.

Spójrzmy jeszcze raz na wykresy poniżej (z lewej skorygowany, po prawej – nie). Zaznaczona jest na nich luka, jaka się utworzyła przy rolowaniu serii w grudniu 2007.  Na wykresie bez korekty (z prawej) NIE jest fizycznie możliwe uzyskanie 44 pkt zysku jeśli przed luką będziemy na długiej pozycji. A to z tego powodu, że stara seria wygasa na tej sesji przed samą luką i nasze pozycje są na jej zamknięcie przymusowo domykane. Jeśli chcemy je odnowić na NOWO wchodzącej serii to:

– albo dokonujemy tego na pierwszej sesji już PO luce

– albo jeszcze przed luką na nowej serii tyle, że wówczas luka ma wielkość jedynie 5 pkt jak na wykresie z lewej.

wyk2.jpg

Zapewniam, że widziałem fantastyczne wyniki testów na serii niekorygowanej, gdzie niemal całość zysków wyparowywała po puszczeniu na REALNEJ (w sensie proporcji a nie poziomów bezwzględnych) serii zmodyfikowanej.

–*  Kathay *–

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

10 Komentarzy

  1. Al Gebroid

    A ja widziałem przepiękną analizę systemu transakcyjnego który konstruuje i analizuje "optymalny" portfel akcji, oparty o dane historyczne, ale bez uwzględnienia takich drobiazgów jak split akcji biotonu czy operacji na akcjach BPH/PKOSA , o prawach poboru nie wspominając 🙂

  2. DAPI

    Al Gebroid:
    Co nawet po skorygowaniu {o prawa poboru} w tych wersjach niewiele Ci daje. Luki jakie sa tworzone po odjęciu praw stanowią ten sam problem jezeli rozmawiamy o OHCL. W przypadku można napisać "większości" standardowych wskaźników-pomaga.
    A o testach systemów sie będę się wypowiadał bo są tutaj lepsi specjalisci ale jak się "opracowuje" system to wymaga miedzy innymi prześledzenia prawie każdej pozycji…w szczególości najabrdziej zyskownych i stratnych.
    W przypadku kontraktów sie nie wypowiadam ale w przypadku akcji stworzenie prostego filtra rozwiązuje większość problemów.

    ps. osobiscie za jednie sluszne uznaję wykresy skorygowane ale z nieskorygowanymi też można sobie poradzić. Wiarygodność testów jest niestety związana z programującym a nie z komputerem -:))

  3. Olek

    A co jeżeli, mój system opiera się tylko o ATR, czy wtedy też należy korzystać z danych korygowanych? Chyba wystarczą zwykłe i nawet chyba są lepsze bo poziomy wtedy są realne.

  4. kathay

    Jeśli już na wejściu wrzucamy do programu testującego śmietnik to wypluwa nam śmietnik nie mniejszy (garbage in – garbage out). Szkoda więc nawet czasu na analizę tego co wyszło.

    @Olek
    O ile używasz ATR z wielu okresów to po uśrednieniu w zasadzie nie ma znaczenia jedna luka. Jeśli używasz tylko z 2 okresów – różnica będzie dość istotna, proporcjonalnie do wielkości luki.
    Tylko że nie chodzi tu o sam ATR. W punktach rolowania serii testy są niewiarygodne-jeśli jak w powyższym przykładzie będziesz na pozycji długiej to test doda ci do wyniku 44 pkt do transakcji zamiast 5 pkt bez względu jaki ATR zastosujesz. Na FW20 te luki może nie są aż tak imponujące ale na danych do kontraktów towarowych jest tego sporo.

  5. DAPI

    kathay

    Jeśli już na wejściu wrzucamy do programu testującego śmietnik to wypluwa nam śmietnik nie mniejszy (garbage in – garbage out). Szkoda więc nawet czasu na analizę tego co wyszło.
    ———————————————–
    Przy takim podejściu testowanie systemów na rynku akcji w którym PP są na porządku dziennym jest bezcelowe…
    Mamy luki na wykresach skorygowanych i nieskorygowanych.
    A jednak sie to robi i da się to robić tylko trzeba mieć to na uwadze.

  6. kathay

    jak widać z aktualnej ankiety:
    http://bossa.pl/sonda/wyniki2.html?id=121
    jest więcej osób, którym przeszkadzają te luki na PP 🙂

  7. DAPI

    Ciekawe czy testowali systemy na wykresach skorygowanych…
    Problem jest taki sam lub podobny bo większość spółek po odjęciu PP luki nie powinno mieć a ma np. 100% czy 50% na plus zamiast na minus {jak przy nieskorygowanych}
    Niestety jest śmietnik dużo wiekszy niż na walutach np. choć tam też są "jazdy" przy danych.

    Ale…jakby było łatwo to nie byłoby co robić…i wszyscy byliby bogaci 🙂

  8. gzalewski

    indywidualne testy moga tez uwzgledniac “zamiane” serii juz otwartej nawet kilka dni przed wygasnieciem. Mozna to uzaleznic od rosnacego wolumenu na dalszej serii, mozna (na naszym rynku czasem bylo warto) od roznicy miedzy obiema seriami – czyli jesli byla na tyle mala, ze eliminowalismy ryzyko kosztu preskoczenia z jednaj na druga. Ale to tez tylko w zaleznosci od tago jaka wielkosc pozycji posiadamy

  9. copy

    ja znalazlem wyjscie z tego kola:) – kazdy test robie recznie na danych z 8 lat. Kiedy probowalem robic to z automatem, to efekt byl tego tak zalosny ze zaprzestalem w ogole uzywania tego narzedzia.

  10. foxcatalyst

    Pożyteczne linki:

    http://www.traders2traders.com/papers/backadjusting_futures_contracts.htm

    http://www.premiumdata.net/support/futurescontinuous.php

Dodaj komentarz

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

Proszę podać wartość CAPTCHA: *