Forex robotok: Hogyan teszteld? Hogyan értelmezd a teszt eredményeit..

Kategória: 

Már van egy tesztelésre alkalmas forex kereskedési robotunk. Hogyan lehet ezt optimalizálni? A metatrader elég szűk lehetőséget ad, és az adatsor sem a legjobb. Ha eddig nem tettük volna meg, akkor egy jó minőségű adatsort szerezzünk be a kívánt termékekhez. Ha kész vagyunk, akkor ismerkedjünk meg a metatrader stratégia teszter részével. Miután már egy jó adatbázisunk van, és a kiegészítő is telepítve lett, nézzünk meg, hogy is lehet tesztelni a metatraderrel. 

Az alábbi bejegyzésben a következő témákat tárgyaljuk:

  • Metatrader Startégia Teszter beállítása robotokhoz
  • Expert tulajdonságok beállítása
  • Hogyan teszteljük egy forex robotot, expertet?
  • Melyek azok a paraméterek, amikre figyelni kell a forex robot tesztelésénél?
  • Mire figyeljünk, hogyan értékeljük a tesztelés adatait?
  • A robot visszatesztelés is adhat torz eredményt!

A három részes cikksorozatunk második részét olvasod épp:

Az első lépés a stratégia teszter megnyitása. Az ikonsorból  a "nagyítós" kis ikonnal indul. Teszter ikonjával, vagy a Crtl+R gyorsbillentyűvel indíthatjuk el a tesztert. Ha minden jól megy, akkor az alábbi képet fogjunk látni. Ha a stratégia teszter és a metatrader ismeretlen számodra, akkor az alábbi két bejegyzést olvasd el mielőtt tovább mennél:

Robotok, teszte, optimalizálás

Teszter panelja

A mezők kitöltése lehet, hogy más lesz, lesznek üres mezők is az első indításnál. Vegyük végig, hogy mit, és hol kell beállítani.

Metatrader Stratégia Teszter beállítása robotokhoz:

  • Expert: itt a legördülő menüből kívánt expertet kell kiválasztani, a neve egyezik a telepített fájl nevével.
  • Instrumentum: azt a devizapárt, vagy CFD-t kell a legördülő menüből kiválasztani, amit tesztelni akarunk.
  • Modell: itt három típust lehet választani.
  • Kontroll pont: nagyon gyors, de nem igazán ajánlott ennek a használata, gyors tesztre jó, de csak közelítő eredményt ad. Ha van jó perces adatbázisunk, és legalább 15M-en tesztelünk, akkor ezt ne használjuk. Perces charton, ha valamilyen skalp technikát próbálunk ki, akkor van értelme esetleg, de ilyet inkább ne múltbeli adatokon, hanem élő, de demó számlán teszteljünk. Napos, esetleg négyórás charton való tesztelés esetén jó, mert az eggyel rövidebb idősík gyertyáit veszi figyelembe, így egy napos gyertyában nem 1440 perces kontrollpontot vesz figyelembe.
  • Csak az árak megnyitása: olyan technikánál használjuk, ahol csak a lezáródott gyertyát vizsgáljuk. Gyors, de nem annyival gyorsabb, hogy jelentős legyen, ezért a "Minden tick" beállítást használjuk, így a legrövidebb idősík adatait is vizsgálja. Itt már a valóságoshoz közeli eredményeket kapunk.

