Home Technische indicator Bericht

Nieuwe Bar Event Handler voor Indicatoren in MetaTrader 5

Bijlage
199.zip (2.92 KB, Downloaden 0 keer)

In deze blogpost bespreken we de Nieuwe Bar Event Handler en hoe deze kan worden toegepast in jouw tradingstrategieën. Deze techniek is handig omdat het je in staat stelt om herberekeningen alleen uit te voeren wanneer er een nieuwe bar verschijnt. Dit biedt een handige alternatieve methode ten opzichte van de directe aanroep van de OnCalculate() functie.

Hieronder vind je een eenvoudig voorbeeld van een indicator die een lijn tekent wanneer er een nieuwe bar verschijnt:

//+------------------------------------------------------------------+
//|                                            OnNewBarCalculate.mq5 |
//|                                            Copyright 2010, Lizar |
//|                                                    Lizar@mail.ru |
//+------------------------------------------------------------------+
#property copyright "Copyright 2010, Lizar"
#property link      "Lizar@mail.ru"
#property version   "1.00"
#property indicator_chart_window

#include <OnNewBarCalculate.mqh> // hier is het geheim van de aanroep van de OnNewBarCalculate() functie//+------------------------------------------------------------------+
//| Nieuwe bar event handler voor de indicator                          |
//+------------------------------------------------------------------+
int OnNewBarCalculate(const int rates_total,
                const int prev_calculated,
                const datetime& time[],
                const double& open[],
                const double& high[],
                const double& low[],
                const double& close[],
                const long& tick_volume[],
                const long& volume[],
                const int& spread[]) 
  {
//--- hier kun je de code schrijven, vergelijkbaar met OnCalculate();
//--- maar deze functie wordt alleen aangeroepen als er een nieuwe bar is verschenen (niet bij elke tick)

   PrintFormat("Nieuwe bar: %s",TimeToString(TimeCurrent(),TIME_SECONDS));
//--- retourneer de waarde van prev_calculated voor de volgende aanroep
   return(rates_total);
  }

Gerelateerde berichten

Reactie (0)