Testowanie historyczne - KamilTaylan.blog
4 maja 2021 14:39

Testowanie historyczne

Co to jest testowanie historyczne?

Analiza historyczna to ogólna metoda sprawdzania, jak dobrze strategia lub model poradziłby sobie ex post. Weryfikacja historyczna ocenia wykonalność strategii handlowej, odkrywając, jak wyglądałaby ona przy użyciu danych historycznych. Jeśli analiza historyczna zadziała, handlowcy i analitycy mogą mieć pewność, że będą ją stosować w przyszłości.

Kluczowe wnioski

  • Weryfikacja historyczna ocenia wykonalność strategii handlowej lub modelu cenowego poprzez odkrycie, jak wypadłyby one retrospektywnie przy użyciu danych historycznych.
  • Podstawową teorią jest to, że każda strategia, która działała dobrze w przeszłości, prawdopodobnie będzie dobrze działać w przyszłości i odwrotnie, każda strategia, która działała słabo w przeszłości, prawdopodobnie będzie słabo działać w przyszłości.
  • Podczas testowania pomysłu na danych historycznych korzystne jest zarezerwowanie okresu danych historycznych do celów testowych. Jeśli się powiedzie, przetestowanie go w alternatywnych okresach czasu lub danych poza próbką może pomóc potwierdzić jego potencjalną żywotność.

Zrozumienie testowania wstecznego

Backtesting pozwala traderowi na symulację strategii handlowej przy użyciu danych historycznych w celu generowania wyników oraz analizowania ryzyka i rentowności przed zaryzykowaniem faktycznego kapitału.

Dobrze przeprowadzony test historyczny, który daje pozytywne wyniki, zapewnia traderów, że strategia jest zasadniczo solidna i prawdopodobnie przyniesie zyski, gdy zostanie wdrożona w rzeczywistości. W przeciwieństwie do tego dobrze przeprowadzony test historyczny, który daje nieoptymalne wyniki, skłoni traderów do zmiany lub odrzucenia strategii.



Szczególnie skomplikowane strategie handlowe, takie jak strategie wdrażane przez zautomatyzowane systemy transakcyjne, w dużej mierze polegają na testach historycznych, aby udowodnić swoją wartość, ponieważ są zbyt tajemnicze, aby ocenić je w inny sposób.

Dopóki pomysł handlowy można określić ilościowo, można go poddać analizie historycznej. Niektórzy handlowcy i inwestorzy mogą szukać wiedzy wykwalifikowanego programisty, aby rozwinąć pomysł w testowalną formę. Zwykle wiąże się to z programistą, który koduje pomysł w zastrzeżonym języku obsługiwanym przez  platformę handlową.

Programista może włączyć zdefiniowane przez użytkownika zmienne wejściowe, które pozwalają traderowi na „dostrojenie” systemu. Przykładem może być  prosty system krzyżowania średniej ruchomej (SMA). Trader mógłby wprowadzić (lub zmienić) długości dwóch średnich kroczących używanych w systemie. Trader mógłby następnie przeprowadzić analizę historyczną, aby określić, które długości średnich kroczących wypadłyby najlepiej na danych historycznych.

Idealny scenariusz testowania wstecznego

Idealna analiza historyczna wybiera przykładowe dane z odpowiedniego okresu czasu, który odzwierciedla różne warunki rynkowe. W ten sposób można lepiej ocenić, czy wyniki testu historycznego przedstawiają przypadek, czy rozsądną wymianę handlową.

Zbiór danych historycznych musi obejmować prawdziwie reprezentatywną próbę zapasów, w tym spółek, które ostatecznie zbankrutowały, zostały sprzedane lub zlikwidowane. Alternatywa, obejmująca tylko dane z historycznych akcji, które są nadal dostępne, przyniesie sztucznie wysokie zwroty w analizie historycznej.

Analiza historyczna powinna uwzględniać wszystkie koszty transakcyjne, jakkolwiek nieistotne, ponieważ mogą one sumować się w trakcie okresu weryfikacji historycznej i drastycznie wpływać na wygląd rentowności strategii. Handlowcy powinni upewnić się, że ich oprogramowanie do testowania wstecznego uwzględnia te koszty.

