Jak obliczana jest WMA (średnia ważona)
Bezpośrednia odpowiedź: czym jest WMA i jak jest obliczana?
WMA zazwyczaj oznacza Weighted Moving Average (średnią ważoną). Jest to średnia krocząca, w której nowsze obserwacje mają większy wpływ (lub, bardziej ogólnie, każda obserwacja otrzymuje określoną wagę). Obliczenie wykorzystuje okno najnowszych punktów danych i tworzy pojedynczą uśrednioną wartość.
Standardowy wzór dyskretny to:
WMAₜ = ( Σᵢ₌₀^(n−1) [ wᵢ · x₍ₜ−i₎ ] ) / ( Σᵢ₌₀^(n−1) wᵢ )
Gdzie:
- t to bieżący indeks/krok czasowy.
- n to długość okna (liczba użytych przeszłych punktów).
- x₍ₜ−i₎ to wartości danych (na przykład ceny) w momentach t, t−1, …, t−(n−1).
- wᵢ to wagi przypisane do każdej pozycji w oknie.
W wielu konwencjach wykresów wybiera się wagi tak, aby większe w odpowiadały nowszym punktom, ale dokładny kierunek ważenia zależy od tego, jak zdefiniujesz i.
Mechanika: parametry, dane wejściowe i przykład
1) Jakie dane wejściowe są potrzebne?
Do obliczenia WMA potrzebujesz:
- Szeregu czasowego: sekwencji wartości xₜ obserwowanych w stałych odstępach czasu.
- Rozmiaru okna n: liczby najnowszych punktów uwzględnionych w obliczeniach.
- Reguły wag: zestawu wag w₀ … wₙ₋₁. Wagi są często dodatnie, ale ogólna idea jest taka: wagi kontrolują wpływ.
Kluczowym wymogiem jest jasne określenie wag i ich przypisania do czasu. Na przykład musisz wiedzieć, czy w₀ jest stosowane do bieżącej wartości xₜ, czy do najstarszej wartości x₍ₜ−(n−1)₎.
2) Czym WMA różni się od prostej średniej kroczącej?
Prosta średnia krocząca (SMA) traktuje wszystkie punkty jednakowo (wszystkie wagi są takie same). WMA zmienia mechanikę, pozwalając wagom różnić się w obrębie okna.
Oznacza to, że dwa obliczenia WMA z tym samym n mogą dać różne wyniki, jeśli zastosujesz różne reguły wag.
3) Przykład liczbowy (z jawnymi założeniami)
Załóżmy:
- Długość okna n = 3
- Wartości danych w momentach t, t−1, t−2: xₜ = 10, x₍ₜ−1₎ = 12, x₍ₜ−2₎ = 14
- Wagi rosną dla nowszych punktów. Używając powyższego wzoru, gdzie w₀ mnoży xₜ, wybierz wagi w₀ = 3, w₁ = 2, w₂ = 1.
Oblicz sumę ważoną:
- Licznik = (3·xₜ) + (2·x₍ₜ−1₎) + (1·x₍ₜ−2₎)
- Licznik = (3·10) + (2·12) + (1·14)
- Licznik = 30 + 24 + 14 = 68
Suma wag:
- Mianownik = 3 + 2 + 1 = 6
Zatem:
- WMAₜ = 68 / 6 ≈ 11.33
Jeśli zmienisz wagi (na przykład uczynisz je bardziej skrajnymi), wynik przesunie się w kierunku punktów o największej wadze.
4) Częste praktyczne wyjaśnienie: „średnia” działa tylko z mianownikiem
Niektóre implementacje skutecznie normalizują wagi (dzielą przez sumę wag). Powyższy wzór robi to jawnie za pomocą Σwᵢ.
Jeśli pominiesz normalizację, wynik będzie sumą ważoną, a nie średnią. To rozróżnienie ma znaczenie przy porównywaniu wartości WMA dla różnych rozmiarów okien lub zestawów wag.
Ograniczenia i tryby awarii: co może pójść nie tak
1) Wybór wag zmienia zachowanie
WMA nie jest stałym „jedynym prawdziwym obliczeniem”. Długość okna n i reguła wag wᵢ określają wynik.
- Jeśli wagi są zbyt skoncentrowane, WMA może silnie reagować na krótkoterminowy szum.
- Jeśli wagi są zbyt wyrównane, WMA zbliża się do zachowania SMA i może bardziej opóźniać.
2) Częstotliwość danych i wyrównanie czasowe mają znaczenie
WMA zakłada, że sekwencja jest wyrównana do stałych kroków czasowych. Jeśli dane zawierają brakujące punkty, nieregularne próbkowanie lub przypadkowo mieszasz różne rozdzielczości czasowe, indeksy t, t−1, … nie będą już reprezentować równych odstępów czasu. Może to zniekształcić interpretację średniej kroczącej.
3) Efekty brzegowe: pierwsze okna są niezdefiniowane (lub obsługiwane inaczej)
Dla czasu t mniejszego niż n−1 nie ma wystarczającej liczby przeszłych obserwacji, aby wypełnić okno. Implementacje radzą sobie z tym na różne sposoby (na przykład nie zwracając wartości, używając mniejszego efektywnego okna lub opóźniając start). Dlatego, aby odtworzyć wyniki, musisz dopasować tę samą konwencję startu/inicjalizacji.
4) Szum, koszty i wykonanie mogą dominować w rzeczywistych kontekstach handlowych
Chociaż WMA jest obliczeniem deterministycznym, jej użycie w podejmowaniu decyzji może być zaburzone przez czynniki ze świata rzeczywistego, takie jak koszty transakcyjne, rewizje danych oraz sposób próbkowania/wykonywania wartości. Historyczne zależności nie oznaczają automatycznie, że przyszłość będzie zachowywać się podobnie, zwłaszcza gdy zmieniają się reżimy zmienności.
Weryfikacja i kolejne pytanie: jak sprawdzić swoje obliczenia
Aby niezależnie zweryfikować poprawność obliczeń WMA:
- Zapisz wybrane n, swoją listę wag wᵢ oraz przypisanie każdej wagi do konkretnej pozycji w czasie.
- Jawnie oblicz licznik Σ(wᵢ·x₍ₜ−i₎) i mianownik Σwᵢ.
- Potwierdź, że Twoja implementacja dzieli przez sumę wag (normalizacja).
- Przetestuj co najmniej jeden krok czasowy na małych, ręcznie sprawdzalnych liczbach (jak w powyższym przykładzie), zanim zaufasz wynikom na dużych zbiorach danych.
Jeśli chcesz, następnym krokiem jest porównanie, jak różne reguły wag zmieniają WMA w stosunku do powiązanych średnich (na przykład prostej vs ważonej) oraz wyjaśnienie, jak ustawienia takie jak długość okna zmieniają wynik.