Neuer Bar-Event-Handler für Indikatoren in MetaTrader 5

Mike 2011.01.21 00:22 17 0 0
Anhang

In diesem Artikel möchte ich dir den Neuer Bar-Event-Handler vorstellen, der dir helfen kann, deine Indikatoren effizienter zu nutzen. Das Konzept dahinter ist einfach: Der Handler ermöglicht es, Recalculations nur dann durchzuführen, wenn ein neuer Bar erschienen ist. Das ist eine großartige Alternative zur direkten Nutzung der OnCalculate()-Funktion.

Hier ist ein einfaches Beispiel für einen Indikator, der eine Linie zeichnet, wenn ein neuer Bar auftritt:

//+------------------------------------------------------------------+//|                                            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 liegt das Geheimnis des Aufrufs der OnNewBarCalculate()-Funktion//+------------------------------------------------------------------+//| Neuer Bar-Event-Handler für den Indikator                          |//+------------------------------------------------------------------+int OnNewBarCalculate(constint rates_total,
                constint prev_calculated,
                constdatetime& time[],
                constdouble& open[],
                constdouble& high[],
                constdouble& low[],
                constdouble& close[],
                constlong& tick_volume[],
                constlong& volume[],
                constint& spread[]) 
  {
//--- Hier kannst du den Code schreiben, ähnlich wie bei OnCalculate();//--- Diese Funktion wird nur aufgerufen, wenn ein neuer Bar erschienen ist (nicht bei jedem Tick)

   PrintFormat("Neuer Bar: %s",TimeToString(TimeCurrent(),TIME_SECONDS));
//--- Rückgabewert von prev_calculated für den nächsten Aufruf
   return(rates_total);
  }
Liste
Kommentar 0