Schau, wie man Roboter kostenlos herunterladen kann
Finden Sie uns auf Facebook!
und werden Sie Mitglied unserer Fangruppe
Interessantes Skript?
Veröffentliche einen Link auf das Skript, damit die anderen ihn auch nutzen können
Hat Ihnen das Skript gefallen?
Bewerten Sie es im Terminal MetaTrader 5
Indikatoren

Klasse zum Zeichnen des Stochastic unter Verwendung des Ringbuffers - Indikator für den MetaTrader 5

Ansichten:
777
Rating:
(21)
Veröffentlicht:
2016.05.13 14:10
Aktualisiert:
2016.11.22 07:34
\MQL5\Include\IncOnRingBuffer\ \MQL5\Indicators\IncOnRingBuffer\
Benötigen Sie einen Roboter oder Indikator, der auf diesem Code basiert? Bestellen Sie ihn im Freelance-Bereich Zum Freelance

Beschreibung

Die Klasse CStochasticOnRingBuffer  wurde zur Berechnung des technischen Indikators Stochastic Oszillator (Stochastic Oszillator) mit Hilfe des Algorithmus des Ringbuffers entworfen. 

Deklaration

class CStochasticOnRingBuffer

Titel

#include <IncOnRingBuffer\CStochacticOnRingBuffer.mqh>

Die Datei der CStochasticOnRingBuffer.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 des Ringbuffers und die Klasse des Moving Average müssen sich auch in diesem Ordner befinden.

Klassenmethoden

//--- initialization method:
bool Init(                                 // gibt false bei Fehler zurück, bei Erfolg - true
   int            period_k    = 5,         // Periode %K
   int            period_d    = 3,         // Periode %D
   int            period_s    = 3,         // Periode der Verlangsamung von %K
   ENUM_MA_METHOD method      = MODE_SMA,  // Methode %D
   int            size_buffer = 256,       // Größe des Ringbuffers, Anzahl der gespeicherten Datena
   bool           as_series   = false      // true bei Zeitreihen, false wenn die übliche Indexierung ein Eingabedaten angewendet werden soll
   );   
//--- Methode zur Berechnung basierend auf Zeitreihen oder Indikatorenbuffers:          
int MainOnArray(                  // gibt die Anzahl der verarbeiteten Element zurück  
   const int     rates_total,     // die Größe des Arrays
   const int     prev_calculated, // verabeitete Elemente im vorherigen Aufruf
   const double &high[]           // Maximalwert Array
   const double &low[]            // Minimalwert Array
   const double &close[]          // Schlusspreis Array
   );
//--- Methode zur Berechnung basierend auf separaten Reihenelementen des Arrays           
double MainOnValue(               // rgibt den Stochastic Wert für das Mengenelement zurück
   const int    rates_total,      // die Größe des Elements
   const int    prev_calculated,  // Elemente des Arrays verarbeitet
   const int    begin,            // von wo die signifikanten Daten des Arrays beginnen
   const double high,             // Maximalwert 
   const double low,              // Minimalwert 
   const double close,            // Schlusspreis 
   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
string NameSignal();     // Rgibt den Namen der Indikatorsignallinie zurück
string Method();         // Gibt die Glättungsmethode in Form einer Textzeile zurück
int    PeriodK()         // Gibt die Periode von %K zurück
int    PeriodS()         // Gibt die Periode der Verlangsamung von %K zurück
int    PeriodD()         // Gibt die Periode von %D 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 Stochastic Indikator:
#include <IncOnRingBuffer\CStochasticOnRingBuffer.mqh>
CStochasticOnRingBuffer st;

...

//+------------------------------------------------------------------+
//| Benutzerdefinierte Indikatoriterationsfunktion                   |
//+------------------------------------------------------------------+
int OnCalculate(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[])
  {
//--- Berechnung des Indikators basierend auf Preiszeitreihen:
   st.MainOnArray(rates_total,prev_calculated,high,low,close);

...

//--- verwende Daten des "st" Ringbuffers,
//    zum Beispiel, kopiere Daten in den Indikatorbuffer:
   for(int i=start;i<rates_total && !IsStopped();i++)
     {
      MainBuffer[i]   = st[rates_total-1-i];        // die Hauptlinie des Indikators
      SignalBuffer[i] = st.signal[rates_total-1-i]; // die Signallinie des Indikators
     }

...

//--- 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

  1. Die Datei Test_Stochastic_OnArrayRB.mq5 berechnet den Indikator basierend auf Preiszeitreihen. Die Anwendung der MainOnArray() Methode wird demonstriert
  2. Die Datei  Test_Stochastic_OnValueRB.mq5 demonstriert die Verwendung der MainOnValue() Methode. Zuerst wird der Stochastic Oscilator Indikator berechnet und gezeichnet. Dann werden auf Basis des Ringbuffer dieses Indikators zwei weitere Stochastic Oscilator Linien gezeichnet. 


Das Ergebnis der Arbeit des Test_Stochastic_OnArrayRB.mq5 mit der Größe des Ringbuffers von 256 Elementen



Das Ergebnis der Arbeit des Test_Stochastic_OnValueRB.mq5 mit der Größe des Ringbuffers von 256 Elementen

 

Bei der Programmierung wurden die Entwicklungen der MetaQuotes Software Corp.Integer und GODZILLA verwendet.

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

Schnick [Support Vector Machine Learning Tool Tester - DEMO] Schnick [Support Vector Machine Learning Tool Tester - DEMO]

Dieses Skript versucht die Macht von Stützvektormaschine beim Lösen von Klassifizierungsproblemen zu demonstrieren. Diese Version des Codes wurde geschrieben um in Verbindung mit der Demoversion des Stützvektormaschinen Lerntools, das im MQL5 Market kostenlos erhältlich ist, verwendet zu werden.

Schnick [Support Vector Machine Learning Tool Tester] Schnick [Support Vector Machine Learning Tool Tester]

Dieses Skript versucht die Macht von Stützvektormaschine beim Lösen von Klassifizierungsproblemen zu demonstrieren.

ytg_Japan_Candles ytg_Japan_Candles

Indikator der Kerzenmuster (Japanese candlesticks)

Klasse zum Zeichnen des ER unter Verwendung des Ringbuffers Klasse zum Zeichnen des ER unter Verwendung des Ringbuffers

Die Klasse wurde zur Berechnung des technischen Indikators Efficiency Ratio (Efficiency Ratio, ER) unter Verwendung des Algorithmus des Ringbuffers entworfen.