Home Systeemhandel Bericht

Detecteer het Begin van een Nieuwe Kaars met MetaTrader 5

Bijlage
41601.zip (795 bytes, Downloaden 2 keer)

Wanneer je werkt met een System Trading, wordt de standaard OnTick() functie aangeroepen door MetaTrader zodra er een nieuwe quote ("tick") binnenkomt. Maar wat als je wilt weten wanneer een nieuwe kaars begint? Daar is geen standaard event voor.

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. Hier is een voorbeeldcode die laat zien hoe je dit kunt doen, compatibel met zowel MQL4 als MQL5:

// Standaard tick event handler
   void OnTick()
   {
      // Controleer op een nieuwe kaars (compatibel met MQL4 en MQL5).
         static datetime dtHuidigeKaars   = WRONG_VALUE;
                datetime dtVorigeKaars = dtHuidigeKaars;
                         dtHuidigeKaars   = iTime( _Symbol, _Period, 0 );
                bool     bNieuweKaars  = ( dtHuidigeKaars != dtVorigeKaars );

      // Reageer op het event van een nieuwe kaars.
         if( bNieuweKaars )
         {
            // Detecteer of dit de eerste tick is die ontvangen is.
               if( dtVorigeKaars == WRONG_VALUE )
               {
                  // Doe iets op de eerste tick ...
               }
               else
               {
                  // Doe iets wanneer een normale kaars verschijnt ...
               };

      // Voer andere acties uit ...
     }
      else
     {
            // Doe iets anders ...
     };

      // Voer andere dingen uit ...
   };

In de bovenstaande code houdt de statische variabele de openingstijd van de kaars bij, zelfs als je terugkomt van de OnTick() functie. Dit zorgt ervoor dat je veranderingen in de openingstijd van de huidige kaars kunt detecteren.

Let op: wanneer de System Trading voor de eerste keer op een grafiek wordt geplaatst, reageert de vorige code alsof de kaars net is geopend. Deze situatie vereist speciale aandacht als je het anders wilt behandelen.

En nog een laatste ding: de broncode van al mijn CodeBase publicaties is nu ook beschikbaar via MetaEditor's "Public Projects" onder de naam "FMIC".

Gerelateerde berichten

Reactie (0)