22 sierpnia 2026 · badania

Dlaczego otwarte zlecenia w backteście potrzebują zegara

Dlaczego otwarte zlecenia w backteście potrzebują zegara

Strategia składa zlecenie z limitem o 10:00. Sygnał zmienia się o 10:03. Backtest po cichu zastępuje zlecenie o 10:04, a następnie zalicza realizację o 10:05. W handlu papierowym pierwotne zlecenie może nadal oczekiwać na realizację na giełdzie. Jeśli zostanie zrealizowane, gdy zastępcze zlecenie też jest aktywne, strategia ma 2 zlecenia i 1 model pozycji, który udaje, że było tylko 1.

Otwarte zlecenia potrzebują własnego stanu i zegara. Backtest powinien wiedzieć, kiedy każde zlecenie zostało złożone, kiedy można je anulować, czy anulowanie dotarło na giełdę oraz co się dzieje, gdy realizacja następuje równocześnie z anulowaniem. 3 uproszczenia regularnie zacierają te fakty.

Błąd 1: Traktowanie nowego sygnału jak natychmiastowego anulowania

Wiele backtestów przelicza docelową pozycję przy każdym słupku, a następnie zastępuje oczekujące zlecenie tym, czego chce najnowszy sygnał. W ten sposób zlecenie znika dokładnie wtedy, gdy strategia zmienia zdanie. Rzeczywiste giełdy tak nie działają. Żądanie anulowania wymaga czasu, a zlecenie może zostać wykonane, zanim giełda je przetworzy.

Rozważmy zlecenie kupna z limitem 100 akcji po $50.00. O 10:03 sygnał słabnie, więc strategia wysyła żądanie anulowania. O 10:03:00.080 zlecenie zostaje zrealizowane na 60 akcji; anulowanie zostaje potwierdzone o 10:03:00.110. Pozostałe 40 akcji zostaje anulowane, ale pozycja obejmuje już 60 akcji. Backtest oparty na słupkach, który usuwa zlecenie o 10:03, może wykazać 0. Jeśli zakłada natychmiastowe anulowanie, a mimo to odnotowuje późniejszą realizację, tworzy ekspozycję w przeciwnym kierunku.

Śledź jawnie cykl życia zlecenia: złożone, potwierdzone, częściowo zrealizowane, oczekujące na anulowanie, anulowane lub w pełni zrealizowane. Zachowuj realizacje, które nastąpiły przed potwierdzeniem anulowania. W symulacji na grubych słupkach wybierz i ujawnij konserwatywną regułę kolejności, gdy oba zdarzenia mogły nastąpić w obrębie jednego słupka.

Błąd 2: Bezterminowe utrzymywanie oczekującego zlecenia

Zlecenie z limitem ustalonym na podstawie sygnału z 10:00 może się zdezaktualizować, nawet jeśli sygnał nie ma jawnej reguły wyjścia. Arkusz zleceń się zmienia, zmienia się zmienność, a rynkowa wycena instrumentu może dryfować. Symulator, który utrzymuje zlecenie do realizacji, może jednak odnotować ją dopiero po kilku miesiącach i przypisać do tezy, która dawno straciła aktualność.

Ustal politykę ważności zleceń odpowiednią dla strategii. Sygnał 1-minutowy może korzystać z wygaśnięcia po 30 sekundach, a dzienny rebalancing może utrzymywać zlecenie do zamknięcia sesji. To wybory dotyczące strategii, a nie uniwersalne ustawienia domyślne. Jeśli strategia aktualizuje cenę przy każdym słupku, modeluj sekwencję anulowania i zastąpienia, zamiast magicznie przenosić zlecenie na nową cenę.

Polityka zleceniaTypowe zastosowaniePytanie do backtestu
Natychmiastowe wykonanie lub anulowaniePobierz dostępną płynność, a potem zakończJaka część mogła zostać zrealizowana w chwili złożenia?
Krótki termin ważnościSzybki sygnał z krótkim oknem realizacjiCzy zlecenie było nadal ważne, gdy cena wróciła?
Do końca sesjiWolny rebalancing lub zamiar udziału w aukcji zamknięciaCzy giełda rzeczywiście obsługuje taki czas ważności?

Błąd 3: Uznawanie każdego dotknięcia ceny za realizację

Jeśli minimum świecy sięga ceny kupna z limitem, zlecenie niekoniecznie zostało zrealizowane. Przed nim mogły znajdować się inne zlecenia w kolejce, wolumen obrotu po tej cenie mógł być niewielki albo krótka transakcja mogła nastąpić, zanim zlecenie dotarło na rynek. Nieaktualny model zleceń często łączy wszystkie 3 błędy: utrzymuje zlecenie zbyt długo, zakłada, że było pierwsze w kolejce, a potem przyznaje pełną realizację po samym dotknięciu ceny.

Co najmniej wyklucz realizacje przed czasem dotarcia zlecenia i ogranicz symulowaną ilość do wiarygodnego wolumenu obrotu po cenie limitu. W strategiach, w których liczy się miejsce w kolejce, korzystaj z danych o transakcjach i arkuszu zleceń albo z celowo konserwatywnego modelu kolejki. Realizacja oparta na dotknięciu ceny nadal może się przydać do wstępnej selekcji, ale oznacz ją jako optymistyczne przybliżenie i porównaj z bardziej rygorystycznym założeniem.

Praktyczny audyt: zapisuj dla każdego zlecenia czas utworzenia, okres aktywności, żądanie i potwierdzenie anulowania, czas realizacji, zrealizowaną ilość oraz pozostałą ilość. Następnie odtwórz kilka transakcji w pobliżu odwrócenia sygnału. Jeśli nie potrafisz wyjaśnić, dlaczego każde zlecenie nadal było aktywne w chwili realizacji, trzeba poprawić sposób liczenia realizacji w backteście.

Modeluj zlecenie, które zamierzasz testować w handlu papierowym

Stan zlecenia łączy intencje strategii z jej rzeczywistą ekspozycją. Pozycja powinna zmieniać się w wyniku realizacji, a nie docelowych wartości sygnału czy żądań anulowania. Zastąpienia powinny pozostawiać możliwą do skontrolowania historię, a częściowe realizacje powinny przechodzić do kolejnej decyzji. Backtest staje się przez to bardziej złożony, ale porównanie z handlem papierowym nabiera sensu: oba systemy mogą różnić się w realizacji zleceń z możliwych do ustalenia powodów.

Gdy model zleceń jest niepewny, uwzględnij tę niepewność w wynikach. Symuluj zlecenia krótko i długo ważne, zmieniaj opóźnienie anulowania i pokaż, jak bardzo wyniki zależą od optymistycznych założeń dotyczących kolejki. Strategia może być dobra. Jej pozorna przewaga może też wynikać z odsetek zarobionych na zleceniu, które rzeczywisty system anulowałby kilka godzin wcześniej.

zarządzanie zleceniamibacktestingrealizacjahandel papierowy
← Wszystkie wpisy