Jak obliczane są strategie MACD?
Bezpośrednia odpowiedź
MACD („Moving Average Convergence Divergence” – zbieżność i rozbieżność średnich kroczących) jest obliczany z dwóch wykładniczych średnich kroczących (EMA) wyznaczonych na tej samej serii cenowej. Podstawowe kroki to: obliczenie szybkiej EMA, obliczenie wolnej EMA, odjęcie ich w celu uzyskania linii MACD, zastosowanie EMA do linii MACD w celu uzyskania linii sygnałowej oraz odjęcie sygnału od MACD w celu uzyskania histogramu.
Podejście „strategie MACD” zwykle oznacza wykorzystanie tych wartości MACD jako danych wejściowych do logiki reguł (na przykład porównywanie linii MACD z jej linią sygnałową lub analizowanie zmian histogramu). Samo obliczenie to matematyka wskaźnika opisana powyżej.
Mechanizm i definicje
1) Wybór wejściowej serii cenowej
Najpierw zdefiniuj, co oznacza „cena” w Twoich obliczeniach. Typowe wybory obejmują cenę zamknięcia lub czasami cenę uśrednioną. Po wybraniu serii wejściowej musisz zastosować tę samą serię konsekwentnie do każdej EMA w obliczeniach MACD.
Założenie dla każdego przykładu obliczeniowego: wszystkie obliczenia wykorzystują jeden szereg czasowy cen próbkowanych ze stałą częstotliwością (na przykład cena zamknięcia każdej świecy). Jeśli częstotliwość danych lub seria się zmieni, wartości MACD ulegną zmianie.
2) Obliczanie szybkiej i wolnej EMA
Niech:
n_fast= długość szybkiej EMA (parametr)n_slow= długość wolnej EMA (parametr)P_t= wybrana cena w czasiet
EMA to ważona średnia krocząca, która przypisuje większą wagę ostatnim obserwacjom. W wielu definicjach EMA można zapisać rekurencyjnie:
EMA_fast(t) = EMA_fast(t-1) + α_fast * (P_t - EMA_fast(t-1))EMA_slow(t) = EMA_slow(t-1) + α_slow * (P_t - EMA_slow(t-1))
gdzie współczynniki wygładzania α_fast i α_slow zależą od długości:
α_fast = 2 / (n_fast + 1)α_slow = 2 / (n_slow + 1)
Uwaga dotycząca inicjalizacji (istotne ograniczenie): EMA wymagają wartości początkowej. Różne platformy mogą inicjalizować EMA w różny sposób (na przykład zaczynając od pierwszej ceny lub używając prostej średniej kroczącej jako początkowej EMA). Oznacza to, że wczesne wartości MACD mogą nie być dokładnie takie same w różnych implementacjach.
3) Obliczanie linii MACD
Linia MACD w czasie t jest różnicą między szybką i wolną EMA:
MACD(t) = EMA_fast(t) - EMA_slow(t)
Ta różnica może być dodatnia lub ujemna. Jej wielkość zależy zarówno od skali cen, jak i od wybranych długości EMA.
4) Obliczanie linii sygnałowej jako EMA z MACD
Niech n_signal będzie długością EMA sygnału (parametr). Linia sygnałowa to EMA zastosowana do szeregu MACD:
Signal(t) = Signal(t-1) + α_signal * (MACD(t) - Signal(t-1))α_signal = 2 / (n_signal + 1)
Ponownie, EMA sygnału wymaga metody inicjalizacji.
5) Obliczanie histogramu
Histogram podkreśla odległość między linią MACD a jej linią sygnałową:
Histogram(t) = MACD(t) - Signal(t)
Jeśli histogram jest dodatni, MACD znajduje się powyżej sygnału; jeśli ujemny, MACD znajduje się poniżej sygnału.
Podsumowanie parametrów
Obliczanie MACD zależy od trzech głównych długości:
n_fast(długość szybkiej EMA)n_slow(długość wolnej EMA)n_signal(długość EMA sygnału)
Zależy również od:
- wybranej serii cenowej
P_t - sposobu inicjalizacji EMA w Twojej implementacji
- częstotliwości próbkowania danych
Dowód lub przykład, który możesz zweryfikować
Poniżej znajduje się ogólny przykład liczbowy przy użyciu prostych założeń, abyś mógł go odtworzyć.
Założenie:
- Użyj krótkiej serii cenowej w czasach
t = 1..6 - Użyj
n_fast = 3,n_slow = 6,n_signal = 2 - Użyj rekurencji EMA z pewną inicjalizacją (musisz wybrać jedną, a następnie konsekwentnie się jej trzymać)
Wybierz wejściową serię cenową (przykładowe wartości):
P_1, P_2, P_3, P_4, P_5, P_6
Krok A: oblicz α_fast = 2/(3+1) = 0.5 oraz α_slow = 2/(6+1) ≈ 0.2857.
Krok B: wartości początkowe.
- Jednym ze sposobów jest
EMA_fast(1) = P_1orazEMA_slow(1) = P_1.
Krok C: iteruj do przodu dla t = 2..6:
EMA_fast(t) = EMA_fast(t-1) + 0.5*(P_t - EMA_fast(t-1))EMA_slow(t) = EMA_slow(t-1) + 0.2857*(P_t - EMA_slow(t-1))
Krok D: linia MACD:
MACD(t) = EMA_fast(t) - EMA_slow(t)dla każdegot.
Krok E: sygnał:
α_signal = 2/(2+1) = 2/3 ≈ 0.6667- Wybierz
Signal(1) = MACD(1)(lub inną spójną inicjalizację), a następnie iteruj:Signal(t) = Signal(t-1) + 0.6667*(MACD(t) - Signal(t-1))
Krok F: histogram:
Histogram(t) = MACD(t) - Signal(t).
Co powinieneś zauważyć podczas obliczeń:
- Zmiana
n_fast,n_slowlubn_signalzmienia wygładzenie i opóźnienie linii MACD i sygnałowej. - Histogram nie jest niezależnym szeregiem; jest matematycznie wyprowadzony z MACD i sygnału.
Jeśli obliczony przez Ciebie MACD różni się od narzędzia wykresowego, najczęstszymi przyczynami są inicjalizacja EMA, różne pola cenowe (zamknięcie vs typowa cena) lub różna interpretacja parametrów.
Ograniczenia i ryzyka (istotne tryby awarii)
1) Różnice w inicjalizacji EMA
Ponieważ EMA wymagają wartości początkowej, różne oprogramowanie może generować nieco inne wartości MACD na początku szeregu. Może to przenosić się na EMA sygnału i histogram, zwłaszcza w przypadku krótkich zestawów danych.
2) Wrażliwość na parametry
MACD zależy bezpośrednio od n_fast, n_slow i n_signal. Niewielkie zmiany mogą wpłynąć na:
- amplitudę (jak duże wyglądają wartości)
- czas reakcji (jak szybko reaguje MACD)
- częstotliwość punktów zwrotnych
Dlatego porównywanie wartości MACD dla różnych zestawów parametrów może być mylące.
3) Wybór serii cenowej i częstotliwości czasowej
MACD jest obliczany na podstawie określonej serii wejściowej P_t i próbkowany w danym interwale. Jeśli obliczysz MACD dla innej definicji ceny lub innego interwału czasowego, wynikowe wartości wskaźnika nie będą się zgadzać.
4) Używanie MACD w regułach nie eliminuje niepewności
Nawet jeśli wskaźnik jest obliczany poprawnie, przekształcenie tych wartości w decyzje wprowadza niepewność. Rzeczywiste wyniki w środowisku na żywo zależą od wielu czynników spoza wzoru MACD (na przykład jakości wykonania, warunków rynkowych i kosztów operacyjnych). Historyczne zależności nie gwarantują przyszłych wyników.
Weryfikacja i co sprawdzić dalej
Aby niezależnie zweryfikować, czy Ty (lub dostawca) poprawnie obliczacie MACD, możesz to zrobić bez polegania na poradach handlowych:
- Potwierdź dokładną wejściową serię cenową (na przykład zamknięcie) i częstotliwość danych.
- Potwierdź wartości parametrów dla szybkiej EMA, wolnej EMA i EMA sygnału.
- Przelicz EMA przy użyciu tego samego podejścia do inicjalizacji, które Twoim zdaniem stosuje implementacja.
- Oblicz
MACD = EMA_fast − EMA_slow, następnie obliczSignaljako EMA zMACD, a na końcu obliczHistogram = MACD − Signal.
Następne pytanie, które warto wyjaśnić w każdej dyskusji o „strategiach MACD”: jaka logika reguł jest stosowana na podstawie wartości MACD (na przykład jakie porównania lub warunki histogramu)? Obliczenie jest deterministyczne przy danych wejściowych, podczas gdy warstwa strategii określa, jak te wartości są interpretowane.