poniedziałek, 3 września 2012

Wzór na maksymalne obsunięcie z uwzględnieniem zmian wewnątrz interwału czasowego

Dzisiejszy wpis rozpocznę od wytłumaczenia pomyłki czy może nieścisłości z mojej strony we wczorajszych rozważaniach na temat problemu zerowego obsunięcia kapitału przy doborze parametrów systemu. Omawiane tam propozycje rozwiązań mają pewne wady, ujawniające się przy specyficznym układzie notowań w rekordach zbioru uczącego. Jednak z treści mojego wpisu wynikało jakoby zastosowanie neutralnej pozycji początkowej pozwalało tych problemów uniknąć, co niestety nie jest prawdą. Krótka wymiana zdań okazała się pomocna w wyjaśnieniu problemu i zainspirowała mnie do jeszcze bardziej szczegółowego przemyślenia i rzetelnego rozwiązania tego zagadnienia. Czemu poświęcam dzisiejszy tekst.

Jak się wydaje, i na co zwrócił uwagę czytelnik, sedno problemu leży w tym, że uwzględnianie do oceny obsunięć wyłącznie kursów zamknięcia nie dostarcza wystarczającej informacji o możliwych odchyleniach w niekorzystną dla gracza stronę, jakie miały miejsce wewnątrz tych interwałów. Ujmując to obrazowo: nawet gdy gracz utrzymuje stale pozycję długą, a kolejne kursy Close tworzą ciąg rosnący, to informacja o kursach Low jest niezbędna do oceny, czy pomiędzy kolejnymi zamknięciami interwałów zniesienia w dół nie były na tyle wielkie aby wygenerować „margin call”. Symetryczne zagadnienie istnieje oczywiście dla przypadku pozycji krótkiej i zniesień w górę.

Co więcej, sytuacja się komplikuje kiedy wewnątrz interwału następuje odwrócenie pozycji. Należy zauważyć, że informacja o kursach High i Low nie oddaje ich chronologii. Zatem w przypadku np. sytuacji odwrócenia pozycji z długiej na krótką, nie wiemy „a priori” czy np. niebezpiecznie niski kurs Low miał miejsce przed odwróceniem, czy już po – w tym drugim przypadku właściwie nie jest niebezpieczny.

Ponieważ naszym celem jest jak najszybsze i sprawne ustalenie sensownego sposobu wyznaczania rzeczonych obsunięć, proponuję do sprawy podejść pragmatycznie i w myśl zasady minimax przyjąć najbardziej niekorzystną dla gracza sytuację. A zaletą tego heurystycznego podejścia jest to, że powinno definitywnie uwolnić nas od problemu zerowego MDD.

Dla ustalenia uwagi i uproszczenia zapisu przyjmijmy, że wejściowy zbiór danych to zyski w poszczególnych interwałach i odpowiednie pozycje na ich zakończeniach:
Dodatkowo mamy rekordy OHLC numerowane w analogiczny sposób. Istotnie nowym elementem jest wielkość, która wyznacza maksymalne zniesienie w niekorzystną stronę dla gracza w obrębie n-tego interwału czasowego:


Pierwsze dwa przypadki są bardzo proste i dotyczą sytuacji, kiedy pozycja pozostaje niezmieniona zatem zniesienia dotyczą zawsze jednego z ekstremów, zgodnie z tym, co napisałem kilka akapitów wyżej. Operacja maksimum została wprowadzona ze względu na to, że pozycja jest rozliczana względem poprzedniego kursu Close, a ten teoretycznie może leżeć poza przedziałem wyznaczanym przez bieżące Low i High. Sytuacja taka może mieć miejsce zwłaszcza w przypadku kontraktów opartych na indeksy akcyjne przy znacznych lukach dobowych. Ostatni przypadek natomiast dotyczy odwrócenia pozycji i tutaj właśnie przyjmujemy większe z dwóch hipotetycznych zniesień. Warto zauważyć, że zawsze co najmniej jedno z nich będzie liczbą nieujemną.

A dalej, aby przenieść to na wynik całościowy, proponuję kolejną wielkość, która mierzy realne obsunięcie do interwału t włącznie:


Jak widać, do interwału poprzedzającego bieżący włącznie jest liczona zwykła różnica pomiędzy maksimum skumulowanego zysku a jego chwilową wartością. Dopiero w kolejnym czyli bieżącym jest uwzględniane wewnątrzinterwałowe zniesienie. Jest tak, ponieważ wcześniejsze fluktuacje pomiędzy kursami Low i High, o ile nie doprowadziły do MC, mogą „pójść w zapomnienie” a punktem odniesienia jest skumulowany kapitał na zakończeniu przedostatniego interwału. Ostatnim elementem obliczeń jest formuła na maksymalne obsunięcie, już w prosty sposób wyrażana przez poprzednią wielkość:

To też powinno wyjaśniać, dlaczego wyżej pisałem o „zapomnieniu” w cudzysłowie: lokalne zniesienia, jeśli powiększają chwilowe wartości obsunięcia, znajdą też odwzorowanie w ich maksimum.

Mamy zatem propozycję zmodyfikowanej metody liczenia MDD, która – o ile formuły zostały poprawnie zapisane – powinna mieć tę własność, że będzie zawsze zwracać wartości dodatnie, niezerowe. Jedyną hipotetyczną sytuacją, w której mogłoby się pojawić MDD=0 jest występowanie ciągów rekordów, w których Open=High=Low=Close i to równe tej samej liczbie dla kolejnych interwałów. A to jest sytuacja niewiarygodna i łatwa do wykrywania na poziomie samego sprawdzania integralności zbioru danych wejściowych do badań empirycznych.

Zatem po krótkim czasie, niezbędnym na przetrawienie i implementację zaproponowanego rozwiązania, powrócimy do głównego nurtu, czyli dalszych prac nad optymalizacją systemu o hierarchicznej konstrukcji.

Brak komentarzy:

Prześlij komentarz