und werden Sie Mitglied unserer Fangruppe
Veröffentliche einen Link auf das Skript, damit die anderen ihn auch nutzen können
Bewerten Sie es im Terminal MetaTrader 5
Klasse zum Zeichnen des Momentum unter Verwendung des Ringbuffers - Indikator für den MetaTrader 5
- Ansichten:
- 822
- Rating:
- Veröffentlicht:
- 2016.05.13 14:20
- Aktualisiert:
- 2016.11.22 07:34
- Benötigen Sie einen Roboter oder Indikator, der auf diesem Code basiert? Bestellen Sie ihn im Freelance-Bereich Zum Freelance
Beschreibung
Die CMomentumOnRingBuffer Klasse wurde zur Berechnung des technischen Indikators Momentum (Momentum) mit Hilfe des Algorithmus des Ringbuffers entworfen.
Deklaration
class CMomentumOnRingBuffer : public CArrayRing
Titel
#include <IncOnRingBuffer\CMomentumOnRingBuffer.mqh>
Die Datei der CMomentumOnRingBuffer.mqh Klasse muss in den IncOnRingBuffer Ordner kopiert werden, der in MQL5\Include\ erzeugt werden muss. Zwei Dateien mit Beispielen die von dieser Klasse verwendet werden wurden dieser Beschreibung angehängt. Die Datei mit der Klasse vom Ringbuffer muss auch in diesem Ordner sein.
Klassenmethoden
//--- initialization method: bool Init( // gibt bei Fehler false zurück, bei Erfolg - true int period = 14, // Periode des Momentum int size_buffer = 256, // Größe des Ringbuffers bool as_series = false // true bei Zeitreihen, ansonsten false ); //--- Methode zur Berechnung basierend auf einer Zeitreihe oder einem Indikatorenbuffer: int MainOnArray( // gibt die Anzahl der verarbeiteten Element zurück const int rates_total, // Größe des Array array[] const int prev_calculated, // verabeitete Elemente im vorherigen Aufruf const double& array[], // Array für die Eingabewerte ); //--- Methode zur Berechnung basierend auf separaten Reihenelementen des Arrays double MainOnValue( // gibt den Wert des Momentum für das Mengenelement zurück const int rates_total, // die Größe des Arrays const int prev_calculated, // Elemente des Arrays verarbeitet const int begin, // von wo die signifikanten Daten des Arrays beginnen const long value, // Elementwert des Arrays const int index // der Elementindex ); //--- Zugriffsmethoden auf die Daten: int BarsRequired(); // Gibt notwendige Zahl von Balken zurück, die zum Zeichnen des Indikators benötigt werden string Name(); // Gibt den Namen des Indikators zurück int Period(); // Gibt die Periode zurück int Size(); // Gibt die Größe des Ringbuffers zurück
Die berechneten Daten des Indikators vom Ringbuffer zu erhalten ist wie bei gewöhnlichen Arrays möglich. Zum Beispiel:
//--- Klasse mit den Methoden für die Berechnung des Momentum Indikators: #include <IncOnRingBuffer\CMomentumOnRingBuffer.mqh> CMomentumOnRingBuffer momentum; ... //+------------------------------------------------------------------+ //| Benutzerdefinierte Indikatoriterationsfunktion | //+------------------------------------------------------------------+ int OnCalculate (const int rates_total, // the size of the array price[] const int prev_calculated, // verabeitete Elemente im vorherigen Aufruf const int begin, // von wo die signifikanten Daten des Arrays beginnen const double& price[]) // Array für die Berechnung { //--- Berechnung des Indikators basierend auf Preiszeitreihen: momentum.MainOnArray(rates_total,prev_calculated,price); ... //--- verwende Daten des "Momentum" Ringbuffers, // zum Beispiel, kopiere Daten in den Indikatorbuffer: for(int i=start;i<rates_total && !IsStopped();i++) Momentum_Buffer[i] = momentum[rates_total-1-i]; // die Indikatorlinie ... //--- Rückgabewert von prev_calculated für nächsten Aufruf: return(rates_total); }
Beachten Sie, dass die Indexierung für den Ringbuffer die gleiche ist, wie für Zeitreihen.
Beispiele
- Die Test_Momentum_OnArrayRB.mq5 Datei berechnet den Indikatoren auf Basis der Preiszeitreihe. Die Anwendung der MainOnArray() Methode wird demonstriert
- Die Test_Momentum_OnValueRB.mq5 Datei demonstriert die Verwendung der MainOnValue() Methode. Zuerst wird der Momentum Indikator berechnet und gezeichnet. Dann wird auf Basis des Ringbuffer dieses Indikators ein weiterer Momentum -Indikator gezeichnet.
Das Ergebnis der Arbeit des Test_Momentum_OnArrayRB.mq5 mit der Größe des Ringbuffers von 256 Elementen Bei der Programmierung wurden die Entwicklungen der MetaQuotes Software Corp., Integer und GODZILLA verwendet.
Das Ergebnis der Arbeit des Test_Momentum_OnValueRB.mq5 mit der Größe des Ringbuffers von 256 Elementen
Übersetzt aus dem Russischen von MetaQuotes Ltd.
Originalpublikation: https://www.mql5.com/ru/code/1396
Die Klasse wurde zur Berechnung des technischen Indikators Money Flow Index (Money Flow Index, MFI) unter Verwendung des Algorithmus des Ringbuffers entwickelt.
TrendEnvelopesDer typical semaphore Trend Indikator.
Expert Advisor basierend auf dem Breakout Bars Trend v2 Indikator. Abhängig von den Einstellungen wird der Einstieg bei einer Trendumkehr ausgeüfhrt, d.h. nach Überspringen der gesetzten Anzahl von Fehlsignalen.
Der 4-color АО IndikatorDer 4-color АО Indikator.