Jak obliczany jest DPO: wzór, dane wejściowe i weryfikacja
Bezpośrednia odpowiedź
DPO (Detrended Price Oscillator) jest obliczany poprzez pobranie wartości serii cenowej z „teraz” i odjęcie wartości średniej kroczącej przesuniętej wstecz w czasie. Dokładny wynik zależy od dwóch parametrów wybranych przez użytkownika: długości średniej kroczącej oraz przesunięcia (często wyprowadzanego z długości średniej kroczącej).
Typowy sposób wyrażenia mechanizmu to:
- Oblicz średnią kroczącą wybranej serii cenowej dla wybranej długości, oznaczonej jako L.
- Oblicz przesunięcie, oznaczone jako offset (często offset = floor(L/2) + 1 w wielu definicjach DPO).
- Dla każdego indeksu czasowego t oblicz
- DPO(t) = Cena(t) − MA(t − offset)
Mówiąc wprost: porównujesz bieżącą cenę z tym, gdzie jej „punkt odniesienia” średniej kroczącej znajdował się wcześniej, skutecznie usuwając (odłączając) długoterminowy składnik trendu.
Mechanizm i definicja
Co oznacza tutaj „pozbawiony trendu”
„Pozbawiony trendu” w DPO nie oznacza przeprowadzania statystycznej regresji trendu. Zamiast tego DPO wykorzystuje odejmowanie i przesunięcie w czasie. Średnia krocząca reprezentuje wygładzoną wersję ceny dla długości L. Przesuwając tę wartość średniej kroczącej wstecz, DPO stara się wyizolować składnik cykliczny wokół zera.
Dane wejściowe, które musisz wybrać
Aby obliczyć DPO, potrzebujesz:
- Serii cenowej: na przykład cen zamknięcia z każdego okresu. Twoje obliczenia zależą od tego, której ceny użyjesz.
- Metody średniej kroczącej: zazwyczaj prostej średniej kroczącej (SMA), chociaż niektóre implementacje używają innych średnich kroczących.
- Długości średniej kroczącej (L): liczby okresów używanych do obliczenia średniej kroczącej.
- Przesunięcia (offset): przesunięcia czasowego zastosowanego do średniej kroczącej. Wiele opisów używa offset = floor(L/2) + 1, ale implementacje się różnią, więc powinieneś potwierdzić definicję używaną przez Twoje dane lub platformę.
Krok po kroku (z jawnym założeniem)
Załóżmy, że używasz:
- Cena = Zamknięcie(t)
- Średnia krocząca = SMA dla L okresów
- Przesunięcie = offset = floor(L/2) + 1
Następnie:
- Oblicz SMA(t) dla każdego czasu t, dla którego istnieje wystarczająca historia:
- SMA(t) = (1/L) * suma_{i=0..L-1} Zamknięcie(t − i)
- Dla danego czasu t, dla którego istnieje SMA(t − offset), oblicz:
- DPO(t) = Zamknięcie(t) − SMA(t − offset)
To czyni wymóg dotyczący danych jawnym: nie możesz obliczyć DPO, dopóki nie masz co najmniej L + offset okresów historii.
Dowód lub przykład (do samodzielnego sprawdzenia)
Przykład z małym, hipotetycznym zbiorem danych
Załóżmy, że:
- L = 5
- offset = floor(5/2) + 1 = 3
- cena to Zamknięcie
- średnia krocząca to SMA
W indeksie czasowym t:
- Obliczasz SMA(t − 3) używając zamknięć od (t − 3) wstecz do (t − 3 − 4), czyli łącznie 5 wartości.
- Następnie odejmujesz tę SMA od Zamknięcie(t).
Zatem DPO nie jest „Zamknięcie(t) − SMA(t)”. Różnica polega na przesunięciu: używasz SMA(t − offset).
Jak samodzielnie zweryfikować swoje obliczenia
Aby zweryfikować swoją implementację DPO bez polegania na wynikach platformy:
- Wybierz L i definicję offset, której będziesz używać.
- Oblicz serię średniej kroczącej MA(t) bezpośrednio ze swoich danych cenowych.
- Przesuń tę średnią kroczącą wstecz o offset, aby utworzyć MA_przesunięta(t) = MA(t − offset).
- Oblicz DPO(t) = Cena(t) − MA_przesunięta(t).
Jeśli Twoje wyniki się zgadzają, potwierdziłeś mechanikę obliczeń.
Ograniczenia i ryzyka (istotne tryby awarii)
1) Różnice w implementacji zmieniają wynik liczbowy
DPO jest łatwy do obliczenia, ale zasada przesunięcia, a czasami typ średniej kroczącej, mogą się różnić w zależności od definicji. Nawet jeśli wzór wygląda podobnie, zmiana offset o jeden okres może zmienić oscylator.
2) Dostępność danych tworzy okres „rozgrzewki”
Ponieważ DPO używa przesuniętej średniej kroczącej, potrzebujesz wystarczającej liczby punktów historycznych, aby obliczyć MA(t − offset). Wczesne wartości są niezdefiniowane lub zależą od tego, jak Twoje narzędzie obsługuje brakującą historię.
3) DPO może zachowywać się nieprzewidywalnie, gdy założenie cykliczności się załamuje
DPO jest często interpretowany jako izolowanie zachowania cyklicznego wokół zera. Jeśli jednak dynamika cen się zmienia (na przykład zmienia się reżim zmienności lub zachowanie trendu), odejmowanie i przesunięcie mogą już nie izolować tego samego składnika. Może to prowadzić do błędnych interpretacji przecięć zera lub amplitudy oscylacji.
4) Koszty rynkowe i wykonanie mogą wpływać na każde zastosowanie w praktyce
Chociaż ten artykuł dotyczy obliczeń, ważne jest, aby zauważyć praktyczny tryb awarii: jeśli ktoś używa DPO do podejmowania decyzji, rzeczywiste wyniki są wpływane przez koszty transakcyjne, spread bid/ask i wykonanie. Te czynniki nie są częścią matematyki wskaźnika i mogą zdominować pozorny sygnał.
Weryfikacja lub kolejne pytanie
Przydatnym kolejnym krokiem jest porównanie dwóch niezależnych implementacji:
- jednej obliczonej ręcznie w arkuszu kalkulacyjnym przy użyciu DPO(t) = Cena(t) − MA(t − offset)
- i drugiej wygenerowanej przez wybrane narzędzie do tworzenia wykresów
Następnie sprawdź, czy Twoje narzędzie używa tego samego pola ceny, tego samego typu średniej kroczącej i tej samej definicji przesunięcia. Jeśli wyniki się różnią, najbardziej prawdopodobną przyczyną jest niezgodność definicji, a nie błąd matematyczny.
Jeśli chcesz, możesz również zbadać, jak różne wartości L zmieniają timing i wygładzenie oscylatora, ponieważ zachowanie DPO jest w dużym stopniu zależne od wybranych parametrów.