Skoro
jest problem, to trzeba znaleźć rozwiązanie, modyfikując wskaźnik
jakości w taki sposób, aby dla każdych danych wejściowych możliwe
było poprawne wyznaczenie jego wartości. Zatem poniżej spróbuję
przedstawić pewne konstruktywne propozycje wraz z omówieniem ich
zalet i wad.
Najpierw
opiszę pierwszy pomysł, jaki przyszedł mi do głowy i który
stosowałem w dotychczas realizowanych symulacjach. Prosty i dość
naiwny: skoro nie wolno nam dzielić przez zero, to... nie dzielmy
wtedy wcale. Uściślając: w przypadkach, kiedy maksymalne
obsunięcie wynosi zero, jako wskaźnik jakości przyjmujemy sam
skumulowany zysk a nie iloraz.
Rozwiązanie
to ma oczywistą wadę, a jest nią nieporównywalność wskaźników
jakości dla przypadków z dzieleniem i bez niego. Fizycy zapewne z
łatwością dostrzegą ten problem, ponieważ są przyzwyczajeni do
rygorystycznego przestrzegania zasady nieporównywania wielkości
wyrażanych w różnych jednostkach. Jak widać, omawiany iloraz jest
tutaj wielkością bezwymiarową, natomiast sam skumulowany zysk jest
wyrażany w jednostkach waluty, w której jest rozliczany kontrakt.
W
celu ominięcia wspomnianego wyżej problemu wprowadziłem
następujący, dodatkowy element: w sytuacjach, kiedy miałoby
następować porównywanie samego zysku z ilorazem po prostu
pomijamy. Innymi słowy, jeśli w zbiorze wyników do optymalizacji
są takie, dla których maksymalne obsunięcie wynosi 0, to
ograniczamy się wyłącznie do nich, pomijając pozostałe. Warto
przy tym zauważyć, że bezpośrednio z definicji obsunięcia
wynika, że końcowy zysk każdego z nich musi być wartością
nieujemną.
Jest
to propozycja bardzo radykalna i jako taka ma też niewątpliwą wadę
w postaci bezwzględnej dyskryminacji tych strategii, które wykazują
się jakimkolwiek, choćby symbolicznym, obsunięciem na rzecz tych,
które wykazują się znikomym zyskiem i zerowym obsunięciem. A to
ostatnie często nie wynika z zalet samej strategii ale jest efektem
np. korzystnej pozycji początkowej. Oczywiście nie będzie to
zachodzić w proponowanej przeze mnie metodzie symulacji z neutralną
pozycją początkową. Jednak teraz omawiamy sytuację ogólną.
Przedstawione
tutaj rozwiązanie jest zbliżone do tego, które zaproponował
czytelnik w komentarzu do poprzedniego wpisu.
Teoretycznie są one różne, jednak zauważmy, że dzielenie przez
minimalną jednostkę notowań to jak gdyby dzielenie przez stałą
równą jeden. A dzielenie przez 1 to brak dzielenia, z dokładnością
do tego, że uwalniamy się od wzmiankowanego przeze mnie wyżej
problemu zgodności jednostek. Również proponowane przeze mnie
ograniczenie do zbioru wyników o zerowym obsunięciu jest czystym
formalizmem. Strategia o jakimkolwiek, nawet minimalnym obsunięciu,
musiałaby mieć kosmicznie duży zysk końcowy, aby ich iloraz mógł
zdominować sam zysk dla strategii z zerowym obsunięciem. Wygląda
więc na to, że niezależnie wpadaliśmy na podobne pomysły.
Przedstawione
powyżej metody wyznaczania wskaźników jakości są konstruktywne,
w tym sensie, że można jest stosować i dają jednoznaczne wyniki,
nie prowadząc do wartości nieokreślonych. A że mają wady? Cóż,
trudno. Na razie proponuję pozostać przy nich, a na dalszych
etapach konstrukcji złożonych systemów powrócić do poszukiwania
jakichś lepszych alternatyw.
Nie bardzo rozumiem uwagę "Oczywiście nie będzie to zachodzić w proponowanej przeze mnie metodzie symulacji z neutralną pozycją początkową." - ja nie widzę żadnej różnicy, przez 3 interwały mamy zero, potem przez 3 szczęśliwe dodatnie zyski cząstkowe. A może być jeszcze gorzej, dla dużego p przez większość czasu było zero i potem trochę szczęścia i zyskujemy ogromną przewagę nad systemami które uczciwie grały przez prawie cały czas, czyli uogulniając seria rozpędowa preferuje niskie m (co można łatwo odfiltrować) a dla pozycji neutralnej preferencje są rozrzucone po wszystkich m i p.
OdpowiedzUsuńRozwiązaniem problemu mogłoby być liczenie MDD nie tylko w punktach, ale również z uwzględnieniem tego co się dzieje wewnątrz interwałów (na pewno L, niekoniecznie H), co w gruncie rzeczy nawet lepiej oddaje ryzyko, zwłaszcza przy długich interwałach.
Jak zwykle wszystkiemu winne są moje skróty myślowe :( Chodziło mi tylko o to, że neutralna pozycja początkowa eliminuje sytuację, w której np. dzięki szczęśliwemu rozpoczęciu od długiej pozycji kilka interwałów wzrostowych daje dodatni zysk przy zerowym DD, a gdyby nieszczęśliwie zacząć od krótkiej byłoby skrajnie na odwrót - duża strata i duży DD. Natomiast, jak słusznie zauważasz powstaje sytuacje kiedy jest długo, długo nic, a potem jeden szczęśliwy tick w dobrą stronę. Też niedobrze. Ponownie chylę czoła przed uważnym i dociekliwym czytelnikiem :)
UsuńCo do ulepszonego sposobu liczenia MDD to faktycznie warto uwzględnić również extrema wewnątrz interwału - tu moim zdaniem zarówno L jak i H, bo każde stwarza ryzyko margin call, pierwsze przy długiej, drugie przy krótkiej pozycji. Zatem chwytam za kartkę i długopis i w jutrzejszym wpisie postaram się zamieścić zmodyfikowaną wersję w postaci porządnie napisanych wzorów.
O tej porze myślenie idzie mi nieco gorzej, ale jak mamy dwie funkcję: CG i MDD, z czego jedną się minimalizuje a drugą maksymalizuje to czy nie lepiej sobie uprościć życie i "odwrócić" jedną z tych funkcji dodając znak (-) i połączyć je iloczynem a nie ilorazem? Wówczas funkcja celu troszkę nam się uprości do postaci: Fc = (-)CG*MDD -> którą należy maksymalizować i wówczas zniknie problem z dzieleniem przez 0 :)
OdpowiedzUsuńJak to się mówi "zbyt piękne aby mogło być prawdziwe" :)
UsuńZauważmy że taka funkcja może nam zwrócić maksimum dla bardzo dużych strat (CG<<0) i bardzo dużych obsunięć (MDD>>0). A to chyba nie o to chodzi.
Przejście z iloczynów/ilorazów na sumy/różnice można zrealizować poprzez transformację logarytmem. Dyskutujemy ten temat pod postem z ostatniej niedzieli...
Też prawda... :)
UsuńTen komentarz został usunięty przez autora.
Usuń