Teszter model beállítás lekérdezése2012-09-06T15:49:46+00:00

Radu.hu 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: 646

    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: 646

    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: 646

    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

A hozzászóláshoz jelentkezz be!

Adhatok Neked még több ingyenes tartalmat?

Értesítelek hetente megjelenő új tartalmaimról.

Hozzájárulok, hogy az adatvédelmi nyilatkozat szerint biztonságosan kezeld megadott adataimat, valamint hasznos anyagokat és egyedi ajánlatokat küldj nekem termékeiddel, szolgáltatásaiddal kapcsolatban e-mailben