TraderCentrum.hu » Cikkek » Expert advisor programozás

Expert advisor programozás

2013.08.19.

Íme egy átfogó kép arról, hogy mi hogyan állunk neki egy saját robot fejlesztésnek. Ez a mi munkamenetünk, amit az évek során végzett megannyi tesztelés során kifejlesztettünk.
Az egyes stratégiatípusok (klasszikus trendirányú stoppos, scalp, martingale /trendirányú és trend ellenes/, high frequency trading) tesztelési módszere közt vannak apróbb különbségek. De az alábbi munkamenet eléggé általános ahhoz, hogy használni tudd a robotod fejlesztésekor.
Mi ezt csak segítségnek szánjuk, természetesen el lehet tőle térni. De az eddigi tapasztalatunk azt mutatja, hogy túlságosan eltérni tőle nem érdemes.

A jó ötlettől a jó robotig

1., Kell egy megfigyelés. Egy jól meghatározott előny* a piacon.
2., Keress rá 30-50 példát! A chartot visszatekerve, lehetőleg ugyanazon a devizapáron és időtávon! Először csak a beszállásra koncentrálj, jelöld meg a charton a beszállási pontokat, azaz a trigger gyertyákat. Ezután vizsgáld meg, hogy milyen árfolyam mozgás követi azt! Soha ne egy konkrét  kötés érdekeljen! Ne zavarjon, ha veszteséggel zársz egy kötést, majd utána kimaradsz egy szép nagy mozgásból. Ilyen mindig is lesz, ezt nem tudod megúszni.  Ehelyett a nagy átlagra koncentrálj! Neked hosszútávon kell nyereségesnek lenni. Veszteségek és kimaradt nyereségek folyamatosan lesznek. Ne is próbáld kiküszöbölni őket!
3., Ha kialakult a beszállási jeled (az induló stoppal együtt), akkor a célárat határozd meg! Rengeteg megoldás van a fix célár meghatározására:

  • gyertyatestekből számított célár
  • indikátorok segítségével megadott célár
  • fix pontos célár
  • a kockázati szinthez képest megadott célár
  • Fibonacci használatával
  • több pozíciós stratégiákban az átlagárhoz viszonyítva megadni
  • kézi kereskedés alapján félautomata rendszerrel: Fibonacci 100-on túli értékekkel és technikai zónákkal

Ha már meghatároztad a célárat, akkor teszteld le, hogy mit tud a stratégiád pozíció menedzsment nélkül. Azaz csak az eredeti stopot és a fix célárat használva. Menj végig az előző pontban  megjelölt beszállási jeleken, és összegezd az eredményt pipben.
Eközben kiderül majd, hogy milyen pozíció menedzsment javíthatja az összeredményt.
Látni fogod, hogy mikor  érdemes a tőkédet vagy a profitodat stophúzással vagy realizálással védeni. Lassan ki is alakul már a kész stratégiád.
4., ÍRD le egy papírra az előző pontban megformálódott szabályrendszeredet! Egyszerűségre törekedj! Feltétel – akció. Azaz mikor, mit csinálsz? Segítségként használd nyugodtan az alábbi dokumentum fájt!  Kattints ide a letöltéséhez!
Mikor lépsz be? (milyen feltételnek kell teljesülnie?) Hogyan lépsz be? (mekkora pozícióval, mekkora stoppal és célárral)
Mikor és hogyan zárod a pozíciódat?
Mikor és hogyan menedzseled a pozíciódat? (stophúzás, rákötés stb..)
5.,  Real-timeban teszteld a stratégiát! Itt is egy devizapáron és egy időtávon vizsgálódj! Legalább 20-30 kötést nézz meg, és Excelben vezesd az eredményeket! Itt lehetőséged van könnyedén összehasonlítani több kiszállási módszert is! Segítségként használhatod az általunk használt Excel mintáját.

Kattints ide a letöltéséhez!

