Póki co, dla przedstawionego wcześniej przebiegu można wyróżnić zakres argumentów m w przybliżeniu pomiędzy 30 a 60, dla którego to zakresu system wykazuje dobre zyski przy jednoczesnej korzystnej relacji względem maksymalnego obsunięcia. Drugi taki obszar to liczby powyżej 170, które dają wartości stabilizujące się na liczbach dodatnich.
A
jak to się przedstawia dla hierarchicznego systemu o strategii
kontrariańskiej? Spójrzmy na wykres sporządzony na podstawie
symulacji o takich samych zakresach historycznych kursów,
parametrach i warunkach jak poprzednio. Oczywiście na pierwszym
poziomie hierarchii funkcjonuje prosty system antytrendowy.
Jak
widać charakterystyka zależności zysku od parametru m
przybiera zdecydowanie inny kształt niż dla systemu podążającego.
Co więcej, nie można tutaj dostrzec jakichś prostych relacji
geometrycznych pomiędzy obydwoma systemami. Należy przy tym
zauważyć, że zupełnie inaczej byłoby, gdybyśmy narysowali i
porównali wizualnie charakterystyki zależności od parametru p
dla systemów elementarnych obu rodzajów. Wówczas dla wartości
tego parametru ustawionych „na sztywno” poziomy odwróceń obu
systemów są takie same, a pozycje przeciwne. W związku z tym mają
one kształt symetryczny względem pewnej prostej poziomej. Na
marginesie wspomnieć warto, że prosta ta leży nieco poniżej osi
odciętych, ponieważ zyski osiągane w tych samych interwałach dla
systemów przeciwnych typów nie są dokładnie liczbami przeciwnymi
– ze względu na spread i poślizgi.
Natomiast
kluczowym wnioskiem z analizy obu wykresów jest fakt, że dla
systemów w realizacji hierarchicznej dwupoziomowej można wyróżnić
zakresy parametrów, przy których dwa systemy bazujące na
przeciwnych postulatach okazują się zyskowne dla rozpatrywanego
zbioru danych. Ten wniosek warto potraktować jako punkt odniesienia
do dalszej analizy wyników przeprowadzonego eksperymentu
symulacyjnego.
Kontynuacja wątku tutaj.
Kontynuacja wątku tutaj.
Różne wykresy sugerują, że adaptayjne algorytmy będą mniej skorelowane niż ze stałym p.
OdpowiedzUsuńCzy zgodnie z prferencją minimalizacji liczby parametrów pozbędziemy się m kosztem drugiego poziomu adaptacji, czy już złożoność obliczeniowa okaże się zabójcza?
Co do złożoności obliczeniowej to przy okazji ujawniam, że opisany powyżej eksperyment obliczeniowy dla obu wersji strategii zajął łącznie niecałą godzinę na komputerze klasy i5 - implementacja w C++ z wykorzystaniem wyłącznie STL i kompilowana na GCC. Jest to czas całkiem niezły dla przekrojowego badania na i tak dużym zakresie danych - 2.5 roku. Ale raczej już nie do dynamicznej adaptacji. Zatem ewentualna optymalizacja parametru m na kolejnym poziomie hierarchii wymagałaby jakichś bardziej zaawansowanych technologii - np. przerzucenia części obliczeń na GPU.
UsuńNatomiast w najbliższej przyszłości postaram się podjąć kwestię doskonalenia zaproponowanych koncepcji bez wprowadzania kolejnego poziomu w hierarchii - rozbudowa nie wzwyż a raczej poziomo :)
Symulacja z jeszcze jednym poziomem zajęła by mniej więcej tyle samo, bo tam nie byłoby parametru do optymalizacji. Czas nie jest zły, a dla real time zawsze można zaprząc klaster...
UsuńNo właśnie wydaje mi się, że dużo więcej. Moja pierwsza myśl to uruchomić symulację taką, jak opisałem, wyznaczyć optymalne m, a w kolejnym interwale przesunąć się ze zbiorem danych - wyrzucić najstarszy interwał, dołożyć nowy i powtórzyć symulację aby uzyskać nową wartość m. Oznacza to, że dla rocznego okresu musielibyśmy wykonać 52 * 1 godzinnych symulacji - a to już dużo. Chyba że jest jakiś trick aby to obejść, tylko na razie go nie widzę.
UsuńWciąż nie jestem przekonany do pozycji 0, gdyż uważam że seria rozpędowa może trochę sprawę uprościć.
UsuńKorzystając z nierówności Czebyszewa można wyznaczyć potrzebną długość serii rozpędowej,
żeby mieć 95% pewności że nastąpi wychylenie o średnią i pięć sigm potrzeba około 75 intrwałów.
Na poziomie t liczymy tylko raz zyski cząstkowe dla najdłuższego m (plus średnia rozpędowa dla pozycji początkowej)
i na tym liczymy optymalną sumę_zysku/ryzyko dla poszczególnych m w danym kroku, możemy zapamiętać od razu dla jakiego t jest optimum. Teraz liniowo przelatujemy po wszystkich m, wybieramy najlepsze i podsyłamy jego t do grania.
Wybór pozycji neutralnej w moim podejściu był podyktowany tym, że w takim przypadku dla t przekraczającego maksymalne wahania po wszystkich interwałach pozostajemy do końca na 0. A to zapewnia, że supremum badanej funkcji celu jest zawsze co najmniej nieujemne. Trzymając się tego postulatu projektowałem cały algorytm.
UsuńNatomiast to co zaproponowałeś jest interesujące. Spróbuję ująć to jakoś formalnie, wtedy też zobaczę czy dobrze zrozumiałem ideę. I zrobimy trochę testów, bo jestem niezmiernie ciekaw wyników...
Matematyk, fizyk i inżynier dostali po kawałku siatki ogrodzeniowej i zadanie, by ogrodzić jak największy teren. Inżynier szybko ogrodził elegancki kwadrat. Fizyk obliczył że najlepszy stosunek powierzchni do obwodu ma koło i pracowicie cały dzień rozstawiał siatkę w idealny okrąg. Natomiast matematyk rozstawił siatkę byle jak w krzywa zamkniętą, wszedł do środka i powiedział, że jest na zewnątrz.
OdpowiedzUsuńJa jestem inżynierem i uważam, że zasady są po to by je łamać :), wysokie p są i tak bezużyteczne a poświęcając jedno założenie można zyskać kolejny poziom adaptacji.