Nézzük meg, hogy milyen mód jeleníti meg az órás gyertyát, és már értjük is a három mód közti különbséget. Nem a sebesség (bár az is fontos lehet) a fő szempont, hanem a jó minőség. A másik kettőnél olyan erős eltérések vannak a valóságostól, hogy nem igazán érdemes azokat használni.

  • Időszak megadás: itt, ha be van pipálva a négyzet, akkor az „időponttól” az „időpontig” megadott időintervallumban fog a teszterben megjelenni az adatsor. Ha nincs bepipálva, akkor az első meglévő gyertya idejétől indul. Igény szerint választhatjuk ki az értékeket. Az időpontokat át is lehet írni, de ki is lehet választani a legördülő menüből.  Ha az utolsó napnak a mai napot szeretnénk, erre a legördülő ablakban van lehetőség.
  • Vizuális mód: ha be van pipálva, akkor nyit egy chartot, és ott látjuk, hogy a forex kereskedési robot mit köt. Ha manuális vagy vizuális tesztet csinálunk, akkor ezt mindenképp be kell pipálni. Az első pár alkalommal mindenképp figyeljük meg a robotunk működését vizuális módban is, mert sok jó ötletet adhat, ha látjuk, hogy mit is csinál. A mellette lévő csuszka állítja a teszter sebességét. Sajnos nem lineáris, az első felében nem nagyon változik a sebesség, a végén pedig nagyon nagy lépésközök vannak. Egérrel lehet mozgatni, de ha rákattintunk, akkor az egér görgető gombjával is állíthatjuk, illetve a jobb-bal kurzor billentyűvel is. Csak a vizuális, nyitott chartos módban van szerepe. Optimalizálásnál nem kap szerepet. A mellette lévő kis gombbal le lehet állítani, majd elindítani a teszter futását.
  • Ugrás ide: egy adott időpontra előre ugrik. Két funkciója lehet. Az egyik az, ha egy időszakot (például karácsony-szilveszter között) nem szoktunk kereskedni, akkor nem kell végignézni, hogy lefusson a teszterben ez az idő, át lehet ugrani. Tesztelés közben, ha a tesztet a Stop gombbal állítjuk meg, akkor az adatok elvesznek, de ha a mai napra (vagy a megadott utolsó napra) ugrunk, akkor a tesztet szabályosan fejezhetjük be.
  • Idősík: a tesztben látni kívánt idősík, legördülő menüből választható ki.
  • Spread: A kívánt spread beállítása. A legördülő menüből választhatunk, de saját értéket is megadhatunk. Van egy beállítása, hogy „Aktuális” ha annál a brókernél tesztelünk, ahol éles számlát akarunk nyitni, akkor ez hét közben jó megoldás lehet, de éjjel, amikor tágabbak a spreadok vagy hétvégén már jobb kézzel megadni. A gyertyaadatbázis nem tartalmaz bid/ask árat, így mindenképp meg kell adni ezt, illetve figyelemmel kell megadni.
  • Számunkra nagyon fontos az ”optimalizáció” jelölő négyzet, ahol tesztfuttatás vagy az optimalizáció között lehet választani. Ha be van pipálva, akkor optimalizál.
 
 

Expert tulajdonságok beállítása

Egy esetben kell módosítani, ha nem a szabvány 10.000 kezdő tőkére akarunk tesztelni. Ekkor a Tesztelés fülnél a kezdő betét értékét kell megváltoztatni. Itt nagyon fontos, hogy ha több tesztet végzünk ez az érték egyforma legyen az összehasonlíthatóság miatt. A pozíciók beállításánál általában mindegyik irányt teszteljük, de lehet csak a short vagy csak a longot is tesztelni. Ezt a lehetőséget érdemes kipróbálni, mert lehetséges (többször belefutottam ebbe), hogy csak az egyik irányú kereskedés szebb hasznot hoz. Egy próbát mindenképp megér. Ha az egyik irány sokkal jobb eredményt ad, akkor kezdjük el vizsgálni annak az okát.

Az optimalizált paraméternél sem kell változtatni semmit, de ha másra akarjuk optimalizálni a forex kereskedési robotot, akkor azt állítsuk be. A bemenő adatok fül alatt találjuk azokat az értékeket, amiket panelből tudunk megváltoztatni, illetve itt lehet megadni az optimalizálni akart értéket, és azok induló, és záró értékét, és a lépésközt.

Hogyan teszteljük egy forex robotot, expertet?

A tesztelésnél a változók előtti négyzet legyen üres, és az érték mezőt kell a kívánt értékkel kitölteni. Ekkor a beállított időtávon lefut a teszt, és azt látjuk, hogy milyen eredményt adott volna a forex kereskedési robot. Az optimalizációhoz a kívánt (ne túl sok!) változó előtti négyzetet be kell pipálni, a

  • Start – induló
  • Lépés – lépésköz
  • Stop – az utolsó tesztelt értéket meg kell adni.

Robotok, teszter, optimalizálás

optimalizálásra beállítva az értékek

A képen az adott értéket 1-estől egyenként emelve a 11-ig tesztelje végig, azaz a teszt 11-szer lefut 1..2…3….11 értékkel, és az így elért eredményeket fogja velünk közölni. Az optimalizáció fülön lehet különféle értékeket beállítani, nekünk az alapbeállítás nagyon megfelel.

