poniedziałek, 13 sierpnia 2012

Symulacja strategii podążania za trendem z neutralną pozycją początkową


Ostatnio poruszyłem temat znaczenia pozycji początkowej w symulacji systemu transakcyjnego. Omówione zostało podejście polegające na zajmowaniu stale określonej pozycji na rynku Forex. Jednak w opozycji do tego założenia została przedstawiona metoda, w której początkowa pozycja gracza jest neutralna, symbolizowana przez liczbę 0. Został zasygnalizowany poważny problem niemożności jednoznacznego określenia wejścia na pozycję (długą lub krótką) w przypadku gdy w danym interwale czasowym oba warunki determinujące wejście są spełnione. Jako rozwiązanie tego problemu proponuję wykorzystać metodę symulacji działania 2 wirtualnych inwestorów.

Metoda jest banalnie prosta. Nawiązując do idei 2 braci bliźniaków proponuję zasymulować efekt działania 2 graczy, z których każdy rozpoczyna działanie na rynku w przeciwnej pozycji do drugiego. Jeden rozpoczyna od pozycji długiej, a drugi od krótkiej. Oczywiście – jak proponowałem wcześniej – zyskami dzielą się po połowie. Zatem historia ich wspólnego rachunku będzie utworzona jako średnia arytmetyczna trajektorii generowanych przez każdego z osobna.

A teraz przejdźmy do konkretów – pora na arkusz ilustrujący proponowane przeze mnie podejście. Jak pisałem poprzednio, zakładka quotes w arkuszu zawiera dane podstawowe: w kolumnach od B do J znajdują się daty początków interwałów czasowych oraz notowania OHLC w wersjach BID i ASK. Przy okazji rozszerzenia symulacji proponuję też modyfikację arkusza o automatyczne zadawanie parametrów odległości poziomu odwrócenia pozycji od kursu początkowego.

W komórkach A12 i A14 odpowiednio zostają określone: minimalna wartość progu odwrócenia pozycji nazywana initThresh oraz krok threshStep – wartość o którą będzie ten poziom zwiększany w kolejnych kolumnach obrazujących wersje strategii. Poniżej przedstawiam fragment arkusza obrazujący tę ideę.


 
A teraz część właściwa: symulacja działania strategii uśredniającej start z pozycji długiej i krótkiej. Na te potrzeby utworzyłem 2 nowe zakładki: FollL i FollS. Ich nazwy są intuicyjnie zrozumiałe – są one kopiami zakładki Foll (przedstawionej poprzednio) w wersjach, gdy pozycja początkowa jest określona za pomocą wartości odpowiednio +1 i -1. A obecna zakładka Foll zawiera średnie arytmetyczne wartości pozycji zajmowanych przez gracza w obu wersjach. Widok tej zakładki wraz z przykładową formułą definiującą uśrednienie pozycji obu wirtualnych inwestorów przedstawiam poniżej:


 
Natomiast cały arkusz dostępny jest pod tym adresem.

Sens zastosowania omówionej powyżej metody będzie jaśniejszy, kiedy dotrzemy do formuł definiujących rozliczenia pozycji dla różnych wartości parametrów i obu początkowych pozycji. Zostanie to przedstawione w jednym z kolejnych odcinków.

2 komentarze:

  1. "Bliźniacy" zrównają się przy pierwszym większym wychyleniu i od tego momentu wiadomo, po której stronie rynku pozostać, co jest pożądaną właściwością, na wypadek gdybyśmy się pomylili. Z punktu widzenia realnego grania i niełamania zasad praktyczniejsze mogłoby być inne podejście - doczytanie N starszych interwałów z historii i wyznaczenie na nich pozycji, przy czym nie brane byłyby one dalej do symulacji.

    OdpowiedzUsuń
    Odpowiedzi
    1. Pomysł użycia "rozbiegowej" serii interwałów jest dobry i też stosuję go alternatywnie w swoich symulacjach. Tutaj zdecydowałem przedstawić podejście neutralne aby była jeszcze jedna okazja do przypomnienia koncepcji VI. Poza tym ma to jeszcze jedną ciekawą konsekwencję z punktu widzenia wpływu parametru na trajektorie graczy. Podejmę temat w następnym wpisie.

      Usuń