sobota, 7 kwietnia 2018

Jak rzetelnie sprawdzić czy dana strategia działa?

Ostatnio napotkałem taki artykuł na bossafx.pl: Czy analiza techniczna może być skuteczna?, który tematycznie przypomina mój artykuł z 2011 Czy analiza techniczna działa? . Chociaż to tylko dwa przykłady, to ilustrują one niespójność podejść do tego samego problemu. O ile bossa zastosowała test serii, który testuje po prostu niezależność kolejnych obserwacji, to ja użyłem schematu Bernoulliego, który pozwala wykryć systematyczność powtarzania się danego zjawiska. Niestety czytelnik w ten sposób traci jasność, który sposób jest poprawniejszy. Odpowiedź jest prosta: moje podejście jest poprawne, natomiast bossy błędne. Jeśli mówimy akurat o analizie technicznej, to liniowa autokorelacja czy to stóp zwrotu czy to samych ich znaków, nie jest istotna dla AT. Przykładowo: wsparcia, opory, punkty odbicia lub formacje w ogóle nie pociągają za sobą konieczności jakichkolwiek autokorelacji. Mogą się pojawić spontanicznie pomiędzy przypadkowymi ruchami, a gdy się pojawią, to ich natura jest nieliniowa. Dlaczego więc bossa stosuje niewłaściwy test dla AT? Wydaje mi się, że to wynika z takiego prostackiego rozumowania:
1) test serii to test na sprawdzanie losowości procesu,
2) jeśli AT działa to znaczy, że zmiany są nielosowe.
Wniosek: jeśli test serii nie wykrywa zależności, to AT nie działa, a jeśli wykrywa, to działa. Oczywiście to jest kompletny nonsens i pomieszanie z poplątaniem. Nielosowość ma różne wymiary, a test serii wykrywa tylko ten najprostszy, podobny do zwykłej autokorelacji. Test serii wykrywa czy powtarzających się serii nie jest za dużo albo za mało w stosunku do rozkładu normalnego czy dwumianowego.

Jeżeli formacje AT nie są zwykłym złudzeniem, to odkryć je mogą tylko zaawansowane metody, jak np. sieci neuronowe, które są w stanie wychwycić nietrywialne wzory. Prostszym i bardziej dostępnym narzędziem jest także regresja nieparametryczna.

Ale chciałem mówić nie o samej AT, ale szerzej o tym jak wszystkie strategie oceniać w kontekście skuteczności. Oczywiście jest to tylko mały wycinek problemu selekcji, ale warto go poruszyć. Otóż wspomniałem na początku o schemacie Bernoulliego. Schemat ten to po prostu taka zbiorcza statystyka sukcesów i porażek danej strategii. Głównym pomysłem, od którego zaczynamy, jest początkowe (racjonalne) założenie, że wyniki sprawdzanej strategii są czysto przypadkowe, tzn. prawdopodobieństwo jej sukcesu jest równe prawdopodobieństwu porażki, a więc wynosi 50%. Ten pomysł przenosimy do rzeczywistości empirycznej w taki sposób: przetestowaliśmy naszą strategię na jakimś walorze i okazało się, że na 27 przypadków wystąpienia reguły (strategii), 19 z nich sprawdziło się. Przykładowo, nasza strategia to kupienie waloru, gdy zostanie przebita linia trendu spadkowego. Sukces to sytuacja, gdy po przebiciu kurs dalej rośnie. Porażka to sytuacja, gdy linia została przebita, ale kurs za chwilę się cofnął i dalej zaczął spadać. W naszym teście wystąpiło 27 linii trendu spadkowego (np. o długości co najmniej 2 miesiące jak w moim teście), która została w końcu przebita. Sukcesem było to, że 19 razy kurs przebił tę linię i dalej rósł. W pozostałych przypadkach po przebiciu wrócił do spadków. Przypominam, że zakładamy od początku, iż wszystkie sukcesy i porażki są tu przypadkowe, tzn. każde zdarzenie ma szansę 50%.
Kolejnym ważnym punktem jest pytanie, ile wynosi prawdopodobieństwo, że wystąpi dokładnie 19 przypadkowych sukcesów na 27 prób. Aby je obliczyć należy zastosować wzór Bernoulliego (funkcję  prawdopodobieństwa rozkładu dwumianowego):

(1)

W naszym przypadku p = 1/2, k = 19, n = 27. Po podstawieniu dostaniemy P(27) = 1,65%.

Na 27 prób 19 przypadkowych sukcesów (tj. 19/27 = 70% obserwacji) może się udać z prawdopodobieństwem 1,65%. Kolejnym krokiem jest sprawdzenie hipotezy zerowej czy ta szansa jest rzeczywiście przypadkowa, jak to od początku zakładamy. Musimy podjąć decyzję czy 1,65%  to dużo czy mało. Jak? Porównujemy uzyskane p-value, tj. wartość dystrybuanty rozkładu dwumianowego, z założonym poziomem istotności. Ilustrując prosto sprawę, zacznę od rozkładu Gaussa. Wiadomo, że w rozkładzie normalnym ponad 95% obserwacji znajduje się w zakresie średnia + 2 odchylenia standardowe. Jest to z pewnością powód, dla którego poziom istotności określa się na 5% jako względnie bezpieczne przybliżenie błędu 1 rodzaju, tj. odrzucenia hipotezy zerowej, która jest prawdziwa (w naszym przypadku odrzucono by losowość). Innymi słowy zakres (średnia plus 2 odchylenia standardowe) uznajemy za wystarczający do przybliżenia pełnej losowej zbiorowości (95% przybliża 100%), a to oczywiście  oznacza, że to co leży poza tym zakresem musi stanowić akceptowalny błąd (nieuwzględnienia możliwości wystąpienia pewnych skrajnych, czysto losowych zdarzeń). To znaczy, 5 na 100 zdarzeń czysto losowych będzie na tyle nietypowych, że wydawać się będą nielosowe i dlatego za takie je uznamy - to jest właśnie błąd pierwszego rodzaju.