Testy poza próbką i testy wydajności z wyprzedzeniem zapewniają dalsze potwierdzenie skuteczności systemu i mogą pokazać prawdziwe kolory systemu, zanim prawdziwe pieniądze znajdą się na linii. Silna korelacja  między wynikami testów historycznych, testami wyników poza próbką i forwardami jest niezbędna do określenia żywotności systemu transakcyjnego.

Backtesting vs. Forward Performance Testing

Forward Performance Testing, znany również jako  paper trading, dostarcza handlowcom kolejny zestaw niepróbkowych danych, na podstawie których mogą ocenić system. Forward Performance testing jest symulacją rzeczywistego handlu i polega na podążaniu za logiką systemu na rynku na żywo. Nazywa się to również handlem papierowym, ponieważ wszystkie transakcje są wykonywane tylko na papierze; Oznacza to, że zapisy i wyjścia transakcji są dokumentowane wraz z jakimkolwiek zyskiem lub stratą dla systemu, ale żadne rzeczywiste transakcje nie są realizowane.

Ważnym aspektem przyszłych testów wydajności jest dokładne przestrzeganie logiki systemu; w przeciwnym razie dokładna ocena tego etapu procesu staje się trudna, jeśli nie niemożliwa. Handlowcy powinni uczciwie podchodzić do wszelkich wejść i wyjść z transakcji i unikać zachowań, takich jak  wybieranie najlepszych  transakcji lub nieuwzględnianie transakcji na papierze, uzasadniając, że „nigdy bym tego nie wziął”. Jeśli handel miałby miejsce zgodnie z logiką systemu, powinien zostać udokumentowany i oceniony.

Analiza historyczna a analiza scenariuszy

Podczas gdy analiza historyczna wykorzystuje rzeczywiste dane historyczne do testowania dopasowania lub sukcesu, analiza scenariuszy wykorzystuje dane hipotetyczne, które symulują różne możliwe wyniki. Na przykład analiza scenariuszowa będzie symulować określone zmiany wartości papierów wartościowych portfela lub kluczowych czynników, które mają miejsce, takie jak zmiana stopy procentowej.

Analiza scenariuszowa jest powszechnie stosowana do szacowania zmian wartości portfela w odpowiedzi na niekorzystne zdarzenie i może być wykorzystywana do badania teoretycznego najgorszego scenariusza.

Niektóre pułapki testowania wstecznego

Aby analiza historyczna przyniosła znaczące wyniki, inwestorzy muszą opracować swoje strategie i przetestować je w dobrej wierze, unikając w jak największym stopniu stronniczości. Oznacza to, że strategia powinna być rozwijana bez polegania na danych wykorzystywanych w testach historycznych.

To trudniejsze niż się wydaje. Handlowcy generalnie budują strategie w oparciu o dane historyczne. Muszą być surowi w testowaniu przy użyciu innych zestawów danych niż te, na których uczą swoje modele. W przeciwnym razie analiza historyczna przyniesie wspaniałe wyniki, które nic nie znaczą.

Podobnie, inwestorzy muszą unikać pogłębiania danych, w którym testują szeroki zakres hipotetycznych strategii na tym samym zestawie danych, co również przyniesie sukcesy, które zawodzą na rynkach czasu rzeczywistego, ponieważ istnieje wiele nieprawidłowych strategii, które pokonałyby rynek przypadkowo w określonym przedziale czasu.

Jednym ze sposobów na zrekompensowanie tendencji do pogłębiania danych lub wybierania najlepszych wyników jest zastosowanie strategii, która odnosi sukces w odpowiednim okresie próbkowania i przetestowanie jej historycznie danymi z innego lub spoza próbki.. Jeśli weryfikacje historyczne w próbie i poza próbą dają podobne wyniki, wówczas jest bardziej prawdopodobne, że zostaną one udowodnione.