2026. november 10. · adatok

A backteszthez adatváltozási napló kell, nem csupán adatpillanatkép

A backteszthez adatváltozási napló kell, nem csupán adatpillanatkép

Egy befagyasztott piaciadat-pillanatkép önmagában nem elég ahhoz, hogy megbízható legyen a backteszt. Ugyanazt az eredményt adhatja újra, miközben eltitkolja, hogy a szolgáltató megváltoztatta az ahhoz vezető bemeneti adatokat.

Őrizd meg a pillanatképet. Emellett vezess változási naplót is, amelyből kiderül, mi és mikor mozdult el, és számított-e ez a stratégiának. Ez különösen fontos, ha a kutatásod javított kötéseket, felülvizsgált fundamentumokat, rekonstruált fundingadatokat vagy a szolgáltató által észrevétlenül frissített előzményeket használ.

Hogyan vezethet félre egy reprodukálható backteszt?

Tegyük fel, hogy hétfőn letöltesz öt évnyi órás gyertyát, és lefuttatsz egy stratégiát. Péntekre a szolgáltató kijavított egy hibás kötést, korrigált egy vállalati eseményt vagy pótolt egy adathiányt. Az elmentett fájlod továbbra is pontosan a hétfői eredményt adja. Ez reprodukálhatóság. Ha viszont újra lefuttatod a tesztet a szolgáltató aktuális előzményeivel, más eredményt kaphatsz, és nem lesz feljegyzésed arról, hogy miért.

A probléma nem korlátozódik a látványos korrekciókra. Egyetlen módosított csúcsár kiválthat egy stopot; egy felülvizsgált záróár átlökhet egy indikátort a küszöbén. Széles eszközuniverzumban egyetlen instrumentum előzményeinek változása módosíthatja a rangsorát, és kiszoríthat egy másik eszközt a portfólióból. A végső Sharpe-érték akkor is elmozdulhat, ha a stratégia kódja és konfigurációja teljesen azonos.

A fájl hash-értéke megmutatja, hogy két fájl eltér egymástól. Azt viszont nem árulja el, hogy egy splitkorrekció 40 évnyi árfolyamot módosított, a szolgáltató három kötést javított ki, vagy egy feldolgozó üres mezőt alakított nullává.

Mit tartalmazzon a piaci adatok változási naplója?

A változásokat a lehető legkisebb hasznos egységben rögzítsd, és adj meg annyi körülményt, hogy az érintett kutatási folyamat újrafuttatható legyen. Gyertyasor esetén ez általában az instrumentumot, az időintervallumot, az esemény idejét, a korábbi és az új értékeket, a forrást, valamint a frissítés észlelésének idejét jelenti. Ha a szolgáltató eredeti adatcsomagot is ad, azt is őrizd meg.

Rögzítendő adatMiért fontos?Példa
Forrásverzió vagy lekérés idejeAzonosítja a szolgáltató használt állapotátPillanatkép lekérve: 2026-11-02 08:15 UTC
Módosult mező és régi/új értékMegmutatja, mi változott ténylegesenETHUSDT 1h csúcsár: 3,412.10 → 3,418.60
VáltozástípusElkülöníti a javításokat az átalakításoktólKésve beérkezett kötés javítása, splitkorrekció, hiánypótlás
Feldolgozási folyamat és séma verziójaMegkülönbözteti a forrás módosításait a saját feldolgozásodtólNormalizer v7, korrigált gyertyák sémája v3

Nagy adathalmazoknál tárolj változtathatatlan pillanatképeket, és készíts hozzájuk tömör jegyzéket az ellenőrző összegekről, a forrásverziókról és a lekérések idejéről. A megváltozott partíciókhoz adj sorszintű eltéréseket. Így teljes újrafuttatásra is van lehetőség anélkül, hogy minden változatlan sort egy második audit táblába kellene írnod.

Hogyan mérjem fel, számít-e egy korrekció?

Ne állj meg a módosult sorok megszámolásánál. Futtasd újra az érintett stratégiát a régi és az új adatokkal, azonos kód, paraméterek, díjak és végrehajtási feltételezések mellett. Hasonlítsd össze a döntéseket és az eredményhez vezető utat.

  1. Az eltéréslistából azonosítsd az érintett instrumentumokat és eseményidőket.
  2. Keresd meg, mely jellemzők, jelzések, megbízások vagy portfóliósúlyok használják ezeket a rekordokat.
  3. Futtasd újra a legkisebb érvényes időablakot, a visszatekintési időszakkal és a nyitott pozíció állapotával együtt.
  4. Hasonlítsd össze a megbízásokat, teljesüléseket, kitettséget, forgalmat, visszaesést és a végső teljesítményt.

Például egy szolgáltatói korrekció, amely $0.02-dal módosítja egy 1-minute csúcsárat, egymillió sort érinthet úgy, hogy egyáltalán nincs hatása egy napi momentumstratégiára. Egyetlen stop szintjén módosított gyertya viszont sokat számíthat. A döntésekre gyakorolt hatást mérd; a megváltozott rekordok száma rossz közelítő mutató.

Válaszd külön ezt a két kérdést: „Meg tudom ismételni az eredményt az elmentett adatokból?” és „Ez az adatverzió akkoriban elérhető lett volna a stratégiának?” A változási napló mindkettő megválaszolásában segít, a másodikhoz azonban az adatok időpont szerinti elérhetőségét is rögzíteni kell.

Mennyibe kerül ez, és mikor éri meg?

A változások követése tárhelyet, adatbetöltési munkát és üzemeltetési döntéseket igényel. Előfordulhat, hogy a szolgáltatók nem tesznek közzé stabil verziókat, egyes történeti adatsorokat pedig rendszeresen, egyértelmű javítási értesítés nélkül építenek újra. Olyan változást nem tudsz naplózni, amelyet sosem észlelsz.

Ott kezdd, ahol a módosítások megváltoztathatják a kutatás következtetéseit: a stoplogikához használt gyertyáknál, a vállalati eseményekkel korrigált részvényadatoknál, az időpont szerint elérhető fundamentumoknál, valamint az újraépített funding- vagy nyitottkötésállomány-soroknál. Széles, stabil adathalmazoknál elég lehet egy napi jegyzék és a partíciók ellenőrző összege. Ott adj hozzá mezőszintű eltéréslistát, ahol gyakoriak a frissítések, vagy a kereskedési döntések egyedi rekordoktól függnek.

A kritikusoknak igazuk van: minden szolgáltatói válasz teljes és örökös archívuma költségessé válhat, miközben továbbra sem feltétlenül rögzíti, hogy a forrás mit tudott az adott időpontban. A megoldás az auditot a fontos adatokra és döntésekre korlátozni, a hiányosságokat pedig dokumentálni. A pillanatképpel újrafuttathatsz egy kísérletet. A változási naplóval megmagyarázhatod, miért módosult a kísérlet eredménye.

adatmérnökségbacktesztelésreprodukálhatóságkvantitatív kutatás
← Összes bejegyzés