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); }

Kommentar 0