Opis
Wygładzanie Jurika obejmuje 3 etapy:
1. etap - wstępne wygładzanie przez adaptacyjny EMA: MA1 = (1-alpha)*Price + alpha*MA1[1];
2. etap - kolejne wstępne wygładzanie przez filtr Kalmana: Det0 = (Price - MA1)*(1-beta) + beta*Det0[1]; MA2 = MA1 + PR*Det0;
3. etap - końcowe wygładzanie przez unikalny adaptacyjny filtr Jurika: Det1 = (MA2 - JMA[1]) * (1-alpha)^2 + alpha^2 * Det1[1]; JMA = JMA[1] + Det1;
gdzie: - Price - seria cen - alpha - czynnik dynamiczny (opisany poniżej) - beta - współczynnik okresowy = 0.45*(Length-1)/(0.45*(Length-1)+2) - PR - współczynnik fazy: PR = Phase/100 + 1.5 (jeśli Phase < -100 to PR=0.5, jeśli Phase > 100 to PR=2.5).
Rysunek 1. Przykładowy wykres ze wszystkimi etapami wygładzania Jurika. Możesz zobaczyć wyniki (Rysunek 1) każdego etapu za pomocą dołączonego wskaźnika JurikFilter_v2, zmieniając FilterMode: 0 - etap końcowy (JMA) 1 - 1. etap 2 - 2. etap 3 - tylko końcowe (bez wstępnego) wygładzanie.
Czynnik dynamiczny to czynnik okresowy (beta) podniesiony do potęgi (pow):
alpha = beta ^ Pow,
gdzie: - pow = rVolty ^ pow1 - rVolty - względna zmienność ceny - pow1 - potęga względnej zmienności według wzoru: pow1 = len1 - 2 (jeśli pow1 < 0.5 to pow1 = 0.5),
gdzie len1 - dodatkowy czynnik okresowy: len1 = Log(SquareRoot(len))/Log(2.0) + 2 (jeśli len1 < 0 to len1 = 0).
Tak więc widać, że czynnik dynamiczny opiera się na względnej zmienności ceny, zapewniając wymaganą adaptacyjność dla tego rodzaju filtra cenowego.
Wzór na względną zmienność ceny to rVolty = Volty/AvgVolty (jeśli rVolty > len1^(1/pow1) to rVolty = len1^(1/pow1), jeśli rVolty < 1 to rVolty = 1),
gdzie:
- Volty - zmienność ceny oparta na obliczeniach tzw. Pasm Jurika (VisualMode = 1).
- AvgVolty - średnia zmienność, dla której Jurik używa dość skomplikowanego algorytmu obliczeniowego: AvgVolty = Average(vSum,AvgLen),
gdzie:
- vSum - przyrostowa suma (Volty - Volty[10])/10;
- AvgLen - okres średniej (Jurik używa 65).
W mojej wersji filtra Jurika używam prostej średniej zamiast złożonego uśredniania Jurika
Co więcej, z dołączonym wskaźnikiem JurikVolty_v1 (Rysunek 2) możesz zobaczyć wartości Volty (VisualMode=0), vSum (VisualMode=1) oraz AvgVolty (czerwona linia przerywana).
Wzór na zmienność ceny to Volty = maksimum z Abs(del1) i Abs(del2), jeśli Abs(del1) = Abs(del2) to Volty = 0,
gdzie: - del1 - odległość między ceną a górnym pasmem del1 = Price - UpperBand - del2 - odległość między ceną a dolnym pasmem del2 = Price - LowerBand Pasma Jurika różnią się od znanych pasm cenowych takich jak Bollinger, Keltner, Donchian, Fractal i inne: jeśli del1 > 0 to UpperBand = Price w przeciwnym razie UpperBand = Price - Kv*del1 jeśli del2 < 0 to LowerBand = Price w przeciwnym razie LowerBand = Price - Kv*del2,
gdzie: - Kv - współczynnik zmienności Kv = bet ^ SquareRoot(pow2). Łatwo zauważyć, że te pasma mogą stanowić podstawę wskaźnika podążającego za trendem, takiego jak Parabolic Wildera. Tak więc widać, że praktycznie nie ma niejasnych miejsc w algorytmie Jurik Moving Average (JMA)
Podsumowanie
Volatility is calculated using Jurik Bands, which differ from traditional bands like Bollinger or Keltner by adjusting upper and lower bands based on price distance and a volatility factor. Average volatility is computed via a simplified averaging method. The indicator supports visualization of each smoothing stage through an attached filter mode, allowing users to analyze intermediate results.
JMA is suitable for trend-following and smoothing price data with reduced lag and noise compared to classic moving averages. It incorporates advanced mathematical techniques to adapt dynamically to changing market conditions, providing a refined tool for technical analysis.
Opinie klientów
5 | 50 % | |
4 | 50 % | |
3 | 0 % | |
2 | 0 % | |
1 | 0 % |
