Jak można odpowiedzialnie przeprowadzić backtesting MACD?
Najpierw zdefiniuj MACD, potem zdefiniuj, co oznacza „backtesting”
MACD (Moving Average Convergence Divergence) to oscylator podążający za trendem, zbudowany na bazie średnich kroczących. W backtestingu nie testujesz „samego MACD” jako gwarancji przyszłego kierunku; testujesz regułę, która przekształca wartości MACD na mierzalne wyniki na danych historycznych.
Aby przeprowadzić backtesting odpowiedzialnie, zacznij od zapisania dokładnych mechanik, których będziesz używać:
- Typ średniej kroczącej i parametry używane do obliczania MACD (na przykład długości dwóch średnich kroczących i linii sygnałowej).
- Jak obliczasz linię MACD i linię sygnałową z tego samego szeregu cenowego.
- Czy testujesz na wartościach zamknięcia świecy, czy na przybliżeniach wewnątrzświecowych.
- Jak obsługujesz znaczniki czasu, brakujące dane i korekty typu corporate action (jeśli mają zastosowanie do Twojego źródła danych).
Praktyczna definicja „backtestingu” to: zastosowanie Twojej reguły decyzyjnej do danych historycznych w celu wygenerowania sekwencji hipotetycznych transakcji lub hipotetycznych wypłat, a następnie ocena ich za pomocą metryk uwzględniających koszty i założenia dotyczące wykonania.
Określ dane i założenia (co może najbardziej zmienić wyniki)
Większość możliwych do uniknięcia błędów wynika z niespójnego lub nierealistycznego przetwarzania danych. Ponieważ wyniki rynkowe są zmienne, potraktuj poniższe jako jawne założenia:
Zakres danych i próbkowanie
- Wybierz zakres czasowy i stałą częstotliwość próbkowania (na przykład świece dzienne). Mieszanie częstotliwości lub różne ponowne agregowanie danych między przebiegami może zniekształcić wyniki.
- Zdecyduj, czy wskaźniki są obliczane przy użyciu tego samego zamknięcia cenowego, którego później używasz do decyzji handlowych.
Błąd wyprzedzający i wyrównanie
- Upewnij się, że wartości wskaźników są dostępne w momencie podejmowania decyzji. Jeśli obliczasz wskaźnik przy użyciu informacji z tej samej świecy, na której „wchodzisz”, możesz przypadkowo wprowadzić błąd wyprzedzający.
- Stosuj spójną zasadę przesuwania sygnałów: jeśli Twoja decyzja opiera się na wskaźniku na koniec świecy t, Twoja symulowana akcja powinna nastąpić po świecy t.
Integralność danych
- Sprawdź luki, zduplikowane znaczniki czasu, nagłe zmiany w feedzie cenowym i wszelkie brakujące świece.
- Jeśli obliczasz wskaźniki z cen skorygowanych lub przekształconych, zapisz kroki transformacji.
Te wybory nie są kosmetyczne; zmieniają wartości MACD, które zasilają Twoją regułę, co zmienia całą ścieżkę backtestu.
Uwzględnij koszty i założenia dotyczące wykonania (tarcia mają znaczenie)
Nawet poprawna implementacja MACD może wyglądać na dochodową w backteście, który ignoruje tarcia. Odpowiedzialny backtesting obejmuje co najmniej trzy warstwy kosztów i jasno zdefiniowane zachowanie wykonawcze:
Rodzaje kosztów
- Koszty transakcyjne (prowizje, opłaty).
- Przybliżenia spreadu/wpływu na cenę (jak modelujesz różnicę między teoretyczną ceną decyzyjną a rzeczywistą ceną wykonania).
- Poślizg (jak wykonanie odbiega od zakładanej ceny).
Założenia dotyczące wykonania
- Zdecyduj, czy transakcje są realizowane po cenie decyzyjnej, po otwarciu następnej świecy, czy według innej konwencji. Udokumentuj to.
- Zdecyduj, czy ignorujesz częściowe wypełnienia, efekty księgi zleceń lub opóźnienia.
Ponieważ możesz nie znać dokładnego rzeczywistego wykonania, zamodeluj niepewność za pomocą testów wrażliwości (zmieniaj założenia dotyczące poślizgu/spreadu w rozsądnych zakresach, które uzasadnisz swoimi danymi i wiedzą o mikrostrukturze rynku). Celem nie jest „przewidywanie przyszłości”, ale sprawdzenie, czy wnioski przetrwają bardziej realistyczne założenia.
Dodaj kontrolę błędów, aby zmniejszyć nadmierne dopasowanie do historii
Wybory parametrów MACD i warianty reguł mogą przypadkowo „dopasować się” do szumu. Kontrola błędów pomaga to wykryć.
Separacja poza próbą
- Podziel dane na co najmniej dwie części: jedną do wyboru parametrów lub projektowania reguły i osobną do oceny.
- Jeśli dostrajasz parametry przy użyciu okresu oceny, Twoje wyniki mogą być mylące.
Testowanie kroczące (walk-forward)
- Zamiast używać jednego statycznego zestawu parametrów dla całej historii, zastosuj procedurę kroczącą lub etapową: dopasuj na oknie, przetestuj na następnym oknie, a następnie przesuń się dalej.
- Może to zmniejszyć ryzyko, że zestaw parametrów działa tylko w jednym okresie historycznym.
Unikaj wielokrotnego podglądania wyników
- Jeśli po zobaczeniu wyników wielokrotnie wprowadzasz zmiany w regule, w praktyce szukasz najlepszego rozwiązania wewnątrz swojego zestawu oceny.
- Kontroluj to, ustalając proces przed rozszerzoną oceną i używając zestawu oceny tylko raz na wersję.
Transparentność parametrów
- Prowadź dziennik dokładnie tych parametrów i progów, które wypróbowałeś, oraz dlaczego wybrałeś ostateczny.
Sprawdź co najmniej jedno istotne ograniczenie i tryb awarii
Odpowiedzialny backtesting powinien wprost uznawać, co może się zepsuć.