Jak obliczany jest oscylator stochastyczny?
Bezpośrednia odpowiedź
Oscylator stochastyczny jest obliczany na podstawie ekstremów cenowych z ruchomego okna. Najpierw oblicza się %K jako pozycję ostatniej ceny zamknięcia w obrębie ostatniego zakresu high–low. Następnie oblicza się %D jako wygładzenie %K średnią ruchomą (często z użyciem krótszego lub innego okresu uśredniania). Do obliczenia potrzebne są wyłącznie historyczne dane cenowe (zazwyczaj wartości high, low i close) oraz wybrane parametry okna wstecznego i okresów wygładzania.
Mechanizm i definicja
Podstawowa idea jest prosta: przekształcenie pozycji bieżącego zamknięcia w obrębie ostatniego zakresu na liczbę o ograniczonej wartości.
1) Wybór serii cen wejściowych
Standardowa implementacja wymaga dla każdego kroku czasowego co najmniej:
- High: najwyższa cena transakcyjna w danym okresie.
- Low: najniższa cena transakcyjna w danym okresie.
- Close: cena zamknięcia danego okresu.
W celu weryfikacji należy dokładnie odnotować, które pola udostępnia źródło danych (na przykład, czy „close” oznacza cenę na koniec okresu oraz czy high/low są prawdziwymi ekstremami w obrębie danego słupka).
2) Wybór okna wstecznego dla zakresu
Niech n będzie długością okna wstecznego (często nazywanego okresem %K). W ciągu ostatnich n okresów oblicz:
- Highest High (HHn) = maksimum z High w obrębie okna.
- Lowest Low (LLn) = minimum z Low w obrębie okna.
3) Obliczanie %K (surowy stochastyczny)
Niech C będzie ostatnim Close w bieżącym kroku czasowym. Surowy wskaźnik stochastyczny %K wynosi:
%K = 100 × (C − LLn) / (HHn − LLn)
Interpretacja:
- Jeśli C równa się LLn, to %K = 0.
- Jeśli C równa się HHn, to %K = 100.
- Jeśli C znajduje się pomiędzy, %K mieści się między 0 a 100 (przy typowych warunkach danych).
4) Obliczanie %D (wygładzony stochastyczny)
Niech m będzie okresem wygładzania dla %D (często nazywanym okresem %D). Typowe podejście polega na obliczeniu średniej ruchomej z ostatnich wartości %K:
%D = MovingAverage(%K, m)
Rodzaj średniej ruchomej ma znaczenie:
- Niektóre implementacje używają prostej średniej ruchomej (SMA).
- Inne używają wykładniczej średniej ruchomej (EMA) lub innej średniej.
Aby uzyskać wynik możliwy do niezależnego sprawdzenia, należy dopasować zarówno długość okresu m, jak i konkretną metodę średniej ruchomej.
5) Obsługa przypadków brzegowych
Warto zwrócić uwagę na dwa praktyczne przypadki brzegowe dla poprawnego obliczenia:
- Początkowe słupki: przez pierwsze n−1 okresów może brakować wystarczającej historii do obliczenia HHn i LLn.
- Zerowy zakres: jeśli HHn − LLn = 0 (na przykład, gdy wartości high i low są identyczne w całym oknie), ułamek jest nieokreślony. Implementacje radzą sobie z tym różnie (na przykład, zwracając brakujące wartości lub wymuszając określoną wartość). Podczas weryfikacji sprawdź, jak Twoja metoda traktuje tę sytuację.
Przykład lub dowód (z wyraźnymi założeniami)
Poniżej znajduje się mały przykład liczbowy pokazujący, jak działa wzór. Założenia:
- Okno wsteczne n = 5 okresów.
- Obliczamy wartość w bieżącym kroku czasowym.
- Obliczone LLn i HHn pochodzą z ostatnich 5 okresów.
- Dla uproszczenia najpierw obliczamy tylko surowy %K.
Załóżmy, że ostatnie 5 okresów daje:
- LLn = 1.1000 (najniższe Low w oknie)
- HHn = 1.1200 (najwyższe High w oknie)
- Bieżące Close C = 1.1150
Wtedy:
- HHn − LLn = 1.1200 − 1.1000 = 0.0200
- C − LLn = 1.1150 − 1.1000 = 0.0150
Zatem:
- %K = 100 × 0.0150 / 0.0200 = 75
Aby obliczyć %D, należy następnie utworzyć wartości %K dla ostatnich m okresów i zastosować wybraną średnią ruchomą. W celu weryfikacji zapisz wybrane m oraz to, czy implementacja używa SMA, EMA, czy innej średniej. Bez tego %D może się różnić, nawet jeśli surowy %K jest obliczany tak samo.
Ograniczenia i ryzyka (skupienie na obliczeniach)
1) Wrażliwość na parametry i częstotliwość danych
Długość okna wstecznego n oraz ustawienie wygładzania m bezpośrednio zmieniają reaktywność wskaźnika. Krótsze okno może sprawić, że %K szybciej zareaguje na ostatnie ruchy, podczas gdy dłuższe okno zazwyczaj wygładza kontekst zakresu.
Ponadto użycie różnych interwałów czasowych (na przykład słupki 5-minutowe w porównaniu ze słupkami dziennymi) zmienia znaczenie „high”, „low” i „close”, co zmienia HHn, LLn, a tym samym %K.
2) Zależność od zachowania zakresu high/low
Oscylator stochastyczny nie mierzy bezpośrednio trendu; mierzy pozycję zamknięcia w obrębie ostatniego zakresu. Jeśli rynek porusza się w wąskim lub nieregularnym paśmie, zakres high–low może być mały, co sprawia, że %K wydaje się zmienny z jednego słupka na drugi.
3) Nieokreślone lub mylące wartości w warunkach stałego zakresu
Jeśli HHn − LLn = 0, %K jest matematycznie nieokreślony. Nawet jeśli implementacja w jakiś sposób uzupełnia wartości, wynikające z tego liczby mogą nie nieść użytecznych informacji.
4) Wybór wygładzania wpływa na porównywalność
Ponieważ %D zależy od rodzaju średniej ruchomej i długości okresu, dwie platformy mogą pokazywać różne linie %D, jednocześnie zgadzając się co do surowego %K. W celu niezależnej weryfikacji porównaj pełne ustawienia, a nie tylko nazwę wskaźnika.
Weryfikacja i kolejne pytanie
Aby samodzielnie zweryfikować obliczenia oscylatora stochastycznego:
- Ustal parametry n (okno wsteczne) i m (wygładzanie).
- Dla każdego kroku czasowego oblicz LLn i HHn dokładnie tak, jak zdefiniowano (ruchome minimum z Low; ruchome maksimum z High w ciągu n okresów).
- Zastosuj %K = 100 × (C − LLn) / (HHn − LLn).
- Oblicz %D przy użyciu dokładnej metody średniej ruchomej i długości okresu stosowanej przez Twoje narzędzie.
Jeśli chcesz pójść dalej, użytecznym kolejnym krokiem jest porównanie, jak zmiany ustawień wskaźnika wpływają na zachowanie %K i %D, lub sprawdzenie, jak różne definicje średniej ruchomej zmieniają wygładzoną linię:
- /forex-indicators/momentum-indicators/stochastic-oscillator/how-do-settings-change-stochastic-oscillator/
- /forex-indicators/momentum-indicators/stochastic-oscillator/what-can-signals-from-stochastic-oscillator-mean/