Forex programozás Fórum Kérdések az MQL4 programozási nyelvvel kapcsolatban Teszter model beállítás lekérdezése

Címkézve: 

11 bejegyzés megtekintése - 1-11 / 11
  • Szerző
    Bejegyzés
  • siker
    Tag
    Bejegyzések száma: 16

    Szia Radu!
    A teszterben szinte minden minden lekérdezhető a IsTesting(), IsOptimization(), IsVisualMode(), stb.
    Csak a gyertya kidolgozást model beállítását nem találom (minden tick, kontrol pontok, egész gyertya)

    Nem tudod az milyen függvény név alatt érhető el?

    Radulovic Attila
    Tag
    Bejegyzések száma: 653

    Nincs olyan függvény az MQL4-ben, amivel ezt le tudnád kérdezni.

    siker
    Tag
    Bejegyzések száma: 16

    Köszönöm

    mpeter
    Tag
    Bejegyzések száma: 38

    Én azt csinálnám, hogy megszámolnám két egymás utáni gyertya között hányszor fut le a start függvény. Vagy egyszer, vagy 12-szer, vagy 12-nél többször. Így két-három gyertya elmegy ennek megállapítására, utána mehet a teszt.

    Radulovic Attila
    Tag
    Bejegyzések száma: 653

    Ez jó workaround lehet, majd írd meg hogy mennyire vált be!

    mpeter
    Tag
    Bejegyzések száma: 38

    Megírtam egy minta kódot. Ebből az is kiderült, hogy a 12 kontroll pontból generált tick nem 12, hanem kb.: háromszor 12 ticket jelent. De így is működik. A TICK_TESZT konstansban lehet beállítani, hogy hány gyertyán teszteljen. Én EURUSD kereszten teszteltem, Más devizapáron esetleg a 100-as küszöb értéket változtatni kell.

    ui: A „kisebb-egyenlő” relációt csak negálva tudtam bemásolni, a html miatt.

    //--- Globális változók
    int      Ticks;
    int      Gyertya;
    int      MaxTick;
    int      Model;
    datetime elozo;
    
    int init()
    {
      Gyertya = 0;
      elozo   = -1;
      MaxTick = 0;
      return(0);
    }
    
    #define TICK_TESZT 5
    int start()
    {
      if( !(Gyertya > TICK_TESZT ))
      {
        if( Time[0] == elozo )
          Ticks++;
        else
        {
          if( elozo > 0 ) Gyertya++;
    
          if( Gyertya == TICK_TESZT )
          {
            if( Ticks > MaxTick ) MaxTick = Ticks;
            
            if     ( MaxTick ==  1 ) Model = 0; // egész gyertya
            else if( MaxTick < 100 ) Model = 1; // kontrol pontok
            else                     Model = 2; // minden tick
            
            Comment( "MaxTick = ", MaxTick, "  Model = ", Model );
          }
    
          Ticks = 1;
          elozo = Time[0];
        }
        
        return(0);
      }
    
      // --- Itt jöhet a tesztelés 
      return(0);
    }
    mpeter
    Tag
    Bejegyzések száma: 38

    A *** al megjelölt sort feljebb kell tenni egy sorral, mert csak így lesz a maximális érték benne. Ahogy az előbb írtam az utolsó gyertya előtti tickek száma lenne benne.

    if( elozo > 0 ) Gyertya++;
    if( Ticks > MaxTick ) MaxTick = Ticks; // ***
    if( Gyertya == TICK_TESZT )

    Radulovic Attila
    Tag
    Bejegyzések száma: 653

    Nem rossz, működik a megoldásod!

    COF258
    Tag
    Bejegyzések száma: 30

    Ez miért lehet hasznos, ha ismerjük ezeket az adatokat?

    siker
    Tag
    Bejegyzések száma: 16

    Nem hasznos!
    Csak ha letesztelsz 100,000 db backtest-et és elmeneted magadnak, akkor fél év múlva igencsak jól jön hogy mi volt milyen beállításokkal, milyen kidolgozással (gyertyamodell), stb

    COF258
    Tag
    Bejegyzések száma: 30

    Értem! Köszi a gyors válasz! :-)

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