Az alábbi szempontok szerint vizsgáld a kötéseket az Excelben:

  • kötés ideje + devizapár + eredeti időtáv (azonosítás)
  • piaci szituáció
  • eredeti kockázat (pip), célár(pip)
  • eredmény1 (szabály szerinti pozi menedzseléssel)
  • erdmény2 (másik pozíció menedzselési módszerrel)
  • eredmény3 (pozi menedzselés nélkül, azaz csak stop vagy TP teljesülését vizsgáljuk
  • befolyásoló tényezők (hír, esemény, ünnepnapi illikviditás stb..)

Az eredményeket pipben is mérhetjük (ha mindig fix lottal köt a stratégiánk) meg kockázat egységben is (ha mindig fix veszteségkerettel kötünk, ilyenkor a $ nyereménnyel arányos végeredményt kapunk majd). Fontos, hogy meg se próbáld összegezni az eredményeket addig, amíg legalább 12 kötés össze nem jön, mert biztosan torz eredményt fogsz kapni.
Ha real-timeban nem vagy a gépnél, akkor az is elég, ha utólag, esténként töltöd ki az Excelt az aznapi kötésekről. De legyél következetes, és a szabályokra koncentrálj! Ne hagyd, hogy a "jövő ismerete" befolyásoljon! Úgyis csak magadat csapnád be!
6., Ha a stratégia túlélte az első 5 pontot, mi akkor adjuk oda a programozónknak.

7., Megnézzük, hogy az elkészült robot ugyanazt csinálja-e az adott időszakra visszatesztelve, mint amit te az 5-ös pontban az Excelbe feljegyeztél. Így könnyen ellenőrizhetjük a robot működését.
8., Ha a robot hibátlanul működik, akkor elindítjuk demó számlán, hogy real-timeban is lássuk működni. Így egyből, még a tét nélküli fázisban elsajátíthatod a robot kezelést. Ez egyébként rendkívül egyszerű. De fontos, hogy rutinos legyél a saját robotod felhasználásában.
9., Visszateszteljük a robotot. Ezzel is gyakorlod a robot kézi menedzselését, és megtapasztalod a piaci szituációknak legmegfelelőbb beállításokat. Különös hangsúlyt fordítunk a „kedvezőtlen piaci szituációkra”.
10., Van egy hiba nélkül működő robotod. Ha a tesztek által körvonalazódott a robotod teljesítménye, és magabiztosan kezeled már az Expert Advisort, akkor legalább cent alapú számlán elindítjuk az eredetileg tervezett pénzösszeggel a robotot. A cent számlán század annyi pénzzel tudsz éles piaci körülmények közt tesztelni.
Természetesen normál számlán is elindíthatod, ha eléggé alaposan backtesztelted az expertet. Klasszikusan 1000 napos visszatesztet szoktam javasolni egy átlagos H1-es stratégiához. Két ALAPSZABÁLY a számla méretezéséhez:

  • a robot alá tett pénzt ne az önfenntartásodra szánt pénzből vond el, mert ilyen élet-halál helyzetben tudat alatt is irreális elvárásaid lesznek az éppen következő kötés kimenetelét  illetően
  • határozd meg, hogy mennyi pénz elvesztését vagy képes gond nélkül elviselni. A tesztekben előforduló legnagyobb vesztő sorozat (drawdown) ha bekövetkezik, akkor se bukj többet, mint a te személyesen elviselhető maximum veszteséged.

11., Védd a tőkéd! A legutolsó és legfontosabb rész: A tőke emelését szigorú profittermeléshez kötjük.
A stratégia átlagos drawdown-ját (magyarul százalékos negatív kilengését) már a tesztekből ismerjük. Ha ez például 6%, és a robotunk 500$ profitot termelt idáig, akkor nem emelhetem jobban a tőkét és a kötésmennyiséget, mint aminek 6%-a az 500 $!