Optiobacktesti voi muuttua, vaikka strategiakoodiin ei koskettaisi riviäkään. Datantoimittaja korjaa virheellisen noteerauksen, lisää myöhässä saapuneen kaupan, päivittää sopimusmetadataa tai muuttaa ristikkäisten markkinoiden suodatustaan. Ajet samat päivämäärät uudelleen ja saat eri toteutuksen, eri position, ehkä eri Sharpen. Kyse ei välttämättä ole strategiavirheestä. Strategiaa on testattu muuttunutta aineistoa vasten.
Jotta optiobacktesti olisi toistettavissa, käsittele markkinadataa versioituna syötteenä. Kirjaa käyttämäsi tilannekuva, säilytä kunkin päätöksen taustalla olleet raak havainnot ja vertaa muuttuneita tuloksia sopimus- ja aikaleimatasolla ennen kuin luotat koontitulokseen.
Miksi optiobacktestini muuttui, vaikka koodi pysyi samana?
Optiotietueet ovat poikkeuksellisen herkkiä korjauksille, koska sopimuksen näennäinen kaupattavuus riippuu useista yhdessä muuttuvista kentistä: bidistä, askista, kokoluokista, kohde-etuuden hinnasta, erääntymisestä, toteutushinnasta sekä sopimuksen kertoimesta tai toimitettavasta omaisuudesta. Korjattu noteeraus voi muuttaa näennäisen tilaisuuden ristikkäiseksi markkinaksi. Metadatan korjaus voi muuttaa position kertoimen merkitystä.
Kuvitellaan strategia, joka ostaa osto-option, kun ask on alle $2.00. Ensimmäisessä datalatauksessa kello 10:14 noteeraus on ask $1.95, bid $1.90 ja koko 5. Myöhempi datantoimittajan päivitys muuttaa askin arvoon $2.05 viivästyneen pörssiviestin täsmäytyksen jälkeen. Yksi havainto kääntää signaalin. Jos kyseinen sopimus oli strategian ainoa kauppa sinä päivänä, maltillinen datakorjaus voi hallita päivän tuottoa.
Myös noteerausten suodatus vaikuttaa. Datantoimittajat voivat poistaa vanhentuneita noteerauksia, karsia ristikkäisiä markkinoita tai normalisoida aikaleimoja eri tavoin. Käytännöt voivat olla järkeviä, mutta ne ovat osa aineiston identiteettiä. ”SPY-optiot tammikuusta maaliskuuhun” ei määritä toistettavaa historiaa.
Mikä on optiodatan versio?
Dataversio on niiden historiallisten havaintojen täsmällinen versio, joka oli käytettävissä tietyssä tutkimusajossa. Tallenna datantoimittajan ja aineiston nimi, noutoaika, päivämääräväli, skeeman versio sekä kaikki siivous- ja suodatussäännöt. Jos datantoimittaja tarjoaa tilannekuvatunnuksia tai versioiden aikaleimoja, tallenna myös ne.
Säilytä jokaisesta simuloidusta päätöksestä riittävästi jäljitettävyystietoa, jotta voit vastata seuraaviin kysymyksiin: mitä sopimusta tarkasteltiin, mikä noteeraus valittiin, milloin noteeraus julkaistiin tai vastaanotettiin ja millä säännöllä se hyväksyttiin? Sekä raakatietueella että johdetulla tietueella on merkitystä. Siivottu NBBO ilman lähteen aikaleimoja voi peittää sen, oliko noteeraus vanhentunut tai saapuiko se vasta simuloidun päätöksen jälkeen.
| Säilytettävä tieto | Miksi sillä on merkitystä | Esimerkki |
|---|---|---|
| Lähteen tilannekuva | Yksilöi ajossa käytetyn historian | Datantoimittajan version tunnus ja noutoaikaleima |
| Noteerauksen alkuperätiedot | Selittää, miksi kyseinen markkinatieto valittiin | Pörssi, tapahtuma-aika, vastaanottoaika, bid/ask ja koot |
| Sopimusehdot | Määrittää, mitä optio edusti | Toteutushinta, erääntyminen, kerroin ja toimitettava omaisuus |
| Siivouskäytäntö | Kertoo, mitkä havainnot jätettiin pois | Vanhentumiskynnys ja ristikkäisten noteerausten käsittely |
Miten tarkistan, muuttiko datantoimittajan päivitys tuloksiani?
Aja sama strategia ja kokoonpano molempia tilannekuvia vasten. Vertaa ensin hyväksyttyjen havaintojen ja sopimusten määriä päivittäin. Vertaa sitten päätöksiä ja toteutuksia: mitkä signaalit ilmestyivät tai katosivat, mikä noteeraus muuttui ja muuttiko uusi tietue mallinnettua toteutushintaa.
Älä tyydy kokonaistuottoon. Seuraa kauppojen määrän, avaus- ja sulkuhintojen, hylättyjen signaalien sekä vain yhdessä dataversiossa esiintyvien kauppojen P&L-osuuden muutoksia. Ajon Sharpe voi pysyä samankaltaisena, vaikka yksittäiset kaupat vaihtuvat; päätunnusluku ei kerro, että sen taustalla oleva historia muuttui.
Pidä strategia, kulut ja toteutusoletukset auditointia varten samoina. Jos muutat useita asioita kerralla, et tiedä, johtuiko ero datantoimittajan korjauksesta vai omasta kokeilustasi.
Pitäisikö minun aina käyttää uusinta optiohistoriaa?
Käytä uusinta historiaa, kun tavoitteena on hyödyntää datantoimittajan tämänhetkistä parasta rekonstruktiota. Säilytä vanha tilannekuva, kun sinun täytyy toistaa aiempi tulos tai selvittää, mitä tutkimusjärjestelmäsi tiesi tuolloin. Nämä vastaavat eri kysymyksiin.
Point-in-time-tutkimuksessa korjattu tietue voi olla nyt tarkempi mutta silti sellainen, jota strategialla ei silloin ollut käytettävissään. Säilytä julkaisu- ja vastaanottoajat aina kun mahdollista; muussa tapauksessa kuvaa rajoite selkeästi. Nykyhetkestä tehty rekonstruktio ei automaattisesti vastaa historiallista tietojoukkoa.
Kun optiobacktesti muuttuu, ensimmäinen kysymys pitäisi olla ”Mitkä havainnot muuttuivat?” Kysymys ”Kumpi ajo on oikea?” tulee vasta, kun pystyt vastaamaan siihen.
Mitä minun pitäisi tallentaa jokaisen backtestin yhteydessä?
Tallenna tulosten viereen tiivis manifesti: datantoimittaja ja tilannekuva, noutoaika, skeeman ja siivouksen versiot, sopimusmetadatan lähde, strategian commit, toteutusoletukset ja ajon kokoonpano. Linkitä jokainen kauppa sen perusteena olleisiin noteeraustietueisiin.
Pieni tietue muuttaa arvoituksellisen uudelleenajon tarkasteltavaksi eroksi. Optiohistoriaa korjataan jatkossakin. Tutkimusprosessisi pitäisi tehdä jokainen korjaus näkyväksi, jotta parempi arkisto parantaa aineistoa kirjoittamatta koetta hiljaisesti uudelleen.
← Kaikki kirjoitukset