A fő panelon ezen kívül még három gomb van. Az instrumentum tulajdonságai alatt a beállított instrumentumról kapunk információt. Gyakorlatilag nem használjuk. A chart megnyitása gombbal az éppen lefutott tesztet nyithatjuk meg charton. Ez annyiban más, mint a nyitott charton futtatott teszt, hogy kiírja az expert adatait a chartra. A chart megnyitása gombbal az éppen lefutott tesztet nyithatjuk meg charton. Viszonylag kevés információt ír ki, de hasznos lehet időnként. Én nem használom.

Robotok, teszter, optimalizálás

Ha pedig az expert forrását akarjuk módosítani, akkor az expert módosítása gombot kell használni, a már ismert editorban nyílik meg a forráskód. Bár sokaknak ez már ismert dolog volt, nem ártott átvenni, hogy mindenkinek érthető legyen a jövő alkalommal elkezdett tesztelési folyamat. A tesztelést, illetve az optimalizálást két fontos teendővel kell kezdeni. Az egyik már ismert azok számára, akik a „hogyan állítsunk élesbe egy technikát” című írást ismerik: fel kell állítani azt a paramétersort, aminél elfogadjuk a forex kereskedési robotot. Ezt inkább azoknak kell jól átgondolni, akik ténylegesen keresendő robotot fejlesztenek, és élesben is futtatni akarják. Akik egy vagy pár forex, tőzsdei indikátort vagy éppen egy leprogramozható résztechnikát szeretnének finomítani, azoknak ez kevésbé fontos teendő. Én jellemzően erre használom a forex robotokat, azaz saját stratégiáimat tesztelem vissza, de önállóan kereskedő robotokat nem használok.

A paraméterek, amelyekre figyelni kell a forex robot tesztelésénél

A legtöbb ember megelégszik azzal, hogy a hasznot megnézi, és már mehet is a forex robot éles számlára. Nekünk ez ne legyen elegendő. Minimálisan a visszaesést is vizsgálni kell, hiszen hiába hoz sokat a forex robot, ha a visszaesésünk túl nagy, és menet közben kikapcsoljuk, mert nem bírjuk a nyomást. Amire figyelni kell, ha a nyereség, és visszaesés rendben van, az egymást követő vesztő értéke. Nálunk most az a cél, hogy keressünk egy olyan beállítást, amivel jobb lenne az adott indikátort használni a technikánál. A fő cél az, hogy be tudjam mutatni, hogyan kell(ene) tesztelni, és optimalizálni egy expertet, forex robotot. A többi paraméterre menet közben ki fogok térni a robotnál, így azokat is megismerjük.

Az alapbeállítással mit mutat a forex robot?

Egy próba tesztet futtassunk le, és az adatait mentsük el. Én az alapbeállítással, egy 0,1lotos mérettel futtattam le a tesztet AUDUSD páron, egy órás idősíkon. Másfél éves időszakban futattam a forex  robotot, így nagyon sok kötést csinál a robotunk. Mennyi is legyen? Legalább 100 kötés. Ennél kevesebbre bármit tesztelni teljesen felesleges, hiszen nem ad megfelelő mintavételezést. Nemsokára lesz egy valószínűség számításos sorozat, ott meglátjuk pontosan, hogy miért is nem jó a 10-20-50 kötés! A teszt hamar lefut, és már meg is lehet nézni az eredményt.

Ha a részletes kötéslistára van szükségünk, akkor az „eredmények” fülön nézhetjük meg azokat, itt minden fel lett sorolva, amit az expert csinált. Időnként érdemes ránézni, hogy valóban jól működik-e a forex robotunk, illetve itt meg lehet nézni azt is, hogy van-e kiugró eredmény, illetve a megadott méretnél nagyobb veszteség, azaz lehet elemezni, ha kell. Általában a tesztelés első felében az első tesztnél nézem meg, hogy minden jól működik-e a robot, azután csak a végső eredményeknél.

Robotok, expert, teszter

Jobb gombbal ki lehet másolni az adatokat, vagy éppen egy komplett jelentést is lehet kérni. A jelentés annyiban más, mint a későbbiekben bemutatott, hogy itt a kötések is szerepelnek

Robotok, expert, teszter

Az eredmény grafikon

A grafikon fülnél gondolom, nem kell sokat magyarázni. A teljesítmény grafikont kapjuk meg, ezt is lehet menteni. Ha egyik pontjára kattintunk a grafikonnak, az adott kötés adatait ki is írja. OK, a használata egyszerű. Inkább pár szót ejtsünk arról, hogy mit is látunk. A grafikon nem szép. Azon kívül (és ez most nem is érdekel bennünket), hogy nincs nyereség, még csúnya is. Azt látni rajta, hogy a pluszos eredményt néhány nagy nyereségű kötésnek köszönhetjük, azaz, ha azok nincsenek, akkor biztosan masszív vesztő lenne ezekkel a beállításokkal a kereskedési robot.

