Profi szimuláció a Tick Data Suite különleges funkcióival

Profi szimuláció a TDS Live execution funkciójával

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 MetaTrader4 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 nyelve 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.

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. Korábban erről már írtam, ha érdekel, itt tudod elolvasni.

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

A pontosabb visszatesztelés

Korábban részletesen írtam már a jó minőségű adatokkal történő visszatesztelésről, de még egyszer dióhéjban: a Tickstory már nagyon jó, üzleti minőségű tickeket tud letölteni – többek közt – a Dukascopy nevű brókercégtől. A szoftverrel (a lejjebb említett Tick Data Suite-hoz képest) kicsit macerásabb 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.

Mit is jelent ez pontosabban? Azt, hogy a Tickstory számos korláttal rendelkezik. Például nem lehet benne a változó spread-eket modellezni vagy a jutalékot sem tudjuk kényelmesen beállítani. Körülményes, hogy az adott MT4-et mindig a Tickstoryval kell indítani, hogy tényleg tick adatokkal dolgozzon a Stratégia teszter… Jó program, de tudni kell a korlátait, mert később kellemetlen meglepetés érheti az embert.

Milyen meglepetés érhet? Hogyan tudok még közelebb kerülni a legpontosabb visszatesztelési módhoz, hogy még jobb képet kapjak arról, hogy milyen teljesítményt várhatok el a robotomtól?

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

Létezik egy szoftver, ami már nagyon pontos backtesztekre ad lehetőséget és számtalan pluszt nyújt – ez talán a ma létező legjobb program (és ez nem a reklám helye) a forex robotok visszatesztjére: Tick Data Suite (a továbbiakban TDS). Ebben a cikkben részletezem, hogy hogyan tudjátok letölteni, Rendelkezik 14 napos próbaverzióval is, így vásárlás előtt ki tudod próbálni a szuper funkcióit.

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

  • bármelyik, már feletelepített MT4-et elindítva azonnal használhatjuk a tick adatokat, nincs macera

  • van változó spread szimuláció

  • könnyen be tudjuk adni a jutalékot (commission)
  • nagyon könnyen át tudjuk írni az adott bróker egyes paramétereit – ezekhez csak hozzáértőként nyúljunk, és csak akkor, ha nagyon kísérletezni akarunk.

  • itt már modellezni tudjuk a csúszást (slippage) is

  • és ami miatt a cikket megírtam: modellezhető az élő kereskedéshez hasonló környezet is, ez óriási pluszt jelent!

És egy tanulságos teszt…

A MetaTrader4 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 á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!) 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 Tick Data Settingsre kattintasz, és ott az Advanced fülre mész, láthatod a képen pirossal bekeretezett részt:

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

A Simulate live execution 4 jelölőnégyzetének 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.

Mondhatjuk, hogy na még mit nem: jó szoftver, jó minőségű tick data, jutalék és változó spread is modellezve – mit akarunk még? Pontosan ezt: mégpedig, hogy úgy tesztelhessünk egy-egy Expert Advisort, hogy tudjuk: vajon járt-e ott tényleg az árfolyam vagy sem?

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 különbséget tud 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 robotok, ahol a két teszt szinte ugyanaz lenne – azokat már talán érdemesebb komolyabban venni. Az ilyen robotok 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 a „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!

Írta: | 2017-09-28T18:59:37+00:00 2017. szeptember 26., kedd|Jó minőségű adatok|2 hozzászólás

A szerzőről:

Radulovic Attila vagyok, a radu.hu tulajdonosa és szerkesztője. Remélem, hasznosnak találod az oldalamon található anyagokat! Célom, hogy hatékony segítséget nyújtsak Neked a kereskedéssel és az automatizálással kapcsolatban. Érdekel a véleményed, kérlek írd meg kommentben!

2 hozzászólás

  1. icramg 2017. szeptember. 27. szerda - 21:26 - Válasz

    Azt gondolom, hogy egy olyan szolgáltatónál, ahol a csúszás “mindennapos”, vagy inkább “minden tickes” avval nem érdemes foglalkozni. A cúszás jelensége elvi szintű probléma kell hogy maradjon egy stratégia működése kapcsán. Megette a fene azt a pizzasütő és házhozszállító céget, amelyik a futár bármelyik, bármikori útjába eső lámpák színére (zöldhullámra) apellálva számolja ki az érkezés idejét, és ha késik a kajával, akkor bukta a cég a pizza árát. Ennél csak profibb alapokra lehet és kell építkezni. A gap egy nüasnsz. Amelyik robot nem képes megkűzdeni a “gap intézményével”, az ki se menjen a ringbe. Vagyis jónak kell lenni gap-el vagy anélkül is.

  2. Radulovic Attila 2017. szeptember. 27. szerda - 22:07 - Válasz

    Bár a példád nem jött át teljesen, egyetértünk, a cikk is erről szól 🙂

Hagyj üzenetet

Adhatok Neked még több ingyenes tartalmat?

Értesítelek hetente megjelenő új tartalmaimról.