W
ostatnim odcinku poruszyłem temat ilościowego
ujęcia podobieństw
strukturalnych
wewnątrz
pojedynczej
sekwencji
zysków otrzymywanej w wyniku działania systemu transakcyjnego.
Ponieważ zasugerowałem użycie w tym celu współczynnika
korelacji, który jak wiadomo opisuje związek dwóch cech, powstało
naturalne pytanie, w jaki sposób go zastosować w odniesieniu do
pojedynczego ciągu danych. Odpowiedź jest naturalna a zarazem
zakrawająca na absurd: należy wyznaczyć jego korelację z… nim
samym. Nietrudno się domyślić, że propozycja ta zawiera jakiś
„trick”, który poniżej postaram się obrazowo wyjaśnić.
Jak
wiadomo, współczynnik korelacji przyjmuje wartości z przedziału
od -1 do +1, przy czym obie skrajne wartości oznaczają korelację
idealną, czyli w praktyce funkcyjną
liniową
zależność
pomiędzy dwoma badanymi zmiennymi. W tym drugim przypadku zależność
ta wyraża się funkcją rosnącą, czyli wzrost jednej zmiennej jest
ściśle powiązany ze wzrostem drugiej. Wynika z tego, że
współczynnik korelacji sekwencji danych z samą sobą będzie
zawsze równy 1. Wynik obliczeń jest zatem z góry znany i przez to
niewiele wnosi. Co jednak się stanie, jeśli sekwencję danych do
obliczeń zostanie przesunięta o pewną ilość elementów do
przodu?
Zilustruję
to na poniższym przykładzie, gdzie sekwencja N-elementowa,
oryginalnie indeksowana liczbami od 0 do N-1
zostanie przesunięta o 1 element. Następnie sekwencja oryginalna
oraz przesunięta staną się danymi wejściowymi do wyznaczenia
współczynnika korelacji:
[z(0),
z(1), z(2), … , z(N-3),z(N-2)]
[z(1),
z(2), z(3), … , z(N-2),z(N-1)]
Warto
zauważyć, że w pierwszej, oryginalnej sekwencji został pominięty
ostatni element. Jest to naturalna konsekwencja przesunięcia o 1 w
przód sekwencji drugiej, ponieważ na ostatnim elemencie tej drugiej
znajduje się teraz element o indeksie (N-1).
Obie sekwencje, jako argumenty dla współczynnika korelacji, muszą
mieć taką samą liczbę elementów,
równą teraz N-1.
Interpretacja
współczynnika
korelacji dla powyżej określonej pary sekwencji jest następująca:
mierzy on statystyczny związek pomiędzy wartościami, których
pozycje w sekwencji są odległe o jeden, czyli sąsiadują ze sobą.
Nosi on nazwę autokorelacji,
co jest określeniem intuicyjnie zrozumiałym i wynikającym z samej
jego konstrukcji. Równie naturalny jest pomysł jego uogólnienia na
przypadki przesunięcia sekwencji o inne odległości. W takiej
sytuacji wielkość tego przesunięcia, którą można oznaczyć np.
literą k,
staje się zmienną wejściową dla wyrażenia, które nosi nazwę
funkcji
autokorelacyjnej
ciągu obserwacji i wyraża się następującym uogólnionym wzorem:
Autocorr([z(0),…,z(N-1),k]=Corr([z(0),…,z(N-1-k)],
[z(k),…,z(N-1)])
Również
interpretacja tego wyrażenia jest uogólnieniem przypadku od którego
zaczęliśmy – określa on siłę zależności pomiędzy
obserwacjami o ustalonej odległości k
indeksów w badanej sekwencji danych. Ilustrację zastosowania tego
narzędzia przedstawię w kolejnym odcinku, gdzie jak nietrudno się
domyślić, przyjrzymy się strukturze autokorelacyjnej sekwencji
rozliczeń pozycji dla zadanych wartości parametru sterującego
działaniem strategii.
Przy tak deterministycznym algorytmie autokorelacja oznaczałaby w zasadzie autokorelację kursu (z dokładnością do pozycji początkowej). Co chyba bez mierzenia można wykluczyć - historyczne wyniki nie gwarantują ich powtórzenia w przyszłości.
OdpowiedzUsuńJednak przekształcenia stosowane w algorytmie są nieliniowymi funkcjami kursów, zatem struktura autokorelacyjna wyników nie jest (a przynajmniej nie musi być) tożsama z tą dla samych kursów. Co do powtarzalności wyników, to oczywiście jest to dużo szerszy temat, odnosi się do wnioskowania statystycznego o parametrach procesów losowych na podstawie skończonych zbiorów obserwacji.
UsuńPrzy okazji: wpadłem na ciekawy tekst dotyczący właśnie m.in. zagadnień wnioskowania o autokorelacjach na podstawie przeszłości:
http://mechanicalforex.com/2012/10/one-size-doesnt-fit-all-taking-care-of-systematic-correlations-in-trading-system-monte-carlo-simulations.html