15 września 2026 · badania

Model poślizgu w backteście powinien celowo się mylić

Model poślizgu w backteście powinien celowo się mylić

Najuczciwszy model poślizgu często celowo się myli. Backtest, który podaje jeden precyzyjny koszt realizacji na podstawie zgrubnych danych historycznych, składa obietnicę, której te dane nie mogą uzasadnić.

Brzmi to jak argument za prymitywnymi założeniami. Jest wręcz przeciwnie: użyj prostego modelu, który potrafisz wyjaśnić, a potem spraw, by nie zgadzał się sam ze sobą. Jeśli strategia działa tylko przy jednym, dogodnie korzystnym szacunku ceny realizacji, ta niepewność również jest częścią wyniku.

Dlaczego precyzyjne oszacowanie poślizgu może wprowadzać w błąd?

Załóżmy, że masz jednominutowe świece OHLCV i składasz zlecenie rynkowe na 2,000 akcji. Świeca pokazuje zakres cen i łączny wolumen w ciągu minuty. Nie mówi jednak, jaki był bid i ask w chwili nadejścia zlecenia, ile zleceń czekało przed nim w kolejce, jak rozkładał się wolumen w ciągu minuty ani jaką jego część pochłonęłoby Twoje zlecenie.

Mimo to możesz przypisać poślizgowi konkretną wartość. Możesz założyć realizację po cenie otwarcia następnej świecy plus stały koszt wyrażony w punktach bazowych albo skalować koszt względem wielkości zlecenia i wolumenu świecy. To przydatne przybliżenia. Nie są to obserwacje. Podanie wyniku jako „poślizg: 3.2 punktu bazowego” sprawia, że wybór modelu wygląda jak pomiar.

Rozważmy konkretny przykład: strategia składa zlecenia na $20,000 na akcje spółki, której wolumen w kolejnej świecy wynosi $400,000. Udział zlecenia w wolumenie to 5%. Model naliczający 2 punkty bazowe oznacza koszt $4 na zlecenie, a model naliczający 10 punktów bazowych — $20. Przy 500 pełnych transakcjach różnica wynosi $16,000 przed prowizjami. Jeśli zysk brutto strategii w backteście to $18,000, założenie dotyczące realizacji ma niemal taki sam wpływ jak sygnał.

5%wielkość zlecenia jako część wolumenu kolejnej świecy
$16,000różnica kosztów przy 500 pełnych transakcjach i 2 vs. 10 punktach bazowych

Zbuduj przedział odzwierciedlający to, co widać w danych

Zacznij od scenariusza bazowego dopasowanego do typu zleceń strategii i rozdzielczości danych. Zlecenie rynkowe wymaga uwzględnienia spreadu i wpływu na cenę. W przypadku zlecenia limitowanego potrzebna jest reguła określająca, czy w ogóle zostanie zrealizowane; założenie, że realizowane są wszystkie zlecenia, których cena została osiągnięta, to odrębny błąd modelowania realizacji.

Następnie uruchom ten sam backtest dla kilku jawnie określonych scenariuszy. Utrzymaj sygnał, wielkość pozycji i znaczniki czasu bez zmian, by móc przypisać różnice realizacji zleceń:

ScenariuszZałożenie dotyczące realizacjiCo sprawdza
KorzystnySpread bazowy i niewielki wpływ na cenęJak bardzo strategia zależy od sprzyjających warunków handlu?
BazowyTypowy spread i wpływ na cenę skalowany udziałem w wolumenieCo wynika z przyjętego założenia roboczego?
NiekorzystnySzerszy spread, większy wpływ na cenę i opóźniona realizacjaCzy przewaga utrzymuje się na wiarygodnym, trudnym rynku?

To nie są przedziały ufności, chyba że zostały skalibrowane statystycznie. To testy scenariuszowe. Opisz w raporcie, co oznaczają, i nie uśredniaj ich do zmyślonego „oczekiwanego poślizgu”, jeśli nie masz dowodów na prawdopodobieństwo poszczególnych scenariuszy.

Spraw, by model reagował na zlecenie

Stała opłata wyrażona w punktach bazowych może być dobrym pierwszym przybliżeniem dla małych zleceń. Przy rosnącym udziale w wolumenie przestaje jednak dobrze opisywać sytuację. Zapisuj co najmniej wartość zlecenia, dostępny wolumen świecy i udział zlecenia w wolumenie. Jeśli strategia handluje kontraktami futures, zapisuj wartość kontraktu i odpowiednie jednostki wolumenu; jeśli handluje kryptowalutami na rynku spot, jasno określ walutę kwotowaną i platformę.

Prosta krzywa wpływu na cenę może pokazać presję na pojemność strategii, nie udając przy tym, że odtwarza arkusz zleceń. Możesz na przykład zdefiniować koszt jako bazową opłatę za spread plus składnik wpływu na cenę rosnący wraz z pierwiastkiem kwadratowym udziału zlecenia w wolumenie. Dopasuj parametry tylko wtedy, gdy masz odpowiednie dane o realizacji. W przeciwnym razie zmieniaj parametry i pokazuj, jak szybko pogarsza się wynik.

Nie pozwól też, by model realizacji po cichu ratował strategię. Sygnał kupna, który pojawia się po gwałtownym wzroście, nie powinien otrzymać najniższej ceny świecy tylko dlatego, że mieści się ona w jej zakresie. Stosuj przyczynową regułę realizacji, a następnie testuj gorszą cenę i opóźnienie. Jeśli opóźnione zlecenie nie zdąży wykorzystać ruchu, to wynik realizacji, a nie niedogodność do wygładzenia.

Przydatne pytanie: przy jakim spreadzie, wpływie na cenę, opóźnieniu lub udziale w wolumenie wynik netto spada do zera? Ten próg rentowności często mówi więcej w praktyce niż pojedynczy Sharpe z backtestu.

Wykorzystaj handel na rachunku demo, by zawęzić przedział

Handel na rachunku demo nie pokaże, jaką cenę uzyskałoby zlecenie w działającym systemie kojarzenia zleceń. Może jednak pomóc ustalić, czy strumień zleceń w backteście przypomina faktyczne decyzje systemu: kiedy generowane są zlecenia, jak są duże i jak długo pozostają aktywne.

Porównuj symulowaną cenę zlecenia z bieżącymi kwotowaniami lub innymi danymi rynkowymi zapisywanymi przez system demo. Śledź różnice w podziale na instrument, porę dnia, wielkość zlecenia i jego typ. Takie obserwacje mogą zawęzić założenia dla danego zestawu warunków. Nie można ich automatycznie przenosić na inną platformę, inny reżim rynkowy ani większe zlecenie.

Krytycy słusznie zauważają, że niekorzystne scenariusze mogą być arbitralne. Celowo surowy model może odrzucić działającą strategię, tak jak korzystny może upiększyć słabą. Nie uznawaj więc najostrzejszego scenariusza za prawdę. Opublikuj założenia, pokaż wrażliwość i zbieraj dane potrzebne, by zastąpić przypuszczenia skalibrowanymi szacunkami.

Backtest nie może ustalić historycznej pozycji w kolejce na podstawie świecy. Może jednak pokazać, czy pomysł nadal wygląda spójnie, gdy realizacja pogarsza się w sposób, którego nie da się wykluczyć na podstawie dostępnych danych. To bardziej przydatna odpowiedź niż kolejna cyfra po przecinku.

poślizgwpływ na rynekbacktestingrealizacja zleceńhandel na rachunku demo
← Wszystkie wpisy