7. november 2026 · mikrostruktura

Backtest je uporabil pravo ceno z napačnega trga

Backtest je uporabil pravo ceno z napačnega trga

Ob 10:14 UTC je preprosta strategija preboja kupila kripto perpetual, ko je cena prebila najvišjo vrednost v zadnjih 20 minutah. Backtest je pokazal izvršitev po 64.210 $. Ta številka se je pojavila v podatkih, signal je imel pravilen časovni žig, simulirano naročilo pa je prispelo v naslednjem baru. Skoraj smo razglasili rezultat za čist.

Nato smo primerjali ID-je instrumentov. Signal je izviral iz perpetual pogodbe BTCUSDT. Izvršitev pa iz inverzne pogodbe BTCUSD. Obe sta se trgovali blizu 64.210 $ in obe sta bili likvidni. A šlo je za različni knjigi naročil z različnimi cenami, velikostmi koraka cene, globino in razporedi provizij. Backtest je sestavil trg, do katerega noben trgovec ni mogel dostopati.

Strategija sama po sebi ni bila nič posebnega: vstop ob zaključku nad drsečo najvišjo vrednostjo, izstop ob zaključku pod drsečo najnižjo vrednostjo, velikost vsake pozicije pa določimo glede na fiksno tveganje v dolarjih. Težava se je pokazala šele, ko smo zastavili natančnejše vprašanje od »koliko je bil vreden BTC?« Vprašali smo se: »Kaj bi to naročilo lahko kupilo v tej konkretni pogodbi ob tistem času?«

Graf je bil sestavljen iz več trgov, še preden se je strategija sploh zagnala

Naš raziskovalni podatkovni vir je omogočal preprosto primerjavo trgovalnih platform. Simbole je poenotil in prikazal združeno časovno vrsto cen. To je bilo uporabno za pregled trga, vendar slabo izhodišče za simulacijo izvrševanja. Sestavljena serija lahko prikazuje najboljšo ceno z različnih borz, čeprav lahko strategija naročilo pošlje samo na eno trgovalno platformo.

Ob preboju je bila najvišja vrednost združene sveče 64.205 $. Zadnja sklenjena transakcija izbrane pogodbe se je medtem že premaknila na 64.218 $. Shranjena kotacija za inverzno pogodbo pa je še vedno kazala ponudbeno ceno 64.210 $. Simulator je uporabil preboj iz ene serije in privlačno ponudbeno ceno iz druge. Vsaka vrednost zase je bila resnična. Njuna kombinacija pa izmišljena.

VhodKaj je uporabil backtestKaj je bilo potrebno za naročilo
Najvišja vrednost za prebojZdružena cena BTCZgodovina cen izbrane pogodbe
Izhodiščna cena ob vstopuShranjena ponudbena cena inverzne pogodbeSveža ponudbena cena trgovanega instrumenta
Količina za izvršitevZahtevana velikost pozicijeKoličina, na voljo pri vsaki ravni cene

Vrstica v tabeli tržnih podatkov je lahko videti popolna, čeprav njena polja opisujejo različne trge. Vzdevek simbola še ne dokazuje, da imata dva instrumenta skupno knjigo naročil. ID pogodbe, trgovalna platforma, kotacijska valuta in časovni žig morajo ostati povezani od ustvarjanja signala do izvršitve.

Naročilo smo ponovno odigrali na podlagi knjige naročil

Vstop smo znova simulirali z najboljšo ponudbeno ceno izbrane perpetual pogodbe in posodobitvami knjige naročil, ki so bile na voljo ob sprejetju odločitve. Kotacija je bila sveža, vendar je bilo na najboljši ravni na voljo le 0,18 BTC. Naše simulirano naročilo je znašalo 0,50 BTC. Preostalih 0,32 BTC bi bilo treba kupiti po višjih ponudbenih cenah.

64.218 $najboljša ponudbena cena ob prispetju naročila
0,18 BTCna voljo po tej ponudbeni ceni
64.231 $cena iz ponovne simulacije, tehtana glede na obseg

Prilagojena vstopna cena je bila za 21 $ na BTC višja od prikazane izvršitvene cene, še preden smo upoštevali provizije. Pri eni sami transakciji je to majhna razlika. Toda v celotnem testu je strategija večino bruto dobička ustvarila z nekaj hitrimi preboji. Ko smo te vstope ponovno simulirali na podlagi pravih knjig naročil, se je bruto rezultat zmanjšal za 31 %; provizije takerjev in tržni vpliv so ga še dodatno znižali.

Našli smo tudi dva primera, ko je kotacija najboljše ponudbe prispela po času odločitve signala. Backtest, ki poišče najbližji časovni žig, lahko neopazno izbere prihodnjo posodobitev. Zdaj podatke povezujemo za nazaj: kotacija mora biti zabeležena najpozneje takrat, ko je bilo naročilo poslano, njeno starost pa zabeležimo. Če je zadnja uporabna kotacija prestara, simulator označi, da naročila ni mogoče izvršiti, ali uporabi izrecno pravilo za zastarele podatke.

Kaj potrebujemo za ceno, po kateri je mogoče trgovati

Zaključna cena bara je uporabna za izračun signala. Sama po sebi pa ne dokazuje, da bi bilo mogoče določeno naročilo izvršiti po tej ceni. Cena mora pripadati točno določenemu instrumentu in trgovalni platformi, biti na voljo ob prispetju naročila ter imeti dovolj količine na nasprotni strani za zahtevano velikost. Če nam podatki ne morejo odgovoriti na ta vprašanja, je pošten rezultat razpon ali manjkajoča izvršitev, ne pa izmišljena točna cena.

Združeno serijo smo obdržali za kontekst trga, vendar smo jo umaknili iz poti izvrševanja. Signali se zdaj opirajo na zgodovino cen izbrane pogodbe, naročila pa se ponovno odigrajo na podlagi njene knjige naročil; provizije in velikost upoštevamo po izračunu izvršitve. Nekaj dodatnega povezovanja podatkov in precej manj laskava krivulja kapitala.

Do tega preboja je res prišlo. Backtest mu je preprosto pripisal boljši trg od tistega, ki ga je strategija izbrala.

kripto terminske pogodbeknjige naročiltržni podatkitestiranje za nazajizvrševanje
← Vse objave