Mindig érdemes minimális logikával megnézni a robot grafikonját, és ilyen megfigyeléseket tenni. Sokat elárul a forex kereskedési robotról ez a teljesítmény görbe. Az sem jó, ha nyílegyenesen megy fel, mert olyan kereskedési robot nincs, ami folyamatosan nyerő. Az olyanoknál mindenképp meg kell nézni a lebegő visszaesést is. A görbét nézegetve már el lehet dönteni, hogy van még mit javítani az eredményeken. :)

A jelentés fül már sokkal részletesebb adatokat közöl velünk.

Robotok, expert, teszter

A jelentés fül adatai

A legtöbben az első pillantásukat az Összes nettó profitra vetik, de mi előbb arról győződjünk meg, hogy megfelelő volt-e a tesztelés adatbázisa.

Mire figyeljünk, hogyan értékeljük a tesztelés adatait?

Az Ellentmondásos gyertyák számát nézzük meg. Ha nulla vagy nagyon kicsi, akkor jó az adatbázisunk, és van értelme a tesztekkel foglalkozni. Ha nem, akkor valószínűleg az eredeti, a bróker által adott értékeket használjuk. A jó értékek érdekében olvassuk el a minőségi adatokról szóló cikkeket! Ha jó az adatbázis, akkor már foglalkozhatunk az értékekkel is. A legtöbb értéknek elég beszédes neve van, én csak arra térek ki, ami számomra fontos.

Gyertyák száma a tesztben: Ez mutatja azt, hogy mennyi gyertyát vizsgált a forex robotunk. Ez ne legyen alacsony szám, mert nincs nagyon értelme egy rövid időre tesztelni a rendszert, vagy éppen arra optimalizálni.

Itt nagyon fontos a nagy merítés. Ez nem egy statisztikai felmérés, ahol 100 vagy 200 megkérdezettből vonnak le országos következtetéseket. Fontos, hogy hosszútávú legyen. A hosszú távot az Összes kereskedés száma is jól mutatja. Ez optimalizálásnál ne legyen kisebb, mint 100. Az első optimalizálásnál inkább több legyen, mert ha esetleg a jobb beállítással csökken a kötésszám, akkor se menjen 100 alá.

A kötések megosztása, short, long, illetve a nyerő és a vesztő száma, aránya jelenleg nem számít. Ha túl nagy eltérés van a short és a long között vagy azt látjuk, hogy az egyik nyerő aránya túl nagy a másikhoz, akkor már érdemes lesz vizsgálni azt is, hogy csak az egyik irányba kössön a forex robot. De előtte azt nézzük meg, hogy a forex robotot nem-e egy masszív trendbe futtattuk, ahol a trend megléte torzíthatja az arányokat. Ezt a külön lefuttatott short, és long irányt mindenképp érdemes megtenni, mert vannak olyan megoldások, amik az egyik irányba jobban teljesítenek.

A robot visszatesztelés is adhat torz eredményt!

A nyereséges, és a veszteséges ügyletek mértékét mindenképp vizsgáljuk meg. Itt az az ideális, hogyha az átlag nyerő abszolút értéke nagyobb, mint a vesztőé. Azt is meg kell nézni, hogy az átlag, és a legnagyobb érték milyen viszonyban van egymással. Az itt is látható (a grafikonon is láttuk), hogy itt az átlag, illetve a legnagyobb nagyon eltér. Ha ilyen eltérések vannak, akkor mindig vizsgáljuk meg azt, hogy netalán pár nagyon jó kötés hozta a hasznot, és nem az átlagos kötések. Nem túl egészséges a pár nyerőből adódó nagy eredmény. A vesztőnél is vizsgáljuk meg ugyanezt, mert a túl nagy maximális vesztőt okozhatja az is, hogy valahol nem került be a stop, azaz az expert hibája. Arra mindenképp irányt ad az ilyen, hogy az eredményt jobbá lehet tenni egy megfelelőbb kockázatkezeléssel, ahol a nagy vesztőket elvágjuk.

