poniedziałek, 24 września 2012

Rozliczenia pozycji w strategii podążania za trendem – implementacja formuł


Zakończywszy drobiazgowe i – co tu dużo ukrywać – nieco rozwlekłe rozważania na temat statystycznych własności pozycji zajmowanych przez graczy stosujących rozmaite strategie, pora przejść do zagadnień właściwych. A są nimi rzecz jasna symulacje zysków i strat osiąganych przez graczy stosujących omawiane od jakiegoś czasu podstawowe strategie indeksowane pojedynczym parametrem odwrócenia pozycji. Zatem przechodzimy do konstrukcji arkusza, który takie symulacje umożliwi. Zaczniemy, jak poprzednio, od wariantu strategii podążającej za trendem.

Arkusz będzie oczywiście stanowił rozszerzenie wcześniej opracowanych wersji, z tym zastrzeżeniem, że postanowiłem usunąć z niego część dotyczącą wizualizacji wspomnianych na początku korelacji, jako leżących poza głównym nurtem badań. Sprzyjać to też będzie przejrzystości arkusza. Natomiast i tak konieczne jest rozszerzenie go o sporą ilość zakładek. Przypomnijmy, że symulacje prowadzimy przy założeniu neutralnej pozycji początkowej wykorzystując koncepcję wirtualnych inwestorów, zatem każda z trajektorii będzie realizowana w dwóch wariantach, które następnie będą scalane tworząc właściwą historię kapitału gracza. Łącznie daje to 6 nowych zakładek, a uwzględniając ich połączenie w postaci historii spółki braci-bliźniaków nawet 7.


Przejdźmy zatem do konkretów: zakładka symulująca rozliczenia gracza podążającego za trendem i rozpoczynającego od pozycji długiej uzyskała nazwę FollGainL, która wydaje się być odpowiednia (ang. gain – zysk). Jej konstrukcja jest analogiczna do tej, która wyznaczała znaki pozycji z tą różnicą, że zawiera już nie liczby +/-1, tylko zyski elementarne z zajmowanych pozycji, wyrażane w minimalnej jednostce notowań, czyli 0.0001. Formuły będą oczywiście opierać się o wyprowadzone tutaj wzory.

Konstrukcję formuły omówię na przykładzie komórki zawierające dane dla pierwszego interwału czasowego (pomijając interwał inicjujący) oraz początkową wartość parametru odwrócenia, czyli komórki B3. Zarazem też proponuję też zastosować prostą sztuczkę implementacyjną, która powinna zdecydowanie ułatwić nam realizację obliczeń. Opiera się ona na spostrzeżeniu, że jakkolwiek wzory na rozliczenia pozycji wyglądają dość skomplikowanie, to warunki występujące w nich zostały już przez nas raz zaimplementowane w zakładkach symulujących odwrócenia pozycji. Wystarczy zatem sięgnąć do nich i wykonać odpowiednie porównania. Dodatkowo warunki zestawiające wszystkie możliwe układy pozycji w dwu następujących po sobie interwałach są wzajemnie wykluczające. Innymi słowy, dla danego układu kursów OHLC zachodzić może być spełniony tylko jeden z nich. Dzięki temu można zapisać je w postaci oddzielnych wyrażeń połączonych znakiem dodawania:

IF(AND($FollL.B2=1;$FollL.B3=1);
$quotes.$F3-$quotes.$F2;0)+
IF(AND($FollL.B2=1;$FollL.B3=-1);
2*($quotes.$C3-$quotes.$A$4*B$1)-($quotes.$F2+$quotes.$J3);0)+
IF(AND($FollL.B2=-1;$FollL.B3=-1);
$quotes.$J2-$quotes.$J3;0)+
IF(AND($FollL.B2=-1;$FollL.B3=1);
($quotes.$J2+$quotes.$F3)-2*($quotes.$G3+$quotes.$A$4*B$1);0)

Poniżej prezentuję fragment nowo powstającej zakładki w roboczej wersji arkusza.


 
Ponieważ implementacja całości algorytmu stanowi zadanie dość złożone, będzie ono kontynuowane w następnym odcinku.

Brak komentarzy:

Prześlij komentarz