Mean reversion to pomysł handlu na zmniejszenie odchylenia od wybranego poziomu odniesienia. Ten poziom trzeba jednak nazwać, a oczekiwany powrót sprawdzić. Kurs daleko od średniej nie ma obowiązku do niej wrócić. Co więcej, cena może pozostać nieruchoma, podczas gdy średnia przesunie się do niej. Na wykresie nastąpi „powrót do średniej”, choć pozycja nie zarobi.
Dwie rosnące krzywe nie definiują obiektu powrotu
Fikcyjne serie indeksów mają tę samą umowną jednostkę: P = 100, 102, 104, 106; Q = 100, 104, 108, 112.
Przesuń diagram w bok, aby zobaczyć całość
Cztery kompletne, jednoczesne odczyty obu indeksów. Przez „różnicę” rozumiemy dokładnie P − Q bez dopasowanego współczynnika. Nie jest to test stacjonarności. Dokument NIST — Correlation potwierdza: korelacja Pearsona mierzy zależność liniową i wynosi +1 przy idealnej dodatniej zależności.
Zależność Q = 2P − 100 daje korelację Pearsona +1, lecz P − Q przyjmuje 0, −2, −4, −6. Nawet idealne wspólne rośnięcie nie wymusza powrotu tak zdefiniowanej różnicy. Z kolei 2P − Q jest w tej konstrukcji stałe 100: inny współczynnik tworzy inny obiekt. Przed hipotezą powrotu zapisz serię, jednostki i współczynnik; korelacja sama nie wybiera tych elementów i nie dowodzi stabilności poza pokazanym szeregiem.
Co właściwie ma wracać?
Rozróżnij trzy obiekty: sam poziom ceny, odchylenie ceny od ruchomej średniej oraz spread modelowy między instrumentami. Ten ostatni może być na przykład różnicą jednej serii i drugiej pomnożonej przez oszacowany współczynnik; nie chodzi tu o spread Bid–Ask brokera. Każdy obiekt wymaga osobnej hipotezy. To, że dwie ceny są skorelowane, nie oznacza jeszcze stabilności ich różnicy.
W analizie szeregów stacjonarność wiąże się ze stabilnością średniej, wariancji i zależności w czasie. Usunięcie trendu lub analiza zmian może zmienić własności szeregu, lecz stacjonarność zmian nie dowodzi stacjonarności samego kursu. Nawet stacjonarność nie wystarcza do wyznaczenia zyskownego wejścia po kosztach.
Badanie kointegracji dotyczy innego problemu niż dotknięcie średniej kroczącej. Przykładowo test Engle’a–Grangera w statsmodels zakłada określony typ niestacjonarności wejściowych serii i sprawdza hipotezę braku kointegracji. Wynik takiego testu z jednej próby nie gwarantuje, że relacja utrzyma się później. Parametrów spreadu nie wolno dopasować na całej historii, a następnie używać ich tak, jakby były znane przed każdą transakcją.
Z-score opisuje dystans, nie termin odbicia
Własny model poniżej używa z = (cena − średnia) / odchylenie standardowe. Okno ma tylko cztery zamknięcia, żeby rachunek był widoczny. Nie jest to zalecana konfiguracja strategii. Średnia jest arytmetyczna, a wariancję liczymy jako sumę kwadratów odchyleń podzieloną przez N, czyli ddof = 0. Inna konwencja, np. N − 1, da inny wynik; rozróżnienie wyjaśnia dokumentacja NumPy.
Hipotetyczne poprzednie kursy zamknięcia Bid EUR/USD to kolejno 1,1000; 1,1002; 1,0998; 1,1000. Bieżące zamknięcie t0 wynosi 1,0996. Jeden pip to 0,0001. W poprzednim oknie odchylenia od średniej to 0, +2, −2 i 0 pipsów, więc wariancja wynosi (0 + 4 + 4 + 0) / 4 = 2 pipsy kwadratowe.
| Okno odniesienia | Średnia | Odchylenie w pipsach | Dystans w pipsach | Z-score |
|---|---|---|---|---|
| Poprzednie 4 zamknięcia, bez bieżącego | 1,1000 | √2 ≈ 1,4142 | −4 | ≈ −2,8284 |
| Ostatnie 4 zamknięcia, z bieżącym | 1,0999 | √5 ≈ 2,2361 | −3 | ≈ −1,3416 |
Po przesunięciu okna najstarsze 1,1000 wypada, a 1,0996 wchodzi do obliczenia. Odchylenia od nowej średniej wynoszą +3, −1, +1 i −3 pipsy: wariancja to 20 / 4 = 5. Ten sam kurs przekracza umowny próg −2 w pierwszym wariancie, lecz nie w drugim. Oba rachunki mogą korzystać wyłącznie z danych dostępnych przy t0; nie są jednak tą samą regułą.
Odczyt z = −2 nie oznacza 95-procentowej szansy odbicia ani oczekiwanego czasu powrotu. Oficjalne reguły Bollingera przestrzegają przed przypisywaniem pasmom automatycznych założeń statystycznych: samo dotknięcie nie stanowi sygnału, a cena może podążać wzdłuż wstęgi. Usytuowanie względem pasma jest obserwacją, którą dopiero łączysz z hipotezą.
Czy sama konwencja odchylenia zmienia sygnał?
Własny wariant zachowuje poprzednie cztery ceny z przykładu, bez bieżącej świecy: średnia to 1,1000, a suma kwadratów odchyleń 8 pipsów kwadratowych. Bieżąca cena nadal wynosi 1,0996, czyli leży 4 pipsy poniżej średniej. Tym razem zmieniamy wyłącznie ddof.
| Konwencja | Odchylenie w pipsach i z-score | Warunek spełniony? |
|---|---|---|
| ddof = 0 | √(8/4) ≈ 1,4142; z ≈ −2,8284 | Tak |
| ddof = 1 | √(8/3) ≈ 1,6330; z ≈ −2,4495 | Nie |
Nie potrzeba innego dostawcy ani ruchu ceny, by dwie implementacje dały inną decyzję. Próg −2,5 wybrano tutaj wyłącznie do pokazania różnicy, nie jako lepsze ustawienie. NumPy definiuje mianownik jako N − ddof; nazwy „sample” i „population” nie wystarczą, jeśli nie zapiszesz konkretnego parametru.
Przed przeniesieniem reguły z arkusza do platformy porównaj odczyty na tych samych danych, również przy małej próbie i zerowym odchyleniu. Zgodność obliczenia jest kontrolą implementacji, a nie potwierdzeniem trafności wejścia.
Cel ruchomy może zniknąć bez odbicia ceny
Kontynuujmy ten sam wymyślony ciąg. Na trzech następnych zamknięciach Bid pozostaje równy 1,0996. Za każdym razem obliczamy średnią z czterech ostatnich cen, łącznie z bieżącą.
| Zamknięcie | Bid | Średnia z 4 świec, włącznie z bieżącą | Bid minus średnia |
|---|---|---|---|
| t0 | 1,09960 | 1,09990 | −3 pipsy |
| t1 | 1,09960 | 1,09975 | −1,5 pipsa |
| t2 | 1,09960 | 1,09970 | −1 pip |
| t3 | 1,09960 | 1,09960 | 0 pipsów |
Przy t3 wszystkie cztery obserwacje są identyczne. Odchylenie standardowe wynosi zero, więc z-score jest niezdefiniowany: nie wpisujemy zera do dzielenia 0 / 0. Reguła musi przewidywać brak odczytu w takim przypadku. Równocześnie warunek „cena dotknęła bieżącej średniej” został spełniony, mimo braku ruchu ceny w górę.
Załóżmy hipotetyczne kupno 10 000 EUR na pierwszym kwotowaniu po t0 po Ask 1,0997 i sprzedaż po sygnale t3 po Bid 1,0996. Przyjmujemy te ceny wykonania, rachunek USD, prowizję łącznie 0,40 USD i brak finansowania oraz innych opłat. Wynik to (1,0996 − 1,0997) × 10 000 − 0,40 = −1,40 USD. Spread jest już w cenach wykonania; nie odejmujemy go ponownie. Zasady rachunku z uwzględnieniem strony kwotowania ilustruje przykład P/L brokera OANDA; nasze ceny i opłaty są wyłącznie założeniami.
Jak zamienić hipotezę w uczciwy test?
Najpierw zapisz, czy celem jest poziom zamrożony w chwili sygnału, czy średnia aktualizowana później. W przykładzie dawny poziom 1,1000 nie został osiągnięty, choć ruchomy cel tak. Dopisz źródło kwotowań, okno, ddof, uwzględnienie bieżącej świecy i moment decyzji. Realizację rozpatruj dopiero po dostępności sygnału, według odrębnych założeń ceny wykonania.
Następnie określ warunek wyjścia, maksymalny czas utrzymywania pozycji, sposób ograniczania ryzyka i zachowanie przy braku danych lub zerowej zmienności. Przekroczenie limitu czasu nie dowodzi rozpoczęcia trendu: oznacza, że model nie zrealizował oczekiwania w założonym terminie. Dokładanie pozycji po stracie jest osobną zmianą ekspozycji, a nie dowodem, że powrót stał się bardziej prawdopodobny.
Oddziel okres wyboru parametrów od późniejszej próby oceny. Zapisuj wszystkie sygnały spełniające regułę, również te bez powrotu do celu, oraz wyniki po kosztach i największe niekorzystne odchylenia. Nie oceniaj strategii wyłącznie liczbą trafień: duża strata może przewyższyć kilka małych zysków. Wynik demonstracyjny nie gwarantuje takiej samej realizacji na rzeczywistym rachunku.
ADX, RSI i wstęgi nie stanowią trzech niezależnych dowodów przewagi tylko dlatego, że są trzema wskaźnikami. Reguła rozpoznawania otoczenia rynku również podlega testowi; niski ADX nie obiecuje odbicia. Jej operacyjny opis znajdziesz w artykule o reżimach rynkowych. Nie istnieje jeden uniwersalny próg, który usuwa ryzyko zmiany warunków.
Sprawdź, czy rozumiesz
Jedno krótkie ćwiczenie
Około 2 min · możesz spróbować ponownie
W modelu Q = 2P − 100. Co wynika z korelacji +1?
- P − Q musi być stałe.
- Następny odczyt P − Q musi wrócić do zera.
- Serie są liniowo powiązane, choć P − Q w pokazanej próbie oddala się od zera.
Sprawdź odpowiedź i wyjaśnienie
Serie są liniowo powiązane, choć P − Q w pokazanej próbie oddala się od zera.
P − Q to 100 − P, więc maleje wraz ze wzrostem P. To zgodne z korelacją +1.
Jeszcze jedno ćwiczenie
W osobnym wariancie modelu kupiono 10 000 EUR po Ask 1,0997. Zamiast wyjścia przy ruchomej średniej przyjmij hipotetyczne wykonanie sprzedaży po Bid 1,1000. Łączna prowizja wynosi 0,40 USD; brak finansowania i innych opłat, rachunek USD. Oblicz wynik netto. Czy wynik tego wariantu dowodzi, że poziom 1,1000 został osiągnięty w ciągu z tabeli?
Sprawdź odpowiedź
Wynik netto wynosi (1,1000 − 1,0997) × 10 000 − 0,40 = 3,00 − 0,40 = 2,60 USD. Spread jest zawarty w podanych cenach wykonania. To osobny hipotetyczny scenariusz: w tabeli wszystkie ceny od t0 do t3 pozostają równe 1,0996, więc cel 1,1000 nie został tam osiągnięty. Nie wolno przypisać temu ciągowi wyniku +2,60 USD.