Az egymást követő vesztő, és nyerők száma, mértéke közül csak az egymást követő vesztőt nézzük meg, mert ha az nagy, akkor lehet, hogy nem fogjuk tudni lelkileg futtatni a forex robotot, mert megijedünk a sorozatos vesztőtől. Nem az a lényeg, hogy mennyit gondolunk, hogy kibírunk, hanem az, amit biztosan kibírunk. Az esetleges nagy nyereséget kimutató robotoknál túlbecsüljük azt, hogy hány darab vesztőt viselünk el, anélkül, hogy a forex kereskedési robotot sutba dobnánk.

Ez az adat kicsit megtévesztő, mert az "egymás utáni vesztőket" mutatja, de egy kilenc vesztő - egy nyerő - kilenc vesztő sorozat az statisztikailag kilenc vesztő egymásután, de kereskedés közben másképp fogjuk látni, és 18 vesztős sorozatnak éljük meg! A teljes visszaesés mutatja meg, hogy a kezdő tőkéhez képest mennyi volt a veszteségünk, azaz: Kezdő betét – legkisebb könyvelt egyenleg értékét mutatja, számunkra ez kevésbé fontos, hanem a maximális lehívás értékét fogjuk vizsgálni. Ez legnagyobb különbség a lokálisan elért legmagasabb könyvelt egyenleg, és az őt követő legkisebb floating (= el nem könyvelt profit, vagyis a nyitott pozíciók jelenértéke) érték között. 

A teljes visszaesésnél az a probléma, hogy ha az első pár kötés nagyon jó eredményt ad, és azután nem esik a kezdő tőke alá az egyenleg, akkor nagyon jó értéket fog mutatni, de ha éppen az első pár kötés nagyon rossz, és nagyon a kezdő tőke alá megy az árfolyam, akkor egy igencsak negatív képet fog mutatni. Futtassuk a forex robotot több időintervallumban is! A relative drawdown értékére kell figyelni, ami a mindenkori könyvelt egyenleg, és a maximálisan elszenvedett veszteség aránya százalékban.

Példa: az induló letétünk 10000 dollár. Ha elvesztünk 2500 dollárt, akkor a relatív lehívás 25% lesz. Amennyiben felküzdjük magunkat 20000 dollárra, itt elvesztünk 5000 dollárt, akkor az érték továbbra is 25% marad. Ha ezután 100000 dollárra növekszik számlánk egyenlege és elbukunk belőle 10000 dollárt akkor a relatív lehívás értéke 10%-ra változik. Ezek az értékek kezelése nem okoz különösebb gondot egy normális pozíciómenedzseléses robotnál, ott van gond és kiugróan durva értékek, ahol nagy lebegő mínuszokat hagynak futni.

Amit még figyelni kell, bár egyéb értékekből is látható a Várt eredmény (ami elég fura megfogalmazás) ez a nettó profit osztva az összes kereskedéssel. Itt a nagyobb érték a jobb, illetve a Profit tényező, ez a bruttó nyereség, és a bruttó veszteség aránya, itt is a nagyobb a jobb, és az egy alatti érték veszteséges expertet mutat. Ok, kicsit hosszúra nyúlt a cikk, de már mindenki ismeri a figyelendő értékeket, azt is, hogy egy tesztben mit hol talál meg. Ráadásul van már egy bázisunk, amit javítani fogunk. A következő részben az optimalizálásról és annak a csapdáiról beszélünk a tervek szerint.

Hűséges olvasóimnak feltűnhetett, hogy sokszor a forex robot összetételt használtam. Ennek az oka, hogy a robotoknál fontos, hogy ne legyen egy extra kockázati,, bizonytalansági tényező: a nagy rések, azok sokasága a teszt alatt. A forexen, azaz a deviza párokon jellemzően csak a hétvégi rések okoznak gondot. De egy nem folyamatosan jegyzett (DAX30, részvény CFD) már napi szinten, esti zárás-reggeli nyitás közt is adhat erős rést, amiben a teljesülés mindig kérdéses a stopnál: a másnapi nyitó áron zárnak, vagy pontosan ott, ahol a stop volt? Ez nem egységes, így ha nem folyamatosan jegyzett, nagy résekkel éktelenkedő instrumentumoknál ezt is le kell tisztázni a programozóval. 

A folytatást itt találod: Hogyan javíts a forex robot eredményén: optimalizáció, automatizált kereskedés

Ha kérdésed van a fentiekkel kapcsolatban, hozzá szeretnél szólni a témához, csatlakozz facebook csoportunkhoz ide kattintva!

Tanfolyamaink:

Új tartalmak

please do NOT follow this link