10. marraskuu 2026 · data

Backtestisi tarvitsee datamuutoslokin, ei vain datatilannekuvaa

Backtestisi tarvitsee datamuutoslokin, ei vain datatilannekuvaa

Jäädytetty markkinadatan tilannekuva ei yksin riitä tekemään backtestistä luotettavaa. Sen avulla voi tuottaa saman tuloksen uudelleen, vaikka se samalla peittäisi sen, että datantoimittaja on muuttanut tuloksen perustana ollutta dataa.

Säilytä tilannekuva. Pidä sen lisäksi muutoslokia, joka kertoo, mikä muuttui, milloin se muuttui ja vaikuttiko se strategiaan. Tämä on erityisen tärkeää, kun tutkimuksessamme käytetään korjattuja kauppoja, tarkistettuja fundamentteja, rekonstruoitua rahoituskorkoa tai datantoimittajan hiljattain päivittämää historiadataa.

Miten toistettava backtest voi silti johtaa harhaan?

Oletetaan, että lataat maanantaina viiden vuoden tuntipalkit ja ajat strategian. Perjantaihin mennessä datantoimittaja on korjannut virheellisen kaupan, oikaissut yritystapahtuman tai täydentänyt puuttuvan jakson. Tallennettu tiedostosi tuottaa yhä täsmälleen maanantain tuloksen. Se on toistettavaa. Mutta jos ajat testin uudelleen datantoimittajan nykyisellä historiadatalla, saatat saada eri tuloksen ilman mitään tietoa siitä, miksi.

Ongelma ei rajoitu suuriin korjauksiin. Yksi muutettu ylin hinta voi laukaista stopin; tarkistettu päätöskurssi voi siirtää indikaattorin raja-arvonsa toiselle puolelle. Laajassa sijoitusuniversumissa yhden instrumentin historian muutos voi muuttaa sen sijoitusta ja pudottaa toisen instrumentin salkusta. Lopullinen Sharpe voi muuttua, vaikka strategian koodi ja asetukset ovat täsmälleen samat.

Tiedoston tarkistussumma kertoo, että kaksi tiedostoa eroavat toisistaan. Se ei kerro, oikaisiko osakejaon huomiointi hintahistoriaa 40 vuoden ajalta, korjasiko datantoimittaja kolme kauppaa vai muuttiko jäsennin tyhjän kentän nollaksi.

Mitä markkinadatan muutoslokiin kuuluu?

Kirjaa muutokset pienimmällä hyödyllisellä tarkkuudella ja sisällytä riittävästi tietoa, jotta voit toistaa muutoksen kohteena olleen tutkimuksen. Palkkisyötteessä tämä tarkoittaa yleensä instrumenttia, aikaväliä, tapahtuma-aikaa, vanhoja ja uusia arvoja, lähdettä sekä aikaa, jolloin havaitsit päivityksen. Säilytä alkuperäinen hyötykuorma, jos datantoimittaja tarjoaa sen.

Kirjattava tietoMiksi se kannattaa säilyttääEsimerkki
Lähdeversio tai hakuajankohtaYksilöi käytetyn datantoimittajan tilanTilannekuva haettu 2026-11-02 08:15 UTC
Muutettu kenttä ja vanha/uusi arvoNäyttää, mikä todella muuttuiETHUSDT 1h ylin hinta: 3,412.10 → 3,418.60
Muutoksen luokitteluErottaa korjaukset muunnoksistaMyöhässä tullut kauppakorjaus, osakejaon oikaisu, jälkikäteen täydennys
Putken ja skeeman versioErottaa lähteessä tehdyt muutokset omasta käsittelystämmeNormalizer v7, oikaistujen palkkien skeema v3

Tallenna suurista datajoukoista muuttumattomat tilannekuvat sekä tiivis manifesti, jossa on niiden tarkistussummat, lähdeversiot ja hakuajat. Lisää rivikohtaiset erot muuttuneisiin osioihin. Näin saat käytännöllisen kompromissin: koko aineiston toisto on yhä mahdollista ilman, että jokainen muuttumaton rivi pitää kirjoittaa toiseen auditointitauluun.

Miten mittaan, onko korjauksella merkitystä?

Älä tyydy muuttuneiden rivien laskemiseen. Aja muutoksen kohteena ollut strategia uudelleen vanhalla ja uudella datalla käyttäen samaa koodia, samoja parametreja ja kuluja sekä samoja toteutusoletuksia. Vertaa päätöksiä ja niiden kautta syntynyttä tulospolkua.

  1. Tunnista erotuksesta muutoksen kohteena olevat instrumentit ja tapahtuma-ajat.
  2. Selvitä, mitkä piirteet, signaalit, toimeksiannot tai salkkupainot käyttävät näitä tietueita.
  3. Toista pienin kelvollinen aikaikkuna, mukaan lukien tarkastelujakso ja avoimien positioiden tila.
  4. Vertaa toimeksiantoja, toteutumia, altistusta, kiertoa, arvonlaskua ja lopullista tuottoa.

Esimerkiksi datantoimittajan korjaus, joka muuttaa 1-minute-ylintä hintaa $0.02, voi koskea miljoonaa riviä vaikuttamatta lainkaan päivätason momentum-strategiaan. Yksi korjattu palkki stop-tasolla voi olla merkittävämpi. Mittaa vaikutus päätöksiin; muuttuneiden tietueiden määrä on heikko mittari sille.

Pidä kaksi kysymystä erillään: “Pystynkö toistamaan tuloksen tallentamallani datalla?” ja “Olisiko tämä dataversio ollut strategian käytettävissä silloin?” Muutosloki auttaa vastaamaan kumpaankin, mutta jälkimmäinen kysymys edellyttää lisäksi tietoja datan saatavuudesta kyseisenä ajankohtana.

Mitä tämä maksaa ja milloin se kannattaa?

Muutosseuranta lisää tallennustilan tarvetta, datan sisäänlukuun liittyvää työtä ja operatiivisia päätöksiä. Datantoimittajat eivät välttämättä tarjoa vakaita versioita, ja osaa historiasyötteistä rakennetaan säännöllisesti uudelleen ilman selkeää ilmoitusta korjauksista. Muutosta, jota emme koskaan havaitse, emme voi kirjata.

Aloita datasta, jonka tarkistukset voivat muuttaa tutkimuksen johtopäätöksiä: stop-logiikassa käytettävistä palkeista, yritystapahtumien mukaan oikaistuista osakkeista, ajankohdan mukaista saatavuutta noudattavista fundamenttitiedoista sekä uudelleen rakennettavista rahoituskoron tai avoimen position määrän aikasarjoista. Päivittäinen manifesti ja osioiden tarkistussummat voivat riittää laajoille ja vakaille datajoukoille. Lisää kenttäkohtaiset erot sinne, missä päivityksiä tulee usein tai kaupankäyntipäätökset riippuvat yksittäisistä tietueista.

Kriitikot ovat oikeassa siinä, että jokaisen datantoimittajan vastauksen täydellinen ja pysyvä arkistointi voi tulla kalliiksi eikä silti välttämättä tallenna sitä, mitä lähde tiesi kyseisenä ajankohtana. Rajaa auditointi tärkeään dataan ja päätöksiin ja dokumentoi puutteet. Tilannekuvan avulla voit ajaa kokeen uudelleen. Muutoslokin avulla voit selittää, miksi kokeen tulos muuttui.

datatekniikkabacktestaustoistettavuuskvantitatiivinen tutkimus
← Kaikki kirjoitukset