Forex programozás Fórum Kérdések az MQL4 programozási nyelvvel kapcsolatban Több idősíkot használó indikátorok

9 bejegyzés megtekintése - 1-9 / 9
  • Szerző
    Bejegyzés
  • abunba
    Tag
    Bejegyzések száma: 8

    Az MT4 646 build használata óta nem használhatóak back-test üzemmódban azok az addig jól működő indikátoraim, melyek több idősík adatai alapján végeznek számításokat.
    Ezidáig a következőt tettem egy pl. M5-ön futtatott indikátor esetében, mely D1 adatokat is használ:
    A D1 idősíkon a 0. bártól visszafelé megkerestem azt a gyertyát, melynek ideje megegyezik az aktuális M5 gyertya (back-test idő) dátumban kifejezett idejével. (TIME_DATE)
    A 646 build óta a 0. D1 gyertya, tapasztalatom szerint, indikátorok esetében, a back-test elindításának napi gyertyája. Ez eddig jól hangzik, mert azt hittem, hogy mostantól kezdve már nem kell visszafelé lépegetve keresgélni a megegyező D1 gyertyát, hanem bac-test esetén is ugyanúgy fognak működni az indikátorok mint „élesben”.
    Azt vettem észre, hogy nem így van, mert a tesztelés előrehaladtával a 0. D1 gyertya megmarad a teszt indítási idejével megegyező napi gyertyának, tehát az M5-ön végzett back-test előrehaladását nem követi a program D1 idősíkon. Mindez nem mondható el az expertekről, mert azok jól működnek több idősíkon is.
    Az eltérés bemutatására készítettem egy expertet (ezen jól követi a D1 az M5-öt) és egy indikátort. Az indikátort bármely expert futtatása mellett lehet kipróbálni. (pl. MACD Sample)
    Az indikátor működéséről készítettem fényképeket, melyeken látható, hogy a Comment sorban a „Tegnapi nap – Mai nap – stb.” változatlan marad a teszt előrehaladtával.

    
    
    					
    abunba
    Tag
    Bejegyzések száma: 8

    Expert:
    int start(){
    string S=”Tegnap: „+TimeToStr(iTime(Symbol(),1440,1),TIME_DATE);
    S=S+” Tegnapi nap: [„+TimeDayOfWeek(iTime(Symbol(),1440,1))+”]”;
    S=S+” Tegnapi ATR(100): „+DoubleToStr(iATR(Symbol(),1440,100,1),2);
    S=S+” Ma: „+TimeToStr(iTime(Symbol(),1440,0),TIME_DATE);
    S=S+” Mai nap: [„+TimeDayOfWeek(iTime(Symbol(),1440,0))+”]”;
    S=S+” Mai ATR(100): „+DoubleToStr(iATR(Symbol(),1440,100,0),2);
    Comment(S); return(0);}

    Indicator:
    #property indicator_chart_window
    int start(){
    string S=”Tegnap: „+TimeToStr(iTime(Symbol(),1440,1),TIME_DATE);
    S=S+” Tegnapi nap: [„+TimeDayOfWeek(iTime(Symbol(),1440,1))+”]”;
    S=S+” Tegnapi ATR(100): „+DoubleToStr(iATR(Symbol(),1440,100,1),2);
    S=S+” Ma: „+TimeToStr(iTime(Symbol(),1440,0),TIME_DATE);
    S=S+” Mai nap: [„+TimeDayOfWeek(iTime(Symbol(),1440,0))+”]”;
    S=S+” Mai ATR(100): „+DoubleToStr(iATR(Symbol(),1440,100,0),2);
    Comment(S); return(0);}

    Radulovic Attila
    Tag
    Bejegyzések száma: 653

    Elküldenéd az indikátort és az expertet a radu kukac radu pont hu címemre? Megnézem úgy is. Nincs kizárva, hogy a MetaQuotes megint valami disznóságot követett el :)

    Radulovic Attila
    Tag
    Bejegyzések száma: 653

    Úgy nézem, teljesen helytálló a megállapításod. A témától független észrevételem: a jövőben javaslom, hogy használj konstans neveket (1440 helyett PERIOD_D1), mert így nehezebben olvasható a kód.

    Megoldást egyelőre nem tudok, mert ez így valóban nem normális működés, és régen tényleg nem volt ezzel baj.

    Radulovic Attila
    Tag
    Bejegyzések száma: 653

    abunba, végülis jelentetted már a hibát a Service Desk-en? E-mailben mástól is megkaptam ezt a felismerést, úgyhogy egyre inkább úgy fest, hogy bugot találtál, amit jó lenne jelenteni.

    abunba
    Tag
    Bejegyzések száma: 8

    Nem jelentettem, abban bíztam, hogy „kézbe veszed” a dolgot. Nekem egyenlőre nincs regisztrációm és sajnos az angol is gondot jelent. Ha kell regisztrálok és jelentem, de mivel Neked ebben óriási gyakorlatod és jó kapcsolatod van, jobban örülnék, ha megtennéd!
    Ha mégsem, jelezz légyszíves!

    Radulovic Attila
    Tag
    Bejegyzések száma: 653

    Szívesen bejelentem, de idő szűkében vagyok. Így megköszönném, hogy – amennyiben jól írsz angolul – megírnád a leírást, képernyőképekkel együtt (úgy, ahogy nekem küldted, csak angol kiírásokkal). Ezt megtennéd?

    abunba
    Tag
    Bejegyzések száma: 8

    Szia Radu!
    Levélben elküldtem a kért dolgokat! Köszönöm!

    Radulovic Attila
    Tag
    Bejegyzések száma: 653

    Én köszönöm, hozzáadtam a hibajegyet a MetaQuotes rendszerében. Amennyiben kapok választ, jelzem azt ebben a topikban.

    Egyébként kijött egy új build a tesztszerveren (650), és az még nem tartalmaz semmilyen változást ezzel a problémával kapcsolatban.

9 bejegyzés megtekintése - 1-9 / 9
  • Be kell jelentkezni a hozzászóláshoz.