Wiersz danych rynkowych może być całkowicie dokładny, a mimo to nie nadawać się na podstawę backtestu. Transakcja się odbyła, cena jest prawidłowa, a znacznik czasu poprawny; jednak strumień mógł dostarczyć dane z opóźnieniem, dostawca mógł je później skorygować albo notowany rynek mógł być niedostępny dla Twojej strategii.
Aby ustalić, czy na danych historycznych można było handlować, sprawdź więcej niż tylko znacznik czasu zdarzenia. Musisz wiedzieć, co opisuje dany wiersz, kiedy system uzyskał do niego dostęp, jaki rynek lub instrument przedstawia oraz czy kwotowanie lub transakcja mogły stanowić wiarygodną podstawę dla Twojego zlecenia.
Czy prawidłowa cena historyczna wystarczy do backtestu?
Nie. Dokładność odpowiada na pytanie: „Jaką cenę źródło ostatecznie zarejestrowało?”. Backtest musi też odpowiedzieć na pytania: „Co moja strategia mogła wiedzieć w chwili podejmowania decyzji?” i „Co mogła zrealizować?”. To odrębne kwestie.
Wyobraź sobie, że transakcja na rynku kryptowalut zostaje zawarta o 12:00:00.120, ale strumień dostawcy danych dociera do Twojego procesu o 12:00:00.480. Strategia podejmująca decyzję o .200 nie może wykorzystać tej transakcji, mimo że jej znacznik czasu poprzedza decyzję. Jeśli plik historyczny zachowuje tylko czas zdarzenia, backtest może po cichu przyznać strategii dostęp do informacji, których jej działający na żywo proces jeszcze nie otrzymałby.
| Czas lub pole | Co nam mówi | Błąd backtestu w razie braku |
|---|---|---|
| Czas zdarzenia | Kiedy według giełdy zdarzenie miało miejsce | Pomylenie czasu rynkowego z dostępnością danych dla strategii |
| Czas odbioru | Kiedy kolektor otrzymał komunikat | Użycie opóźnionych danych tak, jakby docierały natychmiast |
| Numer sekwencyjny lub ID aktualizacji | Miejsce zdarzenia w kolejności strumienia | Zastosowanie aktualizacji w złej kolejności lub ich ciche pominięcie |
| Czas korekty | Kiedy skorygowana wartość historyczna stała się znana | Backtest z użyciem wartości, której nie było w pierwotnym strumieniu |
Jeśli archiwum nie zawiera czasów odbioru, uczciwie opisz ten brak. Możesz przetestować założenie dotyczące opóźnienia albo ograniczyć wnioski do analiz opartych na czasie zdarzenia. Nie odtworzysz dokładnego zbioru informacji na podstawie znaczników czasu, których nigdy nie zapisano.
Jak sprawdzić, czy kwotowanie pozwalało na realizację zlecenia?
Zacznij od rynku, na który trafiłoby Twoje zlecenie. Zbiorcza najlepsza oferta kupna i sprzedaży może podsumowywać kilka rynków; nie dowodzi jednak, że Twoje konto miało dostęp do widocznej wielkości zlecenia, że kwotowanie nadal obowiązywało w chwili dotarcia zlecenia ani że dany rynek przyjąłby Twój typ zlecenia.
W przypadku zlecenia rynkowego realizacja po cenie środkowej to zwykle fikcja. Lepsze oszacowanie uwzględnia kolejne poziomy widocznego arkusza zleceń w zależności od wielkości zlecenia, a następnie dolicza opłaty i zakłada opóźnienie lub wpływ na rynek. Jeśli masz tylko dane z najlepszej oferty kupna i sprzedaży, ogranicz wnioski: możesz oszacować realizację na pierwszym poziomie, ale nie wywnioskujesz głębokości, której nigdy nie zapisano.
W przypadku zlecenia z limitem dotknięcie ceny nie oznacza realizacji. Zlecenia przed Twoim mogą najpierw wyczerpać dostępną ilość. Na podstawie zwykłych migawek zazwyczaj nie da się ustalić pozycji w kolejce, dlatego regułę realizacji opartą na dotknięciu ceny należy traktować jako optymistyczny scenariusz, a nie opis tego, co faktycznie się wydarzyło.
Świeca 1-minutowa może pokazać, że minimum przebiło cenę Twojego zlecenia z limitem. Nie powie jednak, czy Twoje oczekujące zlecenie dotarło na rynek przed osiągnięciem tego minimum, jaka ilość została tam zawarta ani ile zleceń w kolejce było przed Twoim.
Co sprawdzić, zanim zaufam archiwum danych rynkowych?
Najpierw sprawdzam podstawowe kwestie. Wykrywają więcej błędów w badaniach niż zaawansowany model realizacji dołączony do wadliwego strumienia danych.
- Kompletność: Czy brakuje przedziałów czasu, są zduplikowane zdarzenia lub luki w sekwencji albo niewyjaśnione serie zerowego wolumenu?
- Tożsamość rynku: Czy symbol przez cały badany okres odpowiada tej samej giełdzie, kontraktowi, walucie kwotowanej i specyfikacji instrumentu?
- Dostępność: Czy zapisano zarówno czasy zdarzeń, jak i odbioru? Jeśli nie, jakie założenie dotyczące opóźnienia ogranicza wynik?
- Korekty: Czy można odróżnić pierwotny komunikat od późniejszych uzupełnień lub korekt dostawcy?
- Jednostki: Czy ceny, ilości, mnożniki kontraktów i znaczniki czasu są interpretowane spójnie?
Ta ostatnia kontrola brzmi niemal banalnie. Kiedyś przez cały poranek szukałem przyczyny pozornej zmiany reżimu zmienności, która okazała się wynikiem zmiany jednostek pola ilościowego po migracji strumienia. Wykres był piękny, ale jednostka się nie zgadzała.
Jak sprawdzić, czy dostępność danych wpływa na wynik?
Przeprowadź niewielki test wrażliwości w okolicy progu decyzyjnego strategii. Przesuń dostępność danych o realistyczne opóźnienia, odrzuć aktualizacje z przerwaną ciągłością sekwencji i porównaj realizacje, korzystając z arkusza z właściwego rynku, jeśli nim dysponujesz. Podaj zarówno wynik pierwotny, jak i pogorszony. Jeśli niewielkie opóźnienie niweluje efekt, strategia może zależeć od przewagi informacyjnej, której Twoja infrastruktura nie jest w stanie niezawodnie zapewnić.
Oto konkretny przykład: sygnał pojawia się, gdy najlepsza oferta kupna rośnie o jeden tick. Odtwórz go raz, korzystając z czasu zdarzenia giełdowego, a drugi raz z czasu odbioru przez kolektor. Jeśli wersja oparta na czasie zdarzenia generuje 40 transakcji, a wersja oparta na czasie odbioru 27, ta różnica jest częścią dowodów na skuteczność strategii. Wyniki każdej wersji również. Nie pomijaj słabszej wersji tylko dlatego, że jej dane wyglądają mniej elegancko.
Paper trading to przydatny kolejny krok, bo ujawnia opóźnienia strumienia, nieaktualne kwotowania, błędy w mapowaniu symboli i ograniczenia rynku w tej samej ścieżce operacyjnej, z której korzysta system badawczy. Nadal nie odwzoruje każdej kolejki zleceń ani wpływu na rynek. Pamiętaj o tych ograniczeniach.
Co w praktyce oznaczają „dane, na których można handlować”?
Oznacza to, że backtest pozwala ustalić, kiedy doszło do obserwacji, kiedy strategia mogła z niej skorzystać, z jakiego rynku pochodziła oraz jakie dowody dotyczące realizacji uzasadniają przyjęte założenia. Czysty szereg cen to punkt wyjścia. Badanie staje się wiarygodne, gdy jego założenia dotyczące czasu, dostępu i realizacji zleceń wytrzymują kontrolę — a wynik nadal ma sens, gdy je zaostrzysz.
← Wszystkie wpisy


