2026 m. lapkričio 10 d. · duomenys

Jūsų backtestui reikia duomenų pakeitimų žurnalo, o ne vien duomenų momentinės kopijos

Jūsų backtestui reikia duomenų pakeitimų žurnalo, o ne vien duomenų momentinės kopijos

Vien užfiksuotos rinkos duomenų momentinės kopijos nepakanka, kad backtestu būtų galima pasitikėti. Ji gali atkurti tą patį rezultatą ir kartu slėpti, kad tiekėjas pakeitė jam gauti naudotus duomenis.

Išsaugokite momentinę kopiją. Taip pat tvarkykite pakeitimų žurnalą, kuris parodytų, kas pasikeitė, kada tai įvyko ir ar tai turėjo įtakos strategijai. Tai ypač svarbu, jei tyrimuose naudojate pataisytus sandorius, atnaujintus fundamentinius rodiklius, iš naujo apskaičiuotą finansavimą arba tiekėjo tyliai atnaujintą istoriją.

Kodėl atkuriamas backtestas vis tiek gali klaidinti?

Tarkime, pirmadienį atsisiunčiate penkerių metų valandinius barus ir paleidžiate strategiją. Iki penktadienio tiekėjas jau pataisė klaidingą sandorį, pakoregavo įmonės veiksmą arba užpildė trūkstamus duomenis. Jūsų išsaugotas failas vis dar tiksliai pateikia pirmadienio rezultatą. Tai atkuriamumas. Tačiau jei dar kartą paleisite strategiją su dabartine tiekėjo istorija, galite gauti kitokį rezultatą ir neturėti jokio paaiškinimo kodėl.

Problema neapsiriboja didelėmis pataisomis. Pakitusi aukščiausia kaina gali suaktyvinti stopą, o atnaujinta uždarymo kaina – perkelti indikatorių per jo slenkstį. Plačioje investicinių priemonių aibėje pasikeitusi vieno simbolio istorija gali pakeisti jo reitingą ir išstumti kitą aktyvą iš portfelio. Galutinis Sharpe rodiklis gali kisti net tada, kai strategijos kodas ir konfigūracija visiškai tokie patys.

Failo kontrolinė suma parodo, kad du failai skiriasi. Tačiau ji nepasako, ar dėl padalijimo korekcijos pakito 40 metų kainų istorija, tiekėjas pataisė tris sandorius, ar analizatorius tuščią lauką pavertė nuliu.

Ką reikėtų įtraukti į rinkos duomenų pakeitimų žurnalą?

Registruokite pakeitimus mažiausiu naudingu tikslumu ir pateikite pakankamai konteksto, kad galėtumėte pakartoti paveiktą tyrimą. Barų duomenų srautui paprastai reikia nurodyti priemonę, intervalą, įvykio laiką, ankstesnes ir naujas reikšmes, šaltinį bei laiką, kada pastebėjote atnaujinimą. Jei tiekėjas pateikia pradinį duomenų paketą, išsaugokite ir jį.

ĮrašasKodėl jį saugotiPavyzdys
Šaltinio versija arba gavimo laikasNurodo, kokia tiekėjo duomenų būsena buvo naudojamaMomentinė kopija gauta 2026-11-02 08:15 UTC
Pakeistas laukas ir ankstesnė bei nauja reikšmėParodo, kas iš tikrųjų pasikeitėETHUSDT 1h aukščiausia kaina: 3,412.10 → 3,418.60
Pakeitimo klasifikacijaAtskiriamos pataisos nuo transformacijųPavėluoto sandorio pataisa, padalijimo korekcija, trūkstamų duomenų užpildymas
Duomenų apdorojimo grandinės ir schemos versijaAtskiria šaltinio pakeitimus nuo jūsų apdorojimoNormalizer v7, pakoreguotų barų schema v3

Dideliems duomenų rinkiniams saugokite nekintamas momentines kopijas ir glaustą jų kontrolinių sumų, šaltinio versijų bei gavimo laikų aprašą. Pakeistiems duomenų skaidiniams pridėkite eilučių lygmens skirtumus. Taip pasiekiamas praktiškas kompromisas: visą tyrimą galima atkurti, o kiekvienos nepakitusios eilutės nereikia dar kartą įrašyti į audito lentelę.

Kaip įvertinti, ar pataisa turėjo reikšmės?

Neapsiribokite pakeistų eilučių skaičiavimu. Paleiskite paveiktą strategiją su senais ir naujais duomenimis, naudodami tą patį kodą, parametrus, mokesčius ir vykdymo prielaidas. Palyginkite sprendimus ir kelią iki rezultato.

  1. Pagal skirtumų duomenis nustatykite paveiktas priemones ir įvykių laikus.
  2. Nustatykite, kurios savybės, signalai, pavedimai ar portfelio svoriai naudoja tuos įrašus.
  3. Pakartokite skaičiavimą trumpiausiame tinkamame lange, įskaitant peržiūros laikotarpį ir atvirų pozicijų būseną.
  4. Palyginkite pavedimus, įvykdytus sandorius, pozicijų dydžius, apyvartą, nuosmukį ir galutinį rezultatą.

Pavyzdžiui, tiekėjo pataisa, pakeičianti 1-minute aukščiausią kainą $0.02, gali paliesti milijoną eilučių ir neturėti jokios įtakos dienos momentum strategijai. Vienas pataisytas baras ties stopo lygiu gali būti svarbesnis. Matuokite poveikį sprendimams – pakeistų įrašų skaičius yra prastas jo pakaitalas.

Atskirkite du klausimus: „Ar galiu atkurti rezultatą iš išsaugotų duomenų?“ ir „Ar ši duomenų versija tuo metu būtų buvusi prieinama strategijai?“ Pakeitimų žurnalas padeda atsakyti į abu klausimus, tačiau į antrąjį taip pat reikia atsakyti remiantis prieinamumo konkrečiu laiku įrašais.

Kiek tai kainuoja ir kada verta tai daryti?

Pakeitimų sekimas didina saugyklos poreikį, duomenų gavimo darbo krūvį ir reikalauja operacinių sprendimų. Tiekėjai gali nesiūlyti stabilių versijų, o kai kurie istoriniai duomenų srautai periodiškai atkuriami be aiškaus pranešimo apie pataisas. Negalite registruoti pakeitimo, kurio nepastebite.

Pradėkite nuo duomenų, kurių pataisos gali pakeisti tyrimo išvadas: barų, naudojamų stopų logikoje, pagal įmonių veiksmus koreguotų akcijų duomenų, fundamentinių rodiklių konkrečiu laiku ir iš naujo apskaičiuojamų finansavimo ar atvirų pozicijų duomenų sekų. Plačiam ir stabiliam duomenų rinkiniui gali pakakti kasdienio aprašo ir skaidinių kontrolinių sumų. Laukų lygmens skirtumus pridėkite ten, kur atnaujinimai dažni arba pavieniai įrašai gali pakeisti prekybos sprendimus.

Kritikai teisūs sakydami, kad išsamus, neribotą laiką saugomas kiekvieno tiekėjo atsakymo archyvas gali brangiai kainuoti ir vis tiek neparodyti, ką šaltinis žinojo tuo metu. Sprendimas – apriboti auditą svarbiais duomenimis ir sprendimais bei dokumentuoti spragas. Momentinė kopija leidžia pakartoti eksperimentą. Pakeitimų žurnalas leidžia paaiškinti, kodėl pasikeitė eksperimento rezultatas.

duomenų inžinerijabacktestingasatkuriamumaskiekybiniai tyrimai
← Visi įrašai