Pontosabb adatok használata a backtesztek során

A blogmotor üzembe helyezése óta gondolkoztam azon, hogy mi legyen a következő (tartalmilag valójában első) poszt témája. Mindeközben Robi barátom megemlítette hogy talált egy oldalt, ami leírja hogyan lehet hatékonyabban, pontosabb adatokkal backtesztelni. Megnéztem az oldalt, és egy nagyon jó tutorialt találtam a backtesztelés témaköréhez. Ebben a posztban félig-meddig lefordítom a cikket, és hozzáteszem a saját gondolataimat, ötleteimet. A fordítás során megpróbálok annyira hű maradni az eredeti leíráshoz, amennyire csak lehet.

A letöltések a cikk alján, bejelentkezés után tölthetőek le!

Miről szól ez a cikk?

Az eredeti cikk teljes egészében arról szól, hogy hogyan tudunk 4-es MetaTrader terminálunkba ropogós adatokat szerezni külső forrásból. Nyilván mindenki megélte már, hogy backtesztelés előtt / után / közben mennyire idegesítő az, hogy nincsenek vagy hiányoznak az adatok egy bizonyos időszakra. Az adatok pontosságáról, részletességéről meg inkább nem beszélnék - brókere válogatja. Milyen jó lenne ha pontos, akár perces adataink lennének több évre visszamenőleg? És milyen jó lenne, ha az eredeti tickek adatai is rendelkezésre állnának? Nos, a tutorial ezen adatok beszerzéséről, konvertálásáról és használatáról szól - nem csak expert advisor fejlesztőknek!

Alapprobléma

Az alapprobléma ugye abból ered, hogy egy-egy stratégia tesztelésénél jó lenne minél pontosabb tickekkel dolgozni. Sok esetben még az is előfordul, hogy két ugyanannál a brókernél nyitott demó számla két különböző gépen, különböző terminálban ugyanolyan paraméterekkel más eredményt ad. A History Centerből letöltött adatok jobb esetben is csak az 1 perces gyertyák adatait tartalmazzák, amiből a terminál körülbelül megpróbálja megsaccolni a volume (árváltozások száma a gyertyában) alapján a tickek időpontját. Ez a legtöbb esetben biztos, hogy véletlenszerű. Sok robotnak ez nem okoz túl nagy gondot, de mondjuk egy scalper stratégia tesztelésénél felmerülhet az igény a még pontosabb adatokra.

Honnan szerzünk pontosabb adatokat?

Az eredeti cikk szerzője a Dukascopy nevű brókercég honlapján elérhető adatokból dolgozik. A Dukascopy egy ismert és népszerű brókercég, sokak szerint a piacon elérhető legjobb ECN típusú bróker. Fő hátrányuk (persze nem mindenki számára) abból ered, hogy nincs MT4 platformjuk (vagy csak nagyon trükközve), valamint a minimálisan elhelyezendő deposit magas.

A legtöbb céggel ellentétben a Dukascopy ingyenesen rendelkezésre bocsájtja áradatait. Az áradatok általában 2007-től érhetőek el a nagyobb devizapárokra. Annak ellenére, hogy az adatok ingyenesek, üzleti minőségűek és 99%-os backteszt pontosságot adnak. Fontos megjegyezni azonban, hogy ez a százalék gyakorlatilag csak egy szám az FXT fájlok headerjében - ennek ellenére minőségük és folytonosságuk összehasonlíthatatlan az átlagos brókeri adatokkal. Az adatok órás bontásban érhetőek el - a legfrissebb adatok is óránként elérhetőek. A forrás a közvetlenül a Dukascopy "feed" szervere.

Hogyan lesz a Dukascopy adataiból saját adatom?

A procedúra több lépésből áll, melyhez nem árt egy kevés számítechnikai jártasság. A lépések a következők:

  1. az adatok letöltése a Dukascopy szerveréről. Javallott rá szkriptet használni (erről lesz szó ebben a leírásban), de weboldalon keresztül is letölthetőek a fájlok
  2. a Dukascopy .bin kiterjesztésű órás adatfájljaiból CSV fájlok generálása
  3. a CSV fájlok alapján egy MT4 szkript segítségével FXT és HST adatok generálása
  4. A terminál felkészítése az egyéni FXT adatok használatára a backtesztek során