Rozkład dwumianowy bardzo szybko przekształca się w rozkład normalny, więc 5% istotności jest dla niego też odpowiednie. Czyli 5% jest pewnym punktem odniesienia do porównania przypadkowości sukcesów. Ale nie możemy porównywać poprzednio obliczonego 1,65% do 5%, bo ta pierwsza wielkość to prawdopodobieństwo tylko konkretnej liczby 19 sukcesów, podczas gdy poziom 5% odnosi się do wszystkich teoretycznych, mało prawdopodobnych sukcesów (skoro wszystko poza główną masą 95%, to wszystko). Stąd musimy dostosować nasze obliczenia do tej kumulacji. Wyobrażamy sobie, że nasz test powtarzamy wielokrotnie w innych wymiarach przy ciągle zmieniających się danych giełdowych. Liczba sukcesów będzie się wtedy zmieniać, czasem będzie więcej sukcesów, czasem mniej - ułoży się to losowo. W ten sposób uzyskamy rozkład częstości, czyli empiryczny rozkład prawdopodobieństwa. Rozkładu tego oczywiście nie znamy i nie widzimy, chyba że podzielimy całą próbę n na mniejsze próbki i dla każdej z nich obliczylibyśmy liczbę sukcesów. W ten sposób dałoby się otrzymać rozkład empiryczny. Wtedy jednak powstaje pytanie, w jaki sposób podzielić próbę na podpróby? Tak więc ten problem zostawiamy i umawiamy się, że mamy tylko jedną próbę, którą chcemy porównać z teoretycznym - rozkładem dwumianowym. Mając strukturę tego rozkładu, zadajemy pytanie jakie jest prawdopodobieństwo, że co najmniej 19 sukcesów będzie czysto przypadkowych. Aby odpowiedzieć, należy zsumować wszystkie prawdopodobieństwa wystąpienia k, k+1, k+2, .... n sukcesów, tzn. od 19 do 27. W ten sposób uzyskamy dystrybuantę rozkładu dwumianowego. Najłatwiej to zrozumieć porównując dwa grafy poniżej. Pierwszy to "efekt reguły 2 sigm"* z poziomem 5% istotności na krańcach:


Powyższy wykres to rozkład Gaussa, do którego rozkład dwumianowy dąży wraz ze wzrostem liczby prób, n. Oczywiście ze względu na to, że argumenty są w tym drugim zawsze liczbami całkowitymi (jako liczba sukcesów), to będzie to siłą rzeczy tylko przybliżenie. Drugi wykres to sam rozkład dwumianowy - prawdopodobieństwa dla kolejnej k-tej liczby sukcesów. Im większe k, tym szansa na sukces spada, bo po prostu większa liczba sukcesów staje się mniej prawdopodobna.


Wzór (1) stosujemy dla k = 19... 27 i sumujemy:


Suma to właśnie p-value. Jak powiedziałem wyżej, porównujemy p-wartość z poziomem istotności 5%, tj. 0,0261 < 0,05. Ale co to własciwie oznacza? Na grafie poniżej obydwie wielkości możemy przeanalizować:



5% to teoretyczne (przyjęte) ryzyko odrzucenia "hipotezy przypadkowości" w sytuacji, gdyby była ona prawdziwa. W konsekwencji prowadziłoby to przyjęcia hipotezy alternatywnej, tzn. przyjęcia testowanej strategii, która w rzeczywistości byłaby nieskuteczna. Ale empiryczne ryzyko tego błędu okazuje się niższe od 5%: szansa, że hipoteza zerowa jest prawdziwa wynosi tylko 2,6% - odrzucamy hipotezę, że 19 sukcesów to tylko przypadek. Jest to w zasadzie najważniejsza konkluzja z tej analizy.

Na koniec - w Gretlu całą opisaną procedurę możemy wykonać bardzo szybko. Aby wyznaczyć p-wartość, wchodzimy w Narzędzia -> 'Wyznaczanie wartości p' i wybieramy rozkład dwumianowy. Mamy 3 pola do wpisania. W pierwszym, Prob, wpiszemy dla naszego przykładu 0,5, bo to jest pr-stwo sukcesu dla hipotezy zerowej (czyli losowości). Liczba (wszystkich) doświadczeń = 27. Za wartość wpiszemy liczbę sukcesów danej strategii, tj. 19:

Po akceptacji dostaniemy:


Szybko zauważymy, że wystarczy dodać pierwsze i ostatnie Prob(x): 0,00957865 + 0,0165408 = 0,02611945. To jest dokładnie nasza p-value, które wcześniej ręcznie obliczyłem. Czyli tak samo jak wcześniej ją porównujemy z poziomem istotności i dochodzimy do wniosku, że hipotezę zerową należy odrzucić i przyjąć hipotezę o "zyskowności" strategii.

* To nie do końca jest efekt reguły 2 sigm, bo zauważmy, że zgodnie z tą regułą 5% obserwacji musi rozkładać się na obydwa ogony rozkładu, a nie tylko prawy. W rzeczywistości więc mamy poziom istotności 2,5% po lewej (obszar, gdzie liczba sukcesów jest mniejsza niż przypadek) i po prawej stronie rozkładu (obszar, gdzie liczba sukcesów jest większa niż przypadek). Oznacza to, że powinniśmy zastosować 2,5% zamiast 5% istotności, jeśli badamy hipotezę tylko prawego ogona (test jednostronny). Mimo to używamy 5% na pojedynczym ogonie.

Brak komentarzy:

Prześlij komentarz