A Forex robotokat érintve kikerülhetetlen egy témakör. Vagyis ha már dolgoztál robotokkal, akkor biztosan találkoztál a visszatesztelés fogalmával. Érthető módon nem mindegy, hogy hogyan teljesített (volna) az adott expert advisor a múltban. Habár a múltbéli adatok alapján nincsen garancia a jövőre nézve, a teszteredményekből már többé-kevésbé következtetni lehet arra, hogy a jövőben hogyan fog viselkedni a robot.

A robotok automatizáltan végzik a dolgukat élő internetkapcsolat esetén. Ha az adott kritériumoknak megfelelően mozog az árfolyam és/vagy jelez(nek) az indikátor(ok), akkor a robot cselekedni fog. A robot folyamatos működéséhez érdemes például egy VPS szerveren futtatni a MetaTrader 4 programot, benne a robotunkkal. Ez megbízhatóbb közeget biztosít az otthoni futtatással szemben.

Igen ám, de mielőtt a robot éles számlán való futtatásába belekezdenénk, tudnunk kellene, hogy mire számíthatunk. Hogyan teszteljük tehát a robotot, mit érdemes szem előtt tartani? Tanulságos sorok következnek.

A visszatesztelés

Visszatesztelésnek (vagy angolmagyar nyelven backtesztelésnek) hívjuk azt a folyamatot, amikor az adott forex robot működését múltbéli adatokon szemléltetjük és vizsgáljuk. Mindenki ismeri a mondást, hogy „A múltbéli teljesítmény nem garancia a jövőbeli eredményekre.” Rendben, de azért nem ártana legalább halvány fogalmat kapni a dolgok állásáról.

Gyakorlati visszateszteléssel foglalkozó útmutatómban az MT4 „sima” historikus adatai alapján történő teszteléstől mindenkit óva intek, mivel a MetaQuotes szerveréről letöltött adatok minősége kívánni valót hagy maga után, a „Minden tick” módszert meg azért nem célszerű még csak megpróbálni sem, mert ezen nagyon nyers adatok valójában nem is tartalmazzák a tickeket, csak az M1-es gyertyaadatokat – azokat is úgy, ahogy.

Mi akkor a megoldás? Hogyan tudnánk mégis pontosabban visszatesztelni?

A pontosabb visszatesztelés

Az MT4 gyenge minőségű és sokszor elérhetetlen múltbéli adataihoz képest a jó minőségű tick adatok beszerzésére több lehetőséged is van, például a Tick Data Suite vagy a Tickstory szoftverek is a segítségedre lehetnek ehhez.

A Tickstory szoftverrel kicsit macerás bánni, de mindenképp sokkal pontosabb eredmény kapunk. Korlátozás elsősorban a profi funkciók, és az egyhuzamban tesztelhető időszakok hosszában van. Sajnos azonban nem lehet benne a változó spreadeket modellezni, és a jutalékot sem tudjuk kényelmesen beállítani, de nem tudja kezelni például a piaci csúszást sem. Körülményes, hogy az adott MT4-et mindig a Tickstoryval kell indítani, hogy a stratégiai teszter tényleg tick adatokkal dolgozhasson.

A Tick Data Suite átfogó megoldást nyújt mind az adatok beszerzéséhez (a Dukascopy cégén felül több adatforrásból), mind pedig azok kényelmes használatához, és értékes plusz funkciókat ad a visszateszteléshez annak érdekében, hogy elkerülhesd a kellemetlenségeket, amelyeket a múltbéli időszakokban egyébként jó eredménnyel muzsikáló robotod valós idejű futtatása során tapasztalhatsz.

Milyen meglepetés érhet? Hogyan tudsz még közelebb kerülni a legpontosabb visszatesztelési módhoz, hogy még teljesebb képet kaphass arról, hogy milyen teljesítményt várhatsz el a robotodtól?

A ma létező talán legpontosabb és legtöbb funkciót biztosító MT4-es visszatesztelés

A Tick Data Suite véleményem szerint ez a ma létező legjobb program a forex robotok visszatesztjére. Ebben az útmutatóban részletezem, hogyan lehet letölteni. Rendelkezik 14 napos próbaverzióval is, így vásárlás előtt ki tudod próbálni a funkcióit.

Ezzel a szoftverrel már nagyon kényelmes dolgozni. Tényleg.

  • Bármelyik, a számítógépen lévő MT4-et elindítva azonnal használhatjuk a tick adatokat, nincs macera.

  • Lehetőség nyílik a változó spreaddel történő visszatesztelésre.

  • Könnyen manipulálható a visszateszt kereskedési környezetének összes kondíciója, így például a jutalék, kamat stb is.

  • Modellezni tudjuk vele a csúszást (slippage) is.

  • és ami miatt a cikket megírtam: modellezhető vele az élő kereskedéshez hasonló környezet is.

Egy tanulságos teszt

