MetaTrader 5 / Bibliotheken

MovingAverages - Bibliothek für den MetaTrader 5

2276
(53)

Die MovingAverages Library ist Teil des Standardpakets von MetaTrader 5 Client Terminal.

Die Library enthält Funktionen für die Berechnung verschiedener Typen von Moving Averages. Insgesamt existieren 8 Funktionen. Diese können in zwei Gruppen mit 4 Funktionen eingeteilt werden welche logisch zusammengehören.

Die erste Gruppe enthält Funktionen die ein Array entgegennehmen und einfach den Wert eines Gleitenden Durchschnitts an einer angegebenen Position zurückgeben:

  • SimpleMA() - zur Berechnung des Wertes eines Einfachen Durchschnitts simple average
  • ExponentialMA() - zur Berechnung des Wertes eines Exponentiellen Durchschnitts exponential average
  • SmoothedMA() - zur Berechnung des Wertes eines Geglätteten Durchschnitts smoothed average;
  • LinearWeightedMA() - zur Berechnung des Wertes eines Linear Gewichteten Durchschnitts linear-weighted average.

Diese Funktionen sind dazu gedacht den Wert eines Durchschnitts einmalig für ein Array zu ermitteln und nicht für mehrfache Aufrufe optimiert. Falls Sie eine Funktion dieser Gruppe in einer Schleife verwenden müssen (um Werte eines Durchschnitts zu berechnen und diese fortlaufend in ein Array zu speichern) müssen Sie einen optimalen Algorithmus implementieren.

Die zweite Gruppe von Funktionen wird dazu verwendet um das übergebene Array mit Werten eines Gleitenden Durchschnitts zu füllen, basierend auf dem Array mit Initialwerten:

  • SimpleMAOnBuffer() - füllt das Ausgabe-Array buffer[] mit den Werten eines Einfachen Durchschnitts aus dem Array price[]
  • ExponentialMAOnBuffer() - füllt das Ausgabe-Array buffer[] mit den Werten eines Exponentiellen Durchschnitts aus dem Array price[]
  • SmoothedMAOnBuffer() - füllt das Ausgabe-Array buffer[] mit den Werten eines Geglätteten Durchschnitts aus dem Array price[]
  • LinearWeightedMAOnBuffer() - füllt das Ausgabe-Array buffer[] mit den Werten eines Linear Gewichteten Durchschnitts aus dem Array price[].

Funktionen:

//+------------------------------------------------------------------+ //|                                               MovingAverages.mqh | //|                        Copyright 2009, MetaQuotes Software Corp. | //|                                              https://www.mql5.com | //+------------------------------------------------------------------+ #property copyright "2009, MetaQuotes Software Corp." #property link      "https://www.mql5.com" //+------------------------------------------------------------------+ //| Simple Moving Average                                            | //+------------------------------------------------------------------+ double SimpleMA(const int position,const int period,const double &price[]) //+------------------------------------------------------------------+ //| Exponential Moving Average                                       | //+------------------------------------------------------------------+ double ExponentialMA(const int position,const int period,const double prev_value,const double &price[]) //+------------------------------------------------------------------+ //| Smoothed Moving Average                                          | //+------------------------------------------------------------------+ double SmoothedMA(const int position,const int period,const double prev_value,const double &price[]) //+------------------------------------------------------------------+ //| Linear Weighted Moving Average                                   | //+------------------------------------------------------------------+ double LinearWeightedMA(const int position,const int period,const double &price[])  //+------------------------------------------------------------------+ //| Simple moving average on price array                             | //+------------------------------------------------------------------+ int SimpleMAOnBuffer(const int rates_total,const int prev_calculated,const int begin, //+------------------------------------------------------------------+ //| Exponential moving average on price array                       | //+------------------------------------------------------------------+ int ExponentialMAOnBuffer(const int rates_total,const int prev_calculated,const int begin,                           const int period,const double& price[],double& buffer[]) //+------------------------------------------------------------------+ //| Smoothed moving average on price array                           | //+------------------------------------------------------------------+ int SmoothedMAOnBuffer(const int rates_total,const int prev_calculated,const int begin,                        const int period,const double& price[],double& buffer[]) //+------------------------------------------------------------------+ //| Linear Weighted moving average on price array                   | //+------------------------------------------------------------------+ int LinearWeightedMAOnBuffer(const int rates_total,const int prev_calculated,const int begin,                              const int period,const double& price[],double& buffer[])  

Beispiel:

Für Beispiele zur Verwendung siehe Artikel "MQL5: Create Your Own Indicator"

Übersetzt aus dem Russischen von MetaQuotes Ltd.
Originalpublikation: https://www.mql5.com/ru/code/77