Válasz erre: IsTesting() indikátorban 2012-08-20T20:11:18+00:00
mpeter
Tag
Bejegyzések száma: 35

Van egy multi timeframe indikátor, ami az iMA(NULL,PERIOD_D1,50,0,MODE_SMA,PRICE_CLOSE,0) értéket használja. Most 2012.08.20 19:40 van. Ha például múlt heti adatokon tesztelek M1-es charton, akkor az iMA(NULL,0,50,0,MODE_SMA,PRICE_CLOSE,0) a régi értéket adja, de az iMA(NULL,PERIOD_D1,50,0,MODE_SMA,PRICE_CLOSE,0) a mostani értéket.

Teszt módban az expert és az indikátor esetében nem egyformán állítja be a gyertya tömböket az MT4. Expert esetén minden idősík gyertya tömbje kb.: 1000-el indul, és mindegyiket aktualizálja a tickek pillanatában. Viszont az indikátorokban csak az aktuális idősík gyertya adatai frissülnek, a többi marad a teszt előtti (kb.:65000)

Emiatt ha az indikátor egy függvényt nem aktuális idősík paraméterrel használ, teszt módban nem ugyan azt az értéket adja, mint amit ugyanakkor nem teszt módban adott. Lezárt (nem [0] indexü) gyertyák esetén az iBarShift függvénnyel tudom korrigálni. De az utolsó gyertya esetén ez sem jó, itt el kéne a kódnak ágazni teszt módtól függően. pl.: if(isTesting()) { …tesztmód… } else { …éles… }