A technikai kerekedő egyik legnagyobb ellensége a hibás adat. Automatikus rendelésekkel operáló rendszerekben ez olyan megbízást generálhat, amit nem kellett volna. Manuális rendszerekben egyszerűen csak meghamisítja a múltra vonatkozó eredményeket.

Az esetek egy részében valójában nem hibás adatról van szó, csak arról, hogy a nem túl likvid részvényeknél, nagy árugrások fordulhatnak elő és utólag már nem eldönthető a teljesülés esélye. Rövid (technikai) pályafutásom alatt többféle megjelenési formával találkoztam. Már írtam olyan esetről, amikor a napi ársáv utólag teljesülést mutat, de a valós kereskedésben nem teljesül a megbízás. Ez részben köszönhető a "smart order routing" megbízásoknak is, mire a rendszer behozza az adott tőzsdére a megbízást, addigra az ár máshol jár.

Másik típus az adatok utólagos módosulása. Ennek természetes formája, amikor részvényfelosztás vagy osztalékfizetés után módosítják az adatokat. Sajnos tapasztaltam olyan utólagos módosítást is, amit nem tudtam semmi értelmes dologhoz kötni, mégis ez történt. Leginkább a nyitó és a záró árak szoktak módosulni utólag, minden látható ok nélkül. Ezek persze rendkívül ritka esetek és általában csak 1-2 centes eltérésről van szó, de annál bosszantóbb tud lenni, amíg kitalálja az ember, hogy ez okozta a problémát.

Szintén meghamisítja a backtest eredményeket, ha olyan adatokon dolgozunk, amelyek nem tartalmazzák a tőzsdéről törölt részvények árfolyamait. Lehet, hogy ezeken nagyokat bukott volna a vizsgált stratégia, és ez csak a valós kereskedés során fog kiderülni, elég fájdalmas módon.

Nem az adathiba kategóriájába tartozik, de idekivánkozik az ún. survivorship bias figyelmen kívül hagyása. Ez egy tesztelési, koncepcionális hiba, amit elég sokan elkövetnek. A dolog lényege, hogy indexbe tartozó részvényeken tesztelnek, pl. a Nasdaq 100 részvényein, de nem veszik figyelembe, hogy az index mostani résztvevői nem azonosak az 1-2-3 stb. évvel ezelőtti résztvevőkkel. Az indexekből folyamatosan pakolják ki a gyengén teljesítő részvényeket, helyettesítve a jól menőkkel. Amikor ilyen univerzumon tesztelünk, nem kapunk megbízható eredményt, mert x évvel ezelőtt nem tudhattuk milyen részvények lesznek az adott indexben. Azt viszont tudjuk, hogy olyan részvényeken tesztelünk, amelyek jól teljesítettek (ezért kerültek be az indexbe).

Az utóbbi problémára egyszerű a megoldás, NE teszteljünk index alapon. Lehet szűrni forgalomra, árra, de nem célszerű index alapon szűkíteni a kört. A tőzsdéről törölt részvények árfolyam adataihoz hozzá lehet jutni szolgáltatóktól, vagy az idők folyamán mindenki építhet magának ilyen adatbázist. Az adathibák részben orvosolhatóak jó adatszolgáltató választásával (a fenti hibák nálam két független szolgáltatónál is megjelentek!), vagy bizonyos forgalom minimumok beállításával, de ha ezt túl magasan állapítjuk meg, sok lehetőség elvész.

Az igazán jó megoldás szerintem ROBOSZTUS rendszer kialakítása. Robosztusnak olyan rendszert nevezek, amely különböző piacokon, optimalizálás nélkül, nagyjából egységes eredményt produkál. Az ilyen rendszer adathibára (és egyéb disznóságokra) sem lesz annyira érzékeny. Tehát keveset optimalizálni, sok piacon tesztelni! 

Figyelem: az immáron megszűnt freeblogról megmentett és újra publikált aranyláz posztok semmilyen formában sem képezik az én tulajdonom, és az abban foglaltakért semmilyen felelőséget sem vállalok. Ha a szerzőnek (András) kifogása merül fel az újbóli publikálást illetően, kérem, kommentben vagy üzenetben keressen meg.

A bejegyzés trackback címe:

https://vilagbagoly.blog.hu/api/trackback/id/tr235957190

Kommentek:

A hozzászólások a vonatkozó jogszabályok  értelmében felhasználói tartalomnak minősülnek, értük a szolgáltatás technikai  üzemeltetője semmilyen felelősséget nem vállal, azokat nem ellenőrzi. Kifogás esetén forduljon a blog szerkesztőjéhez. Részletek a  Felhasználási feltételekben és az adatvédelmi tájékoztatóban.

Nincsenek hozzászólások.
süti beállítások módosítása