czwartek, 1 listopada 2012

Rozliczenia pozycji w strategii antytrendowej – implementacja formuł


Po zakończonych niedawno dygresjach na temat struktur korelacji i autokorelacji pora powrócić do głównego wątku naszych rozważań, czyli rozliczeń strategii w postaci wpływów i obciążeń wynikających z utrzymywania i/lub odwracania pozycji. Do implementacji pozostały wzory definiujące zyski ze strategii antytrendowej. Zatem teraz omówię formułę, którą umieścimy w odpowiedniej zakładce roboczego arkusza.

Analogicznie jak w przypadku rozliczeń strategii podążającej za trendem, nowe zakładki będą mieć nazwy charakteryzujące istotę strategii. W przypadku podejścia kontrariańskiego naturalny jest przedrostek Cont. A piszę o zakładkach w liczbie mnogiej, ponieważ pamiętając o założeniu neutralnej pozycji początkowej i wykorzystując koncepcję wirtualnych inwestorów, 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 antytrendowego.


Przejdźmy zatem do zakładki odpowiadającej sytuacji gracza antytrendowego i rozpoczynającego od pozycji długiej, która to zakładka uzyskała nazwę ContGainL. Jej formuły będą oczywiście opierać się o wzory wyprowadzone tutaj . Zarazem konstrukcja jest oparta na prostej sztuczce implementacyjnej, która zdecydowanie ułatwia realizację obliczeń. Sztuczka została po raz pierwszy użyta przy okazji implementacji  analogicznych formuł dla gracza podążającego.

Przypomnę krótko, że opiera się ona na spostrzeżeniu, że warunki występujące we wzorach na rozliczenia pozycji 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. A ponieważ warunki zestawiające wszystkie możliwe układy pozycji w dwu następujących po sobie interwałach są wzajemnie wykluczające, można zapisać je w postaci oddzielnych wyrażeń połączonych znakiem dodawania:

IF(AND($ContL.B2=1;$ContL.B3=1);
$quotes.$F3-$quotes.$F2;0)+
IF(AND($ContL.B2=1;$ContL.B3=-1);
2*($quotes.$C3-$quotes.$A$4*B$1)-($quotes.$F2+$quotes.$J3);0)+
IF(AND($ContL.B2=-1;$ContL.B3=-1);
$quotes.$J2-$quotes.$J3;0)+
IF(AND($ContL.B2=-1;$ContL.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.


 
Implementacja całości algorytmu, uwzględniając scalanie trajektorii startujących od pozycji długiej i krótkiej, będzie kontynuowana w następnym odcinku.

Brak komentarzy:

Publikowanie komentarza