Backtesting to symulacja wyników wcześniej określonych reguł handlu na danych historycznych, przy wybranym modelu realizacji zleceń i kosztów.
Piotr zauważa, że po wzrostowym dniu czasem następuje kolejny wzrost. Zamiast kupować na wyczucie, zapisuje regułę i sprawdza ją na dawnych cenach. Na tym polega Backtesting: badaniu pomysłu na przeszłości. Wynik opisuje wybrany model, a nie pieniądze rzeczywiście zarobione przez Piotra. Bailey et al. wyjaśniają, dlaczego atrakcyjny wynik historyczny trzeba odróżnić od wiarygodnej weryfikacji strategii. [1]
Piotr może używać tylko informacji dostępnych przed transakcją. Jeśli reguła korzysta z ceny zamknięcia dnia, nie może na jej podstawie kupić już tego samego ranka. QuantConnect nazywa ten błąd Look-ahead Bias: przyszła informacja trafiła do dawnej decyzji. Liczy się data publikacji danych, nie tylko okres, którego dotyczą; późniejsze korekty również nie były jeszcze znane. Nasz przykład wykorzystuje więc zakończone wcześniejsze ceny zamknięcia i dopiero następne otwarcie. [2]
Wybór wyłącznie rynków lub firm istniejących do dziś tworzy kolejne zniekształcenie. QuantConnect nazywa je Survivorship Bias i pokazuje problem na historycznym użyciu dzisiejszego składu indeksu. Przy danych Bitcoina ważne są też giełda, przerwy w działaniu i sposób wyliczania cen. Kurs z jednej usługi nie musi być osiągalny w innej. Błędy można poprawiać, zachowując ślad zmian; usuwanie niewygodnych spadków zmieniłoby badane pytanie. [2]
Program musi ustalić, kiedy, po jakiej cenie i w jakiej ilości zrealizuje zlecenie. Służą do tego modele realizacji opisane przez QuantConnect. Dotknięcie ceny na wykresie nie dowodzi, że cała ilość mogła zostać po niej kupiona. Rzeczywiste zlecenia mogą być realizowane częściowo; gotowe modele tej platformy zakładają w backtestach pełną realizację. Trzeba też sprawdzić aktualność ceny i płynność, czyli możliwość znalezienia drugiej strony transakcji. [3]
Slippage to różnica między oczekiwaną a uzyskaną ceną realizacji; może pomóc albo zaszkodzić. QuantConnect opisuje jej modelowanie. Dochodzą prowizje oraz, jeśli występują, finansowanie i inne koszty strategii. Kosztu zawartego już w cenie nie wolno odejmować ponownie. Zerowy Slippage jest założeniem, nie ustaleniem dotyczącym prawdziwego rynku. Powtórzenie testu z gorszą realizacją i wyższymi kosztami pomaga ocenić, czy wniosek nadal się broni. [4]
Jeśli Piotr dopasowuje regułę do danych, na których ocenia jej sukces, zdaje egzamin ze znanymi odpowiedziami. Najpierw wyznacza więc starsze dane do opracowania strategii i późniejsze do sprawdzenia. TimeSeriesSplit z biblioteki scikit-learn pomaga utrzymać tę kolejność. Sam nie zapobiega jednak przeciekom informacji przy przygotowaniu danych, nakładaniu się okresów docelowych ani wielokrotnemu strojeniu. Zmiana reguły po zobaczeniu wyniku weryfikacji oznacza, że także te dane wykorzystano do jej opracowania. [5]
Wśród wielu ustawień jedno może wyglądać znakomicie przypadkiem. Pokazanie tylko zwycięzcy ukrywa liczbę prób. Bailey et al. analizują Backtest Overfitting: dopasowanie strategii do szczególnych cech konkretnej historii. Zapisuj parametry, okresy i rynki, które sprawdzono, nie tylko najlepszą krzywą. Autorzy proponują odrębną procedurę szacowania prawdopodobieństwa tego problemu; prosty podział danych jej nie zastępuje, a nasz przykład nie oblicza takiego oszacowania. [1]
Rzetelny raport pozwala odtworzyć dane, wersję reguł, transakcje, koszty i okresy strat. Strategię porównawczą trzeba oceniać przy porównywalnych założeniach. Amerykańska NFA podkreśla również korzyść z wiedzy po fakcie i brak doświadczenia rzeczywistej straty w wynikach hipotetycznych; jej reguły reklamowe obejmują określonych członków. Backtest pomaga odrzucić pomysł lub zbadać go dokładniej. Nawet poprawne obliczenia nie dowodzą, że zadziała on na innym rynku lub w rzeczywistym handlu. [6]
Reguła do sprawdzenia ręcznie
Pełniejszy obraz uzyskasz, czytając to hasło razem z Trading Plan, Trading Journal, Slippage, Overfitting, Walk-forward Analysis. Do tego hasła prowadzą również odsyłacze z Technical analysis, OHLCV, Timeframe, Candlestick chart.
01Czy zyskowny backtest oznacza, że zarobię na strategii?+
Pokazuje zysk tylko dla wybranych danych historycznych i określonych założeń. Sprawdź dostępność informacji, realizację, koszty i liczbę poprzedzających wariantów. Nawet niezależna weryfikacja historyczna nie gwarantuje przyszłych wyników.
02Czy wystarczy odjąć wszystkie prowizje na końcu?+
Tylko jeśli odpowiada to modelowi, a bieżące koszty nie zmieniłyby dostępnych środków ani decyzji. Zwykle koszt należy przypisać do odpowiedniej transakcji. Realizację i opłaty trzeba ująć bez pomijania i podwójnego naliczania.