A MetaTrader 4 alapvető viselkedése a visszateszten belül a következő: amennyiben a teszten belül nem érkezik olyan ár, amely egy korábban kihelyezett megbízás árszintjét (vagy stoploss, takeprofit szintjét) teljesíti, akkor is úgy tesz, mintha lett volna azon a szinten jegyzett ár. Ez fals eredményeket okoz, hiszen akár egy napon belüli, akár péntekről hétfőre kialakuló gap (rés) közepén is képes pozíciót nyitni, aktiválni vagy kiléptetni.

Ha a valóságban futunk bele ilyen helyzetbe, akkor a brókercég nem a gapen belüli, hanem a gap utáni legközelebbi lehetséges árat fogja nekünk biztosítani. Ebből kifolyólag sokszor előfordulhat akár az is, hogy szűk SL/TP esetén akár a teljesülés pillanatában bekövetkezik maga a kilépés is, így eredményünk azonnali veszteség lesz.

A Tick Data Suite ezzel szemben képes arra, hogy ezt a hibás viselkedést megszüntesse. Képes modellezni az élő kereskedést, ami tehát azt jelenti, hogy csak ott fog tudni kötni a robotunk, ahol tényleg volt tick (ár), tehát ahol tényleg megvalósulhatott a kereskedést. 

Ez a pontosság főleg, de nem csak a skalpoló robotoknál fontos, mert ezen állhat vagy bukhat a teszt hitelessége. Nézzük is meg ezt bővebben!

Az MT4-ben, ha a Stratégia teszterben a TDS beállítások (Tick Data Settings) gombra, majd azon belül a Haladó (Advanced) fülre kattintást követően megtalálod az Éles végrehajtás szimulációja (Simulate live execution) szekciót, amely több jelölőnégyzetet tartalmaz.

TDS - Éles végrehajtás szimulációja

Kíváncsi vagy ehhez hasonló, hasznos bejegyzéseimre?

Ha érdekelnek az ehhez hasonló témákkal foglalkozó bejegyzések, akkor add meg keresztneved és e-mail címed, hogy elküldhessem Neked!

A négy jelölőnégyzet bekapcsolásával azt érhetjük el, hogy a stop lossunk, a take profitunk, valamint a stop és a limit megbízásaink csak azokon az árfolyamokon aktiválódhassanak, ahol tényleg járt az árfolyam.

Képzeljük el a következőt: van egy skalpoló robotunk, ami M1-en bizonyos algoritmusok alapján a nagyobb elmozdulásokat kereskedi le. A nagyobb elmozdulások M1-en pedig ugye hírek idején alakulnak ki.  A hírek idején kialakuló nagy csapkodások során azonban csak szemre mozog folytatólagosan az árfolyam.

Ez azt jelenti, hogy kisebb szakadások (gap-ek) keletkeznek akár a másodperc tört része alatt. Tehát mondjuk a robot a megbízásunkat 1.10000-re teszi, de később ez a megbízás a teljesülésnél, mivel ott nem volt az általunk kihelyezett áron árjegyzés, már csak 1.10040-nél tud teljesülni. Ez 40 pont, azaz 4 pip! Vegyük észre, hogy ez hosszú távon óriási különbség!

Hogy mekkora tud lenni az ilyen fajta eltérés okozni, álljon itt két kép. Ezekhez nagyon nem is érdemes mit hozzáfűzni. Ugyanaz a robot, ugyanaz az idősík, minden beállítás megegyezik. Csak egy dologban különbözik a két lefuttatott backteszt: a második teszt esetén bekapcsoltuk a „Simulate live execution” lehetőséget. Tehát azt modelleztük le, hogy csak ott köthessen a robot, ahol tényleg volt árfolyamjegyzés.

A különbség drámai, amiből azt tudjuk levonni, hogy ezt a robotot nem feltétlen futtatnánk éles számlán az első teszt alapján. Vannak persze expertek, ahol a két teszt szinte ugyanaz lenne, azokat már talán érdemesebb komolyabban venni. Az ilyenek azonban inkább nagyobb idősíkon nyugodtabb stratégia szerint, záróárakon kötnek.

Ha továbbra is ragaszkodunk a skalpoló stratégiákhoz, érdemes olyat keresni, amely a fenti tesztet elfogadható módon vészeli át.

Kikapcsolt szimulációval, azaz TDS szoftverrel, de a csúszás szimuláció nélkül:
Kikapcsolt szimulációval
Bekapcsolt szimulációval, azaz TDS szoftverrel és a csúszás szimulációval:
Kikapcsolt szimulációval

A fentiek értelmében tehát azt mondhatjuk, hogy a TDS-sel való backteszt során érdemes bekapcsolni az Éles végrehajtás szimulációja (Simulate live execution) lehetőséget, mert így tényleg csak a múltban valóban létezett árfolyamokkal tud dolgozni a robot, mi pedig sokkal tisztább képet kaphatunk.

Köszönöm szépen Los Csaba nevű kedves olvasóm munkáját a cikk elkészítése kapcsán!