Kello 10:14 UTC yksinkertainen läpimurtostrategia osti kryptoperpetuaalin hinnan ylitettyä 20 minuutin huippunsa. Backtestissä toimeksianto toteutui hintaan $64,210. Hinta löytyi datasta, signaalin aikaleima oli oikein ja simuloitu toimeksianto saapui seuraavalla barilla. Olimme vähällä kutsua tulosta puhtaaksi.
Sitten tarkistimme instrumenttitunnukset. Signaali tuli BTCUSDT-perpetuaalista. Toteutushinta tuli BTCUSD-käänteisestä sopimuksesta. Molemmilla käytiin kauppaa lähellä hintaa $64,210, ja molemmat olivat likvidejä markkinoita. Ne olivat silti eri toimeksiantokirjoja, joilla oli eri hinnat, tick-koot, syvyydet ja palkkiorakenteet. Backtest oli yhdistänyt markkinan, johon yksikään treidaaja ei olisi päässyt käsiksi.
Strategia itsessään oli tavanomainen: avaa positio sulkeutumisen ylittäessä liukuvan huipun, sulje positio sulkeutumisen alittaessa liukuvan pohjan ja mitoita kukin positio kiinteän dollarimääräisen riskin mukaan. Ongelma tuli esiin vasta, kun kysyimme täsmällisemmän kysymyksen kuin ”minkä arvoinen BTC oli?” Kysyimme: ”kuinka paljon tätä toimeksiantoa olisi voinut ostaa juuri tällä sopimuksella kyseiseen aikaan?”
Kaavio oli yhdistelmä jo ennen strategian käynnistämistä
Tutkimussyötteemme helpotti pörssien vertailua. Se yhdenmukaisti symbolit ja näytti yhdistetyn hintasarjan. Se oli kätevää markkinoiden tarkasteluun, mutta huono viite toteutukselle. Yhdistelmä voi näyttää parhaan hinnan eri pörsseistä, vaikka strategia voi lähettää toimeksiannon vain yhteen pörssiin.
Läpimurron hetkellä yhdistetyn barin huippu oli $64,205. Valitun sopimuksen viimeisin kauppa oli jo siirtynyt hintaan $64,218. Samaan aikaan välimuistiin tallennettu käänteisen sopimuksen noteeraus näytti yhä myyntihintaa $64,210. Simulaattori käytti läpimurtoon yhtä sarjaa ja houkuttelevaan myyntihintaan toista. Molemmat arvot olivat todellisia. Niiden yhdistelmä oli kuvitteellinen.
| Syöte | Mitä backtest käytti | Mitä toimeksianto edellytti |
|---|---|---|
| Läpimurron huippu | Yhdistetty BTC-hinta | Valitun sopimuksen hintahistoria |
| Sisääntulon viitehinta | Välimuistiin tallennettu käänteisen sopimuksen myyntihinta | Tuore myyntihinta kaupankäynnin kohteena olevalle instrumentille |
| Toteutusmäärä | Pyydetty position koko | Kullakin hintatasolla saatavilla oleva määrä |
Yksi rivi markkinadatataulukossa voi näyttää täydelliseltä, vaikka sen kentät kuvaisivat eri markkinoita. Symbolin alias ei todista, että kahdella instrumentilla olisi yhteinen toimeksiantokirja. Sopimustunnuksen, pörssin, noteerausvaluutan ja aikaleiman on kuljettava mukana signaalin muodostuksessa ja toimeksiannon toteutuksessa.
Toistimme toimeksiannon toimeksiantokirjaa vasten
Ajoimme sisääntulon uudelleen käyttäen valitun perpetuaalin omaa parasta myyntihintaa ja päätöshetkellä saatavilla olleita toimeksiantokirjan päivityksiä. Noteeraus oli tuore, mutta ylimmällä hintatasolla oli vain 0.18 BTC. Simuloitu toimeksiantomme oli 0.50 BTC. Jäljellä oleva 0.32 BTC olisi osunut korkeampiin myyntihintoihin.
Korjattu sisääntulo oli $21 BTC:tä kohden kalliimpi kuin ilmoitettu toteutushinta ennen palkkioita. Yksittäisessä kaupassa ero on pieni. Testin aikana strategia kuitenkin teki suurimman osan bruttovoitostaan muutamasta nopeasta läpimurrosta. Kun toistimme nämä sisääntulot oikeita toimeksiantokirjoja vasten, bruttotulos pieneni 31%; taker-palkkiot ja hintavaikutus heikensivät sitä lisää.
Löysimme myös kaksi tapausta, joissa toimeksiantokirjan paras noteeraus saapui signaalin päätöshetken jälkeen. Backtest, joka yhdistää lähimmän aikaleiman perusteella, voi huomaamatta valita tulevan päivityksen. Yhdistämme nyt taaksepäin: noteerauksen on täytynyt olla saatavilla toimeksiannon lähetyshetkellä, ja kirjaamme sen iän. Jos viimeisin käyttökelpoinen noteeraus on liian vanha, simulaattori merkitsee toimeksiannon toteutuskelvottomaksi tai soveltaa nimenomaista vanhentuneen datan sääntöä.
Mitä kaupankäyntikelpoinen hinta edellyttää
Barin päätöskurssi on hyödyllinen signaalin laskemiseen. Se ei osoita, että tietty toimeksianto olisi voitu toteuttaa siihen hintaan. Siihen tarvitaan hinta, joka kuuluu täsmälleen kyseiseen instrumenttiin ja pörssiin, on saatavilla toimeksiannon saapumishetkellä ja jolla vastapuolen määrä riittää pyydettyyn kokoon. Jos data ei vastaa näihin kysymyksiin, rehellinen tulos on vaihteluväli tai puuttuva toteutus, ei keksitty tarkka hinta.
Säilytimme yhdistetyn sarjan markkinatilanteen tarkasteluun ja poistimme sen toteutusketjusta. Signaalit viittaavat nyt valitun sopimuksen omaan historiaan; toimeksiannot toistetaan kyseisen sopimuksen toimeksiantokirjaa vasten, ja palkkiot sekä koko huomioidaan toteutuksen laskennassa. Vähän lisää yhdistelykoodia, ja paljon vähemmän mairitteleva pääomakäyrä.
Läpimurto todella tapahtui. Backtest vain antoi sille paremmat markkinaolosuhteet kuin ne, jotka strategia oli valinnut.
← Kaikki kirjoitukset


