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

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 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: |2018-07-03T19:44:16+00:002017. 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

70 − = 64

Adhatok Neked még több ingyenes tartalmat?

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

Hozzájárulok, hogy az adatvédelmi nyilatkozat szerint biztonságosan kezeld megadott adataimat, valamint hasznos anyagokat és egyedi ajánlatokat küldj nekem termékeiddel, szolgáltatásaiddal kapcsolatban e-mailben