Backtestin vuosituotto oli 20 %. Se käytti 8 vuoden dataa, 1,640 kauppaa ja selkeää walk-forward-jakoa. Sitten korvasimme datantoimittajan nykyisen historiatiedon arvoilla, jotka oli kirjattu tuolloin, ja tuotto putosi 3 prosenttiin.
Yllättävä luku ei ollut alkuperäinen tuotto. Se oli 17 prosenttiyksikköä, jotka perustuivat revisioituun dataan. Tällainen jälkiviisaus voi piillä taloustilastoissa, yhtiöiden fundamenttitiedoissa, indeksien jäsenyyksissä ja jopa näennäisen yksinkertaisissa markkinatiedoissa. Historiallinen data kertoo, mitä lähde sanoo nyt. Point-in-time-data kertoo, mitä strategiasi olisi voinut tietää silloin.
Miksi historiallinen data voi muuttua tapahtuman jälkeen?
Osa arvoista on ensin arvioita, joita korjataan myöhemmin. Perjantaina julkaistu taloustilasto voidaan tarkistaa seuraavana kuukautena. Yhtiö voi oikaista tuloslukujaan. Datantoimittaja voi korjata virheellisen noteerauksen, täydentää puuttuvan aikavälin tai vaihtaa alustavan arvon lopulliseen. Tietokanta, joka tallentaa vain uusimman arvon, saa kaikki nämä muutokset näyttämään siltä kuin ne olisivat aina pitäneet paikkansa.
Tällä on merkitystä, kun strategia asettaa yhtiöt järjestykseen raportoidun liikevaihdon perusteella tai käy kauppaa markkinalla aikataulutetun datan julkaisun jälkeen. Jos se näkee korjatun luvun jo kuukausia etukäteen, backtest on antanut sille tietoa, jota markkinoilla ei ollut päätöksentekohetkellä. Signaalin laskenta voi olla virheetön, mutta sen syöte on silti väärästä historiaversiosta.
Tähän liittyy yksi helppo sudenkuoppa: kenttä nimeltä date kuvaa usein ajanjaksoa, jota arvo koskee, eikä sitä, milloin arvo tuli saataville. Maaliskuun 31. päivälle merkitty neljännesvuosittainen liikevaihtorivi on voitu julkaista vasta toukokuussa. Merkintä kertoo liiketoiminnan ajanjaksosta, ei strategian käytettävissä olleista tiedoista.
Mitä aikaleimaa backtestissä pitäisi käyttää?
Seuraa erikseen arvon voimassaoloaikaa ja sen saataville tuloaikaa. Kirjaa mahdollisuuksien mukaan myös julkaisuaika ja järjestelmään saapumisaika. Strategia voi käyttää arvoa vasta, kun se on julkaistu ja vastaanotettu järjestelmään. Jos nämä ajat eroavat, käytä varovaisessa historiallisessa toistossa myöhempää aikaa.
| Aikaleima | Mitä se kuvaa | Miten se auttaa |
|---|---|---|
| Voimassaoloaika | Ajanjakso tai tapahtuma, jota arvo koskee | Ryhmittelee havainnot mitattavan asian mukaan |
| Julkaisuaika | Milloin lähde julkaisi tämän version | Estää julkaisua näkymästä ennen kuin se oli olemassa |
| Järjestelmään saapumisaika | Milloin järjestelmäsi vastaanotti tämän version | Tuo esiin toimitusviiveet ja jälkikäteen tehdyt täydennykset |
Oletetaan esimerkiksi, että yhtiön neljännesvuosittainen myynti kattaa tammikuun ja maaliskuun välisen ajan, raportoidaan 8. toukokuuta kello 16:15 Eastern-aikaa ja saapuu tutkimustietovarastoon kello 16:17. 8. toukokuuta päätöksensä markkinan sulkeutuessa tekevä strategia ei voi käyttää raporttia, jos päätös tehtiin sulkemishetkellä kello 16:00. Seuraavana aamuna päätöksen tekevä strategia voi käyttää sitä. Pelkkä vuosineljänneksen päättymispäivä ei vastaa kumpaankaan kysymykseen.
Miten testaan, ohjaavatko revisiot tulosta?
Aja sama strategia kahdesti: kerran käyttäen kunkin historiallisen päätöshetken tietoversiota ja kerran uusinta revisioitua historiatietoa. Pidä toteutusoletukset, instrumenttiuniversumi ja koodi samoina. Ero kertoo herkkyydestä revisioille; kyse ei ole uudesta strategioiden vertailusta.
Selvitä sitten, mistä ero syntyy. Muuttuuko tuotto julkaisupäivinä? Keskittyvätkö suurimmat erot muutamaan uudelleen raportoineeseen yhtiöön tai korjattuun havaintoon? Käykö strategia kauppaa ennen asiaankuuluvaa julkaisuaikaa? Pieni tapahtumakohtainen auditointi selittää usein enemmän kuin uusi kuvaaja kumulatiivisista tuotoista.
Nämä luvut ovat esimerkki, eivät yleispätevä rangaistus. Hyödyllinen tulos on oman strategiasi vertailu samoilla kaupoilla ja kustannuksilla aina kun mahdollista. Jos revisioitu versio tuottaa selvästi paremmin, selvitä, mitkä kentät ja päivämäärät selittävät eron, ennen kuin luotat backtestin otsikkolukuun.
Mitä point-in-time-data-auditoinnissa pitäisi kirjata?
Aloita kentistä, joita strategiasi todella käyttää. Selvitä jokaisen kohdalla lähde, aikaleiman merkitys, revisiokäytäntö ja se, voiko aiemmat versiot hakea. Kysy datantoimittajalta, miten korjaukset esitetään: korvattuina riveinä, uusina versioriveinä vai erillisessä auditointilokissa. Tuotesivun sana ”historiallinen” ei ratkaise asiaa.
- Tallenna jokainen versio julkaisuajan tai ensimmäisen saataville tuloajan kanssa.
- Yhdistä ominaisuudet päätöksiin saatavuusajan, älä ajanjaksomerkintöjen perusteella.
- Säilytä muuttumaton tilannekuva tai lähdeversio, jotta ajot voi toistaa.
- Merkitse arvot, jotka saapuvat myöhässä, joita revisioidaan tai joille ei ole luotettavaa historiatietoa.
Pidä myös rajaus käytännöllisenä. Jos strategiasi käyttää vain pörssikauppoja ja kynttilöitä, talousdatan revisioilla ei ehkä ole merkitystä. Kynttilöiden korjaukset ja datantoimittajan jälkikäteen tekemät täydennykset voivat silti vaikuttaa, etenkin jos signaali perustuu epälikvidiin markkinaan tai tarkasti rajattuun tapahtumaikkunaan.
Kun point-in-time-historiaa ei ole saatavilla
Älä käsittele tämän päivän arvoa huomaamatta eilisen arvona. Merkitse kenttä rajoitteeksi, jätä se pois väitteistä, jotka edellyttävät historiallista saatavuutta, tai käytä varovaista viivettä ja näytä, kuinka paljon tulos muuttuu. Viivästetty korvikearvo voi olla hyödyllinen tutkimuksessa, kunhan viive kerrotaan selvästi ja rajoite kulkee tuloksen mukana.
Backtestin tehtävä on rekonstruoida päätös käyttäen niitä tietoja, jotka olivat saatavilla päätöshetkellä. Jos data näyttää vain uusimman version, tuloksella on selkeä rajansa: sen avulla voidaan testata strategiaa tämänhetkistä rekonstruoitua historiatietoa vasten, mutta se ei osoita täsmälleen, mitä historiallinen toimija olisi voinut nähdä.
← Kaikki kirjoitukset
