Home Systeemhandel Bericht

Nieuwe Kaarsen Detecteren met MQL: Een Gids voor Traders

Bijlage
39103.zip (884 bytes, Downloaden 0 keer)

Als je werkt met een System Trading voor MetaTrader 5, dan weet je dat het essentieel is om op de hoogte te zijn van elke nieuwe tick. Zodra er een nieuwe tick binnenkomt, roept de MetaTrader terminal de standaard OnTick() functie aan. Maar wist je dat er geen standaardfunctie is die je waarschuwt als er een nieuwe kaars (bar) begint of opent?

Om dit te detecteren, moet je de openingstijd van de meest recente kaars in de gaten houden. Zodra deze verandert, weet je dat er een nieuwe kaars is begonnen en kun je daarop reageren. Hieronder vind je voorbeeldcode die zowel met MQL4 als MQL5 werkt en laat zien hoe je dit kunt doen:

// Standaard tick event handler
   void OnTick()
   {
      // Controleer op nieuwe kaars (compatibel met zowel MQL4 als MQL5).
         static datetime dtBarCurrent  = WRONG_VALUE;
                datetime dtBarPrevious = dtBarCurrent;
                         dtBarCurrent  = iTime( _Symbol, _Period, 0 );
                bool     bNewBarEvent  = ( dtBarCurrent != dtBarPrevious );

      // Reageer op een nieuwe kaars en verwerk het.
         if( bNewBarEvent )
         {
            // Detecteer of dit de eerste tick is die ontvangen is en verwerk het.
               /* Bijvoorbeeld, wanneer het voor het eerst aan een grafiek is gehecht en
                  de kaars zich ergens in het midden van zijn voortgang bevindt en
                  het dus niet echt het begin van een nieuwe kaars is. */
               if( dtBarPrevious == WRONG_VALUE )
               {
                  // Doe iets bij eerste tick of in het midden van de kaars ...
               }
               else
               {
                  // Doe iets wanneer een normale kaars begint ...
               };

            // Doe iets ongeacht de bovenstaande voorwaarden ...
         }
         else
         {
            // Doe iets anders ...
         };

      // Doe andere dingen ...
   };

In de bovenstaande code houdt de statische variabele de openingstijd van de kaars bij, zelfs wanneer je terugkeert naar de OnTick() functie. In tegenstelling tot een normale lokale variabele, onthoudt deze zijn gegevens en geeft deze niet vrij wanneer je de functie verlaat. Dit is de sleutel tot het detecteren van een verandering in de openingstijd van de huidige kaars.

Daarnaast is het belangrijk om op te merken dat wanneer de EA voor het eerst op een grafiek wordt geplaatst, de bovenstaande code reageert alsof de kaars net is geopend. Deze situatie vereist speciale behandeling als het anders afgehandeld moet worden.

Vergeet niet dat al mijn CodeBase publicaties nu ook beschikbaar zijn in het tabblad "Public Projects" van MetaEditor onder de naam "FMIC".

Gerelateerde berichten

Reactie (0)