poniedziałek, 4 lutego 2013

Kapitał zsuwa się po nitce trajektorii


Zjawisko obsunięcia kapitału i jego ilościowej oceny dobrze jest śledzić obserwując jego przebieg dla pojedynczej realizacji wybranej strategii. Oczywiście pamiętając, że stanowi ona jedną z realizacji wielu możliwych wariantów, niczym pojedyncza nić w płachcie tkaniny.

Natomiast implementację mierników zysku i ryzyka warto, przynajmniej na początek, zrealizować w sposób ułatwiający ich wizualizację. Bezpośrednio obserwować proces ich obliczeń. Arkusz kalkulacyjny jest to tego odpowiednim narzędziem, w miarę rosnącej komplikacji wzorów i algorytmów być może trzeba będzie poszukać dla nich mocniejszych środków obliczeniowych. Obecnie proponuję rozpocząć konstrukcję przykładowego arkusza.


Punktem startowym są sekwencje skumulowanych zysków znajdujące się w zakładce cGain. Jego kolumny gromadzą pojedyncze trajektorie odpowiadają realizacjom strategii indeksowanych parametrem. Istotny jest tutaj fakt, że nie nadajemy tutaj żadnej interpretacji tym parametrom i rodzinom strategii. Mogą one nawet same być strategiami złożonymi. Muszą spełniać istotny warunek: wszystkie operują na jednakowej liczbie pozycji, niezmiennej w czasie.

Natomiast kolejna zakładka o dość intuicyjnej nazwie mDD jest przeznaczona na sekwencje o analogicznym układzie kolumnowym, w których znajdą się wartości wskaźnika MDD liczonego kolejnych interwałach. Patrząc więc na wzory przedstawione tutaj opisujące bieżące oraz maksymalne obsunięcie kapitału, zabieramy się do konstrukcji formu. Jak zwykle pierwszą kolumnę przeznaczymy na informacje o czasie kolejnych interwałów (np. daty w przypadku notowań dobowych) natomiast pierwszy wiersz na parametry strategii lub co najmniej ich kolejne indeksy. Oznacza to, że punkt startowy dla pierwszej trajektorii znajduje się w komórce B2.

Chwilowe obsunięcie, będąc zmienną pomocniczą zostaje wkomponowane w całość formuły. Należy oszczędzać miejsce na arkuszu, co również sprzyja optymalizacji czasu niezbędnego na przeliczenie jego zawartości. W MDD występuje maksimum chwilowych obsunięć od początku sekwencji. Można je wyznaczać iteracyjnie jako maksimum DD bieżącego oraz MDD w interwale poprzednim. To kolejny element optymalizacji złożoności formuł.

Skoro startujemy z linią kapitału od wartości zero, to i w chwili początkowej obsunięcie jest zerowe. Natomiast w kolejnym interwale, czyli komórce mDD.B3 mamy formułę

= MAX( MAX( cGain.B$2:B3 )   cGain.B3; B2 )

Wykorzystano tutaj mechanizm dwojakiego tworzenia odwołań, zwanych niekiedy miękkimi i twardymi. Te pierwsze są aktualizowane przy kopiowaniu i przeciąganiu komórek zawierających formuły. Natomiast w drugim przypadku (jest on oznaczany symbolem $ przed nazwą kolumny i/lub wiersza) adres pozostaje niezmienny. Przydatne to jest w wewnętrznej funkcji MAX, której argumenty tworzą zakres o początku niezmiennym a końcu zwiększającym się z każdym kolejnym interwałem czasowym. W ten sposób w komórce B4 automatycznie generuje się uaktualniona formuła.

= MAX( MAX( cGain.B$2:B4 )   cGain.B4; B3 )

Poniższy fragment arkusza ilustruje opisaną powyżej słownie koncepcję i pozwala prześledzić działanie formuł dla przykładowych danych.


 
Przedstawiona formuła ma charakter pomocniczy. Można ją traktować jako drobne ćwiczenie wprowadzające, przygotowanie do kolejnego etapu. Nitki pojedynczych trajektorii tworzą snop, który będziemy powoli przeczesywać w poszukiwaniu włókien najlepszej jakości. Z nich trzeba będzie upleść właściwy materiał.

Brak komentarzy:

Prześlij komentarz