Honnan tudok kész adatokat letölteni a terminálhoz?

A Dukascopy mindenki számára ingyen adja az adatokat, de nem nézi jó szemmel, ha valaki előre konvertált adatokat kínál letöltésre. Ez az oka annak, hogy a cikk eredeti szerzője is levette weboldaláról a torrent formájában elérhető, általa már legenerált adatokat - és éppen emiatt jómagam sem rakok fel előre generált adatokat a blogba.

Eszközök az adatok letöltéséhez

Az adatok letöltéséhez (1) és a CSV generálásához (2) PHP nyelven írt szkriptek nyújtanak segítséget. A PHP futtatókörnyezet letöltésével és beállításával kapcsolatban ez a tutorial ugyan nem nyújt segítséget, de a Google használatával ez a probléma könnyen megoldható. A szkriptet jómagam is csak Linux környezetben használtam, azonban a szkriptek valószínűleg minden további nélkül működnek Windows vagy Mac környezetben is. Windows felhasználóknak kiindulópontnak ezt a linket javaslom. Fontos, hogy nincs szükség webszerverre, mert a php parancssori futtatást is lehetővé tesz - nekünk pedig csakis erre van szükségünk.

A PHP -n kívül egy PHP libraryra is szükség lesz, ez pedig a CURL.

Ha megvan a futtatókörnyezet, töltsd le a dukascopy_php_scripts_21.04.2010.zip fájlt és tömörítsd ki. Négy szkriptet találsz benne:

  • egy szkript (download_dukascopy_data.php), ami az adatok letöltését oldja meg a Dukascopy szerveréről
  • egy szkript (process_dukascopy_data.php), ami a Dukascopytól letöltött .bin fájlokból generál CSV fájlt
  • process.bat és process.sh - az előbbi Windows, az utóbbi pedig Linux rendszerekhez. Kvázi egy parancsfájl az adatok generáláshoz.

download_dukascopy_data.php

Kezdjük az első lépéssel, azaz szerezzünk adatokat a Dukascopytól! A download_dukascopy_data.php fájlban csak a $currencies változó tartalmához kell nyúlnunk, máshoz nem. A tömb két, számunkra igen fontos adatot tartalmaz: az instrumentum nevét mint kulcs, és a legkorábbi letöltendő adat dátumát UNIX timestampben mint érték.

Aki nem ismeri, annak röviden a Unix Timestampről: "A Unix-idő vagy POSIX idő a számítástechnikában a UTC szerinti 1970. január 1. éjfél óta eltelt másodpercek száma, a szökőmásodperceket nem számolva." (wikipedia)

Mivel a Dukascopy szervere ingyen bocsájtja rendelkezésünkre az adatokat, valószínűleg ők is értékelik, ha nem bombázzuk őket felesleges lekérésekkel. Én azt csináltam, hogy letöltöttem a számomra fontos instrumentumok adatait 2007-től, és innentől kezdve csak a legfrissebb (azaz hiányzó) adatokat kérem le a szervertől. Ezt pedig - akár automatizálva, akár manuálisan - a unix idő megadásával lehet megtenni.

Az eredeti download szkriptet érdemes módosítani, mert abban egy vagonnyi devizapár fel van sorolva. Mivel a letöltés elég hosszú időt vesz igénybe, érdemes a próbát egy darab instrumentummal megtenni. Módosítsuk a download_dukascopy_data.php fájlban a $currencies-t a következőre:

$currencies = array(

"EURUSD" => 1175270475

);

Ez azt adja meg a letöltő szkriptnek, hogy csak az EURUSD árfolyamait töltse le. Na de mikortól? Aki nem született unixbuzerátor vagy webfejlesztő, annak ez a szám nem sokat mond. Csináljunk belőle hát ember számára is olvasható időpontot, pl. ezen vagy ezen a weboldalon keresztül ! Figyeljünk arra, hogy az időzónát helyesen adjuk meg. A Dukascopy adatai GMT időzónában vannak, Magyarország időzónája pedig GMT+2. Ennek ellenére én GMT időzónában használom az adatokat, mivel a legtöbb bróker is ezen időzónában működik.

Tehát ha például csak 2010. január 1-től szeretnénk adatokat letölteni, akkor a unix timestampünk (2010. 01. 01. 00:00:00, GMT-ben): 1262304060. A $currencies tömb kis akciónk után így fest:

$currencies = array(

"EURUSD" => 1262304060

);

Természetesen ha mondjuk szükségünk van ugyanígy több devizapár adataira, akkor kiegészíthetjük a tömböt további adatokkal:

$currencies = array(

"EURUSD" => 1262304060,

"EURJPY" => 1262304060,

);

Nem egy nagy ördöngősség, ugye? Arra nagyon figyeljünk, hogy a tömb elemei közé mindig kerüljön egy vessző. Az nem fogja zavarni a PHP fordítóját, ha az utolsó vessző után nincs következő adat a tömbben.

Indítsuk el a szkriptet parancssorban:

php download_dukascopy_data.php

A letöltés ekkor megindul, tapasztalatom szerint maximum 150kbyte/sec sebességgel. Ha valami hiba történik, azt látni fogjuk a képernyőn megjelenő hibaüzenetekből. Alapbeállításként a szkript abba a könyvtárba ment, ahol saját maga van, devizapáronként külön könyvtárba. Amennyiben letöltődött a 2010-es összes adat (ez devizapáronként lehet akár egy-másfél óra is), legközelebb már csak a legfrissebb adat timestampjétől terheljük újra a szervert. (ez annyit tesz, hogy ha nem 2010. január elseje timestampjét adod meg a tömbben, hanem mondjuk a mai nap 0 órájáét)

Előfordulhat, hogy a szkript a letöltés folyamán hibákba fut bele. Ezt a képernyőn is, de az error.log fájlban elmentve is megtaláljuk. Amennyiben missing data-ra panaszkodik a szkript, az csak annyit tesz, hogy a Dukascopy szerverén nincsen meg az adott órára vonatkozó fájl. Ezen ne idegeskedjünk, mert nagyon ritkán fordul elő (és legtöbbször az épp aktuális óránál, ami logikus). Ha azonban 502-es (Bad Gateway) hibaüzenetet kapott a szkript, akkor azok a fájlok biztosan hiányoznak. Ha a szkriptet újra lefuttatjuk az eredeti timestamppel, akkor csak a hiányzó fájlokat fogja lekérni a szervertől. Az első próbálkozásom folyamán 2007-es adatoktól napjainkig indított letöltés során 26 fájl lekérése során kapott a szkript 502-es hibaüzenetet. Ezek a fájlok a második körben, a szkript újrafuttatásánál pótlódtak. Jó tanács: nem érdemes idegeskedni, mert minden adat lejön - ha nem is azonnal elsőre.

Ne lepjen meg senkit az sem, hogy a hétvégék, ünnepnapok adatait rengeteg nulla byte méretű fájl mutatja majd a letöltések között. Szóval a sok nullás fájl nem hiba, hanem tudatos koncepció eredménye.

process_dukascopy_data.php

Ez a szkript hivatott a letöltött temérdek .bin kiterjesztésű fájlból CSV fájlokat generálni, amelyeket így majd konvertálhatunk a későbbiekben. A szkript használata - mint fentebb már utaltam rá - történhet kézzel és történhet automatizálva is. Először nézzük meg az egyszerűbb, kézi változatot - az automatizált bat és sh úgyis csak ezen parancsok gyűjteményét tartalmazza majd.

Szintén parancssorból, másoljuk a következő parancsot terminálunkba:

php process_dukascopy_data.php EURUSD 201001 201006 /tmp/EURUSD.csv

Ez a parancs 2010 januárjától 2010 júniusig dolgozza fel az adatokat. Ez azt jelenti, hogy 2010 január elsejének nulla órájától 2010 május 31. napjának utolsó percéig eltelt idő alatt történt árfolyamváltozásokat fogja tartalmazni CSV fájlunk.

A generálás minden gépen eltérő lehet, de a letöltéshez képest mindenképpen gyorsabb lesz.

Amennyiben az előző napon letöltöttük az összes számunkra fontos devizát, a generálást beütemezhetjük a process.bat / .sh segítségével. Legyen sok szabad helyünk, mert az adatok és a CSV fájlok is rengeteg helyet képesek felemészteni. (példa: 2007-től 2010 júliusáig az EURUSD CSV adatai közel 6 gigabájtot foglalnak); az eredeti szerző szerint az összes instrumentum adatai .bin fájlokként 7,5 gigabájtot, CSV formátumban pedig kb. 60 gigabájtot foglalnak.

A CSV fájlok felhasználása - konvertálás

Elérkeztünk a történet feléhez - van már adatunk, de csak CSV-ben. Fontos megjegyeznem, hogy ez a CSV nem olyan adatstruktúrát tartalmaz, amelyet a MetaTrader history centerébe importálni tudnánk, ezt megpróbálni is felesleges. Ezért szükségeltetik még egy utolsó lépés, amely során a terminál saját formátumába konvertáljuk a CSV adatokat egy MetaTrader szkript segítségével.

  1. Másold be a dukascopy_mql_scripts_22.04.2010.zip tartalmát a megcélzott MT4 főkönyvtáradba!
  2. A tick adatokat tartalmazó CSV fájlt (EURUSD.csv) másold be az experts\files\ könyvtárba; innen fogja kiolvasni az MQL szkript az adatokat
  3. Nyiss egy EURUSD chartot (értelemszerűen ha EURJPY adatokat akarsz konvertálni, akkor EURJPY chart kell neked)
  4. Válaszd ki a számodra szükséges idősíkot (ha csak H1-ben akarsz backtesztelni, akkor H1; az összes kívánt idősíkonként el kell végezni a konverziót!)
  5. Kattints kétszer a Navigátorban a Dukascopy2FXT szkriptre (a szkriptek között találod) és állítsd be a paramétereket. Alapesetben nem szükséges átállítani semmit, a paraméterek részletezését lásd lentebb!

Fontos: a HST fájlokat a terminál a chartok böngészése során használja, míg az FXT állományokat a backtesztek során.

A CsvFile paraméterhez nem szükséges semmit írnod, csak abban az esetben, ha nem EURUSD.csv a fájlneved. Ha CreateHst paraméter true, akkor a chart számára használható HST formátum legenerálásra kerül minden idősíkba, tekintet nélkül a megadott tól-ig dátumokra. Amennyiben csak egy új FXT állományt generálsz a jövőben, szükségtelen ezt a paramétert piszkálni.

A Spread paraméter használatával az FXT fájlnak különböző méretű spreadet állíthatsz be. Ha nullán hagyod, akkor a brókered aktuális értéke kerül be az FXT fájlba. (FxOpen és EURUSD esetén pl. 2 pip). Figyelj arra is, hogy több bróker változó spreadet használhat, illetve arra, hogy 4 vagy 5 tizedesjegy pontosságot használ a brókered. Kis trükk a spread változtatására az FXT újragenerálása nélkül: nyisd meg a már legenerált FXT fájlt egy hexeditorban; a spread a 0xFC címen található.

A StartDate és EndDate mezők az FXT fájl maximális mérete miatt szükségesek, ugyanis egy programozási hiba miatt az MT4 terminál 2 gigabájt feletti FXT fájlokkal nem tud mit kezdeni. Éppen ezért egy kezdő és végdátum megadásával trükközhetjük ki ezt a problémát. Javaslom egyébként a maximum 1 éves időtávú FXT fájlok generálását, és külön terminálban való tesztelését. Magyarul 2009, 2010 külön terminálban tesztelhető. A két mező formátuma YYYY.MM.DD kell, hogy legyen - amennyiben nem adsz meg adatot, a legrégebbitől a legújabb adatig minden adatot felhasznál a konverter.

Kattints az OK -ra. Innentől kezdve csak az experts\files\ könyvtárt frissítgetve látsz valami történést, a szkript csak hiba esetén szól, illetve ha befejezte a konvertálást. Minden üzenetet Alert formában jelenít meg.

A szkript lefutása után minden HST és FXT fájlt megtalálhatsz az experts\files\ könyvtárban. A konvertálás jellemzően 5-30 percet vesz igénybe, a processzorsebességtől függően.

Ha Vista  vagy 7 felhasználó vagy, és nem találod a fájlokat ebben a könyvtárban, akkor nagy valószínűséggel a virtualizáció miatt máshol lesznek. Próbáld a c:\ProgramData\ vagy a c:\Users\felhasználónév\AppData\Local\VirtualStore\Program Files\ könyvtárakon belüli keresést! Ha itt sem találod őket, akkor keress rá a gépeden FXT fájlokra. (erről a problémáról részletesen az utolsó előtti bekezdésben olvashatsz)

Még egy jellemző probléma, hogy a MIN_LOT és a LOT_STEP szimbólumadatok hiányoznak a legenerált FXT fájlból. Ez amiatt fordulhat elő, hogy az adott terminál még sosem volt kapcsolódva a brókerhez. Jellemzően "szűz" telepítéseknél probléma ez. Megoldani a legkönnyebb: demó számla regisztrálása (vagy éles használata), kapcsolódás, és csak ezek után konvertálás.

A konvertált fájlok felhasználása

Miután a szkript lefutott, a fent taglalt fájlokat át kell helyezni a megfelelő könyvtárakba. Először lépj ki a terminálból, majd töröld ki az összes fájlt a history\Szervernév\, a history\downloads\ és a \tester\history\ könyvtárból. Esetemben például a history\FXOpen-Demo\ könyvtár teljes tartalmát töröltem. A másolási és törlési procedúrát minden szerver esetében el kell végezni, ha egy terminálból mondjuk éles és demó számlát is használsz (és mind a kettőnél használni akarod a legenerált adatokat).

Ezek után másold be az összes .hst fájlt a history\Szervernév\ könyvtárba, valamint az összes .fxt fájlt a \tester\history könyvtárba. Ezzel az adatok már a megfelelő helyen vannak, már csak a terminál indítását kell egy picit megbolondítani. Hogy miért? Az MT4 terminál egy ideje nem engedi az egyénileg generált fxt fájlok felhasználását. Természetesen ezt egy kis trükkel ki lehet játszani, szükségeltetik hozzá a 226_loader.zip tartalma. (amennyiben 225-ös buildet használsz, akkor pedig 225_loader.zip). Lehetőség van MT4 szkripttel is használni az adatokat, de ezzel kapcsolatban nem tudok tanácsot adni - olvasd el az eredeti leírást. A zip fájl egy-egy úgymond betöltő exe-t tartalmaz, amely átállít egy bizonyos beállítást aztán elindítja a terminal.exe -t. Ha nem így indítod a terminált és backtesztelsz, akkor a terminál mindenáron új FXT fájlokat akar generálni, és a hosszú kínok árán legenerált FXT fájlodat felül fogja írni. Éppen ezért két javaslat:

  • a terminál parancsikonjait töröld ki, és csinálj újakat, melyek a loader.exe-re mutatnak; az ikont és a parancsikon nevét természetesen arra állítod, amire tetszik.
  • konvertálás és generálás után a kapott fájlokat (csv, hst, fxt) azonnal mentsd el egy olyan helyre, ahonnan újra elő tudod venni őket!

A terminál indulása után a Beállítások->Chartokok fülön a "Max oszlop a múltban" és "Max oszlop a chartban" értékét állítsuk minél nagyobbra (max 2147483647), és csukjunk be minden chartot ha esetleg nyitva lett volna. Nyissunk egy új chartot a konvertált instrumentumra, és az Auto Scrollt kikapcsolva menjünk vissza a konvertált adatok első időpontjához. Remélhetőleg más adatokat fogunk látni, mintha csak brókerünk adatait használnák.

A legizgalmasabb rész kétségkívül a Stratégiai teszter résznél vár minket: teszteljünk egy kisebb időszakra, az adott devizapáron egy választott robottal. Az első különbség rögtön feltűnik: nincs kalkuláció, a teszt rögtön indul. A teszt végeztével a "Jelentés" fülön a Modelling quality értékénél 99%-ot kell, hogy lássunk. Fontos ellenőrizni, hogy a tester\history\ könyvtár tartalma változott-e a teszt végeztével. Amennyiben igen, akkor valamit nem jól csináltunk, vagy nem a loaderen keresztül indítottuk el a terminált.

Megjegyzések Windows Vista és Windows 7 használata esetén

A visszajelzések és saját tapasztalatom kapcsán fény derült arra, hogy az említett két operációs rendszer esetében igen komoly idegi problémák törhetnek felszínre bizonyos esetekben. Az ok: a Windows Vista és 7 esetében is létezik egy ún. "Kompatibilitási mód". A probléma gyökere az, hogy a legtöbb számítógépen 64 bites Vista vagy 7 van telepítve. A MetaTrader terminált viszont mindkét rendszer 32 bites programként kezeli, viszont ily módon több fájlt "elrejt" a felhasználó elől - így például hiába keresünk a logs könyvtárban logfájlokat, azok nem léteznek - vagyis léteznek, csak máshol.
Amennyiben furcsaságokat tapasztalunk, illetve nem vagy nem megfelelően működik a visszatesztelés és nem 99%-os pontosságot jelez ki a terminál, a következő dolgokat szükséges ellenőrizni:
  • a c:\Users (vagy Felhasználók) könyvtáron belül rejtett mappaként található egy AppData könyvtár (amennyiben nem látszik, akkor a Vezérlőpult -> Mappa beállításai -> Rejtett fájlok és mappák megjelenítése hivatkozásra kattintva kikereshető a "Rejtett fájlok és mappák" sor, ezen belül pedig a "Rejtett fájlok, mappák és meghajtók megjelenítése" rádiógomb - a párbeszédpanelt jóváhagyva már láthatóvá válik az AppData könyvtár)
  • az AppData könyvtárban navigáljunk el a Local\VirtualStore\ könyvtárba. Ha itt látunk egy Program Files(x86) vagy ehhez hasonló könyvtárat, akkor ezen belül a megfelelő terminálkönyvtárban eddig nem látott fájlokat érhetünk el. Előfordul, hogy a konvertáló szkript ide, és nem a megszokott c:\Program Files könyvtárba dolgozik. Legyünk alaposak, és vizsgáljuk meg ezen könyvtárakat is!
  • A fenti fájlok előhívhatóak a "Kompatibilis fájlok / Compatibility  files" gombbal is az intézőből - Total Commander használata esetén viszont a fenti módszer az eredményesebb.

Végszó

Habár az eredeti cikk foglalkozik még többek közt más forrásból történő adatszerzéssel, változó spreades adatok használatával is, úgy gondolom hogy legtöbbünknek ez a kiindulópont tökéletesen elég. Ha valakinek mégsem, akkor az angol nyelvű leírás biztosan választ ad kérdéseire.

Örülnék neki, ha visszajelzéseket kapnék arról, hogy mennyire volt érthető ez a kis tutorial, valamint hogy ki milyen tapasztalatot szerzett a fentiek alkalmazása során.

Köszönet és források

Köszönet az eredeti cikkért a szerzőnek, Birtnek. Az összes php és MQL szkript az ő fejlesztése, a zip csomagokban semmilyen módosítást nem eszközöltem.

Letöltések

A legfrissebb betöltőt és a témával kapcsolatos újdonságokat a Hasznos eszközök menüpont Jó minőségű tick adatok menüpontjában keresd!

Kiegészítések

1) A cikk megírása óta új információk derültek ki a teszteléssel és az új MetaTrader 4 verziókkal kapcsolatban, melyeket ezen a címen olvashattok el.

2) AttisCode jóvoltából a Windowson történő PHP telepítésről olvashattok pár hasznos tanácsot:

"Segíteni szeretnék azoknak, akik esetleg a PHP telepítésnél már elakadtak.

Szerencsére jóideje elérhető a nagyszerű WampServer Tools, amit főleg a weboldal készítők ismernek, és amivel akár egy komplett webszervert is csinálhatunk a gépünkből kb. 5 perc alatt. Nekünk csak a PHP környezetre lesz szükségünk.

A Wamp Servert innen lehet letölteni.

Telepítéséhez csak indítsuk el, adjuk meg munkakönyvtárnak pl. a

c:\wamp

könyvtárat és nagyjából más teendőnk nincs. A Wamp Manager automatikus elindítását ne kérjük, mert nincs rá szükségünk.

c:\wamp\php könyvtárban szerkesszük meg a php.ini-t, keressünk rá benne a "curl" szóra és engedélyezzük ezt a funkciót a ";" eltávolításával:

;extension=php_cpdf.dll
extension=php_curl.dll
;extension=php_dba.dll

Mentés és kilépés után ezt a könyvtárat használjuk a Dukascopy adatok letöltéséhez is, ezért ide másoljuk be a download_dukascopy_data.php -t és itt futtassuk le

php download_dukascopy_data.php

Ebben a könyvtárban létre fognak jönni a letöltődő devizapárok neveinek megfelelő alkönyvtárak és benne az adatok.(Megjegyzés: a működő php-s környezet sikeres elkészítése után az eredeti leírással folytatható a munka.)

Még annyit, hogy a fentiek az előző verzióra a WAMP 5.0 -ra vonatkoznak, ami már hivatalosan csak a sourceforge.net-en érhető el, vagy még pl. itt.

Valószínűleg a WampServer újabb verziói sem különböznek lényegesen a korábbiaktól."

Megjegyzés: jelenleg (2011. január 5.) a 64 bites rendszerekhez letölthető Wamp Server 2.1c verzió telepítője sajnos hibás.

A legfrissebb betöltőt és a témával kapcsolatos újdonságokat a Hasznos eszközök menüpont Jó minőségű tick adatok menüpontjában keresd!

További cikkek a kategóriában

Kapcsolódó fórum

A kommentek helyett 2012. márciusától az ide kapcsolódó alfórumban tudtok új témákat létrehozni.

Címlap Fórumok Kérdések a pontos adatokkal kapcsolatban

Ennek a fórumnak a tartalma: 26 témakör és 296 válasz, utolsó frissítés:  Radulovic Attila 2 hét, 6 nap.

15 témakör megtekintése : 1-15 / 26
15 témakör megtekintése : 1-15 / 26

Új témakörök létrehozásához jelentkezz be, vagy regisztrálj!

Oszd meg, ha hasznosnak találtad!

20 hozzászólás a(z) “Pontosabb adatok használata a backtesztek során” bejegyzéshez

  1. Köszi Radu ezt a óriási segítséget. Mindent sikerült megcsinálni a leírás szerint. Win-7-nél simán működik probléma nélkül, ha az .fxt-s fájlokat írásvédetté teszem. Egy hete tesztelek 99%-kal, és most már úgy gondolom, hogy ennél kisebb pontossággal már nem is érdemes próbálkozni. Várom a további okosságokat :)

  2. Nagyon jó a cikk, és köszi, mindent meg tudtam csinálni úgy ahogy le van írva.
    Egy hónapja kezdtem és csak egy apró hiba merült fel, mégpedig az, hogy a tester\history könyvtárból az .fxt file-ok törlődnek. Ettől eltekintve jól működik, úgy vettem észre minden második indításra törli a könyvtárból a már használt file-okat.
    Ha tud valaki segíteni, előre is köszönöm.

  3. Sajnos a 226-os loader Backdoorral fertőzött így nem tudom letölteni (legalábbis Kaspersky nagyon kiabál miatta), nem lehet valahogy privátba hozzáférni a konvertált adatokhoz, nincs kedvem a gépemre szabadítani valami trójait.

    • Nem fertőzött, csak mivel egy másik alkalmazást egyéni módosítással tölt be, néhány vírusírtó ezt backdoor/trojan funkcióként értelmezi.

      A Dukascopy kifejezett kérése az, hogy generált adatokat ne terjesszen senki - legalábbis publikusan.

      Ellenőrizd nyugodtan a fájlt több vírusírtóval, mert csak néhány -ezek szerint a Kaspersky is - jelez fals riasztásként. Az eredeti leírásban az erre vonatkozó rész:

      "Edit 29.03.2010: Added a build 226 loader. It also includes an MQL script for the people who don’t want to run EXE files or who have particularly dumb antivirus packages;" - közvetlen fordításban:

      "Szerkesztve 2010. 03. 29-én. 226-os build loader hozzáadva. Egy MQL szkriptet is tartalmaz azok számára, akik nem akarják futtatni az EXE fájlt mert béna antivírus programjuk van."

      A csomagban lévő szkriptet rakd bármely chartra, mielőtt backtesztelni szeretnél és ebben az esetben ugyanúgy tudod használni a saját magad által generált adataidat. (ezt ki fogom próbálni én is, és beleírom a posztba) Annyi a fontos, hogy ebben az esetben az MT4 terminálodból amelyen tesztelni szeretnél kizárólag egy példány futhat. Ez szerintem nem akkora gond.

      Köszönöm a visszajelzést - kipótolom az információkkal a posztot hamarosan.

  4. Visszajelzés: Kiegészítés az egyénileg elkészíthető adatokhoz | Radu blogja

  5. Visszajelzés: Betöltő 228 és 229 build számú MetaTraderhez | Radu MetaTrader blogja

  6. Sziasztok!

    Segíteni szeretnék azoknak, akik esetleg a PHP telepítésnél már elakadtak.
    Szerencsére jóideje elérhető a nagyszerű Wampserver tools, amit főleg a weboldal készítők ismernek, és amivel akár egy komplett webszervert is csinálhatunk a gépünkből kb. 5 perc alatt, de nekünk csak a PHP környezetre lesz most szükségünk.

    Innen lehet letölteni:
    http://www.wampserver.com/en/index.php

    Telepítéséhez csak indítsuk el, adjuk meg munkakönyvtárnak pl. a
    c:\wamp
    helyet és nagyjából más teendőnk nincs, Wamp Manager automatikus elindítását ne kérjük, mert nincs rá szükségünk.

    c:\wamp\php könyvtárban szerkesszük meg a php.ini -t, keressünk rá benne a "curl" szóra és engedélyezzük ezt a funkciót a ";" eltávolításával:

    ;extension=php_cpdf.dll
    extension=php_curl.dll
    ;extension=php_dba.dll

    Mentés és kilépés után ezt a könyvtárat használjuk a Dukascopy adatok letöltéséhez is, ezért ide másoljuk be a download_dukascopy_data.php -t és itt futtassuk le

    php download_dukascopy_data.php

    Ebben a könyvtárban létre fognak jönni a letöltődő devizapárok neveinek
    megfelelő alkönyvtárak és benne az adatok.

    Még annyit, hogy a fentiek az előző verzióra a WAMP 5.0 -ra vonatkoznak, ami már hivatalosan csak a sourceforge.net-en érhető el, vagy még pl. itt:

    http://download.chip.eu/hu/Wamp-Server-WAMP5-2.0_699249.html

    de a WampServer 2.1 sem különbözik lényegesen
    az elődjétől, csak még nem teszteltem.

    • Ez nem kérdés, én is sokat küzdöttem a backtestekkel a hiányos
      adatok miatt.

      Nem a reklám helye, de aki robotot fejleszt az javaslom próbálja ki a NinjaTratdert, mert abban rövidebb idő alatt lefut egy több éves teszt, mint amennyi idő alatt az MT4 összeszedi az adatokat a test elején....

    • Köszi.

      NinjaTrader: hallottam már róla, fel is telepítettem már egyszer. De mire hozzákezdtem volna értelmezni, fizetős lett. Ez pedig nagyon nem tetszett.

      A MT4 teszter része eléggé béna, ez való igaz. Mentségére legyen mondva, hogy elég régi a 4-es verzió már. Az 5-ös verzió újdonságai mellett viszont van jópár olyan korlátozás, ami miatt egyelőre nem szimpatikus. Mondjuk ezzel szinte az egész trader közösség így van, ahogy a fórumokon olvasom..

  7. Visszajelzés: Pontosabb adatok – egyszerűen | Radu MetaTrader blogja

  8. Van egy kis gond:
    Nekem a download_dukascopy_data.php csak 2012 Jan végéig tölti le az adatokat. Lehet, hogy a dukascopy újabbakat már nem ad ki?
    Valakinek letölt ennél újabb múltbéli adatot?

    • Ez jogos, köszi az észrevételt.

      Ezen a címen sikeresen le tudtam tölteni márciusi tick adatokat. Először egy flash alapú valamibe tölti le a gépedre (ideiglenesen), aztán a legvégén lehet Save As -zel menteni.

  9. Ez rendben, de ezeket az adatokat milyen programmal lehet átkonvertálni, hogy az Mt4-be importálható legyen?
    Tudsz linket küldeni?