czwartek, 9 sierpnia 2012

Znaczenie pozycji początkowej w podążaniu za trendem


W poprzedniej części rozpocząłem omawianie konstrukcji arkusza symulującego efekty działania prostej strategii transakcyjnej. Omówiona została kluczowa formuła, definiująca zajmowane przez gracza pozycje. Jak wspominałem, jest ona zdefiniowana w postaci iteracyjnej. Obecnie chciałbym krótko skupić uwagę na znaczeniu wartości początkowej pozycji na rynku.

W pierwszej wersji arkusza jej wartość została arbitralnie ustalona jako +1, czyli przyjęto pozycję długą. Dlaczego by jednak nie miała mieć wartości przeciwnej? Pamiętajmy że na Forex, w przeciwieństwie do rynków akcji czy obligacji, żadna z tych wartości nie jest w jakikolwiek sposób naturalnie wyróżniona. Wzrost kursu pary walutowej może być równie dobry (lub zły) jak jego spadek – to, co nas interesuje to trendy, ich siła i czas trwania.

Oczywiście nic nie stoi na przeszkodzie, aby wykonać obliczenia zmieniając w odpowiednim wierszu liczbę +1 na -1. Pytanie tylko brzmi: jaka będzie wartość poznawcza tak przeprowadzonych symulacji? Każdej z osobna – moim zdaniem niewielka. Warunki początkowe powinny być neutralne. Ten dość naturalny postulat można byłoby zrealizować wprowadzając możliwość przyjmowania w odpowiednich kolumnach wartości 0. Wprawdzie kłóci się to nieco z założeniem o stałej obecności gracza na rynku, jednak nie na tym polega największy problem.

Ostatecznie pozycja neutralna byłaby utrzymywana tylko przez kilka początkowych interwałów. Później, po zajęciu pozycji właściwej – długiej lub krótkiej – strategia już przebiegałaby według odpowiedniego, przedstawianego wcześniej algorytmu. Oczywiście przeprowadzenie symulacji działania takiego systemu wymagałoby modyfikacji formuły na odwrócenia pozycji. Jednak, jak zwykle, diabeł tkwi w szczegółach. Problem pojawia się z jednoznacznym określeniem wejścia na pozycję dla niewielkich wartości parametru odległości od kursu początkowego.

Spróbujmy prześledzić tę sytuację dla drugiego interwału z przykładowego zbioru danych czyli tygodnia rozpoczynającego się 20 maja 2012. Przypomnijmy kursy OHLC w dwu wersjach:

BID: 1.5817,1.5848,1.5630,1.5659,
ASK: 1.5819,1.5850,1.5632,1.5661,

Załóżmy, że parametr odległości został ustalony na 25, co po uwzględnieniu kroku notowań oznacza, że poziomy wejścia na pozycje znajdują się o 0.0025 poniżej (dla wejścia poprzez SellStop) oraz powyżej (odpowiednio dla BuyStop) kursu otwarcia. A teraz policzmy jakie odległości pokonywał kurs w górę oraz w dół:

askHigh – askOpen = 1.5850 – 1.5819 = 0.0031
bidOpen – bidLow = 1.5817 – 1.5630 = 0.0187

Oczywiście ta druga wartość jest zdecydowanie wyższa. Przy tym różnica Close – Open jest liczbą ujemną, co oznacza że zajęcie pozycji krótkiej blisko kursu początkowego przynosi zysk i jest zdecydowanie korzystniejsze niż zajęcie pozycji długiej. Nie na tym jednak polega istota tego przykładu.

To co jest ważne, to fakt że obie wyliczone powyżej odległości przekraczają próg 0.0025. Praktyczne konsekwencje tego faktu objawiają się tym, że nie jest możliwe określenie, którą właściwie pozycję zajął gracz. Można byłoby to zdeterminować znając chronologię zdarzeń, czyli analizując poszczególne wartości kursów na przestrzeni tego interwału tygodniowego. Jednak jest to sprzeczne z założeniami, wedle których cała informacja niezbędna do wykonania symulacji jest zawarta w wartościach kursów OHLC na danym interwale. Zarazem oczekujemy też, że zachowanie strategii jest w pełni determinowane poprzez algorytm i parametry liczbowe. Dobrze przeprowadzany eksperyment liczbowy nie dopuszcza aby wyniki były nieokreślone bądź przyjmowane uznaniowo.

Jak rozwiązać ten problem? W następnym odcinku zamieszczę rozszerzenie arkusza o mechanizm pozwalający wyznaczyć te wyniki w obiektywny sposób. Po raz kolejny zaproponuję zastosowanie koncepcji wirtualnych inwestorów, którą niegdyś przedstawiałem w tekstach o bliźniakach na rynkuForex.

5 komentarzy:

  1. Trzymanie się reguł stałej obecności na rynku (i tylko odwracania pozycji) oraz podejmowania decyzji tylko na początku interwału ogranicza możliwe ulepszenia bazowego algorytmu tylko do dynamicznego wyznaczania wartości parametru t, pomijając oczywiście kwestie money management.

    OdpowiedzUsuń
    Odpowiedzi
    1. Oczywiście, że ogranicza. Warto zauważyć, że stanowi to jednocześnie wadę i zaletę podejścia. Wynika to z tego, że rozbudowane reguły zwykle zawierają też wiele parametrów, które jakoś trzeba dobrać. Albo arbitralnie czyli potocznie mówiąc "z palca", albo poprzez optymalizację empiryczną. Jednak w tym drugim przypadku zachodzi niebezpieczeństwo nadmiernego dopasowania modelu do danych historycznych, czyli tzw. "overfitting", co może doprowadzić do rewelacyjnych wyników na zbiorze uczącym, ale kiepskich na zbiorze testowym czy w realnym działaniu. Dlatego też na początek chcę skupiać uwagę na badaniu własności prostej metody z tylko jednym parametrem - na rozszerzenia przyjdzie czas później.

      A co do MM, to tutaj też droga nie jest zamknięta. Wystarczy prosta modyfikacja reguł odwracania, np. zmienna wielkość pozycji przy każdym odwróceniu, dobierana na podstawie liczbowej oceny dotychczasowej skuteczności. Innymi słowy, przy zarządzaniu antymartyngałowym (osobiście innych nie dopuszczam) przy odpowiednio rosnącym kapitale, mając np. 20 L przy najbliższym odwróceniu otwieram o 1 pozycję więcej czyli przechodzę na 21 S. I tutaj uwidacznia się zaleta kont mikro, bo pozwalają na efektywną podzielność kapitału.

      Dzięki za uwagę - cenię wszystkie, zwłaszcza krytyczne :)
      Tematy, które poruszyłeś, rozwinę w oddzielnych odcinkach, być może wielu.

      Usuń
  2. Co to znaczy "zarządzanie antymartyngałowe"? Bo nie za bardzo skumałem :/

    OdpowiedzUsuń
    Odpowiedzi
    1. To znaczy takie, kiedy powiększanie pozycji następuje w miarę przyrostu zysków nad stratami. Przeciwieństwo do martyngału, kiedy to nawet po serii pozycji ze stratą otwieramy kolejną, większą w nadziei że zysk z niej zrekompensuje wszystkie poprzednie straty.

      Usuń
    2. później się zreflektowałem i domyśliłem się tego :P - ale dzięki wielkie za wyjaśnienie! :)
      pozdrawiam

      Usuń