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
Bibliotheken

Vertical histograms constructor - Bibliothek für den MetaTrader 5

Ansichten:
921
Rating:
(29)
Veröffentlicht:
2017.02.07 14:54
\MQL5\Include\
Histogram.mqh (30.65 KB) ansehen
\MQL5\Indicators\
Benötigen Sie einen Roboter oder Indikator, der auf diesem Code basiert? Bestellen Sie ihn im Freelance-Bereich Zum Freelance

Das Histogramm stellt ein Kolonnen-Diagramm der Frequenzen dar. Nach einer der Achsen verschieben die Werte der Variable, und nach dem anderem — die Treffens-Frequenz (das Entstehen, das Erscheinen u.ä.) dieser Werte. Die Höhe jeder Kolonne zeigt die Frequenz (die Anzahl) der Werte, die dem entsprechenden Intervall zugehörig sind, gleich der Breite der Kolonne. Meistens werden solche Diagramme horizontal dargestellt, d.h., die Werte der Variable sind auf der horizontalen Achse, und der Frequenz — auf der vertikalen.

In der vorliegenden Bibliothek werden wir auf die vertikalen Histogramme der Variationsreihen betrachten: die Preiswerte der untersuchten Charakteristiken werden sich auf der vertikalen Achse in aufsteigender Reihenfolge befinden, und der Frequenz — auf der horizontalen Achse. Die ins Terminal kommenden Preisdaten werden verteilt und werden auf der laufenden Bar gruppiert und es können verhältnismäßig seiner Achse links dargestellt, rechts oder gleichzeitig von beiden Seiten.

in Abb. 1. Das vertikale Histogramm der Verteilung der Preise Bid und Ask

in Abb. 1. Das vertikale Histogramm der Verteilung der Preise Bid und Ask

Der Konstrukteur der senkrechten Histogramme wurde auf der Klasse CHistogram aufgebaut. Die Realisierung dessen aller Methoden ist auf der Nutzung des sogenannten "graphischen" Gedächtnisses basiert.

Die Methode: der Konstrukteur der Klasse CHistogram.

Das initialisiert das Exemplar der Klasse.

void CHistogram(
   string name,                     // die einzigartige Präfix des Namens
   int    hsize,                    // Maßstab des Diagramms
   int    width,                    // Die Dicke der Kolonnen-Linien des Histogramms
   color  active,                   // Die Farbe der aktiven Linien
   color  passive,                  // Die Farbe der passiven Linien
   bool   Left_Right=true,          // left=false or right=true
   bool   relative_frequency=false, // Das relative oder absolute Histogramm
   int    sub_win=0                 // Der Index des Aufbau-Fensters des Histogramms
   );

Parameter:

name

   [in] die einzigartige Präfix des Namens für die allen Kolonnen des Histogramms.

hsize

   [in] Der Maßstab der Darstellung des Histogramms

width

   [in] Die Dicke der Kolonnen-Linien des Histogramms.

active

   [in] Die Farbe der Kolonnen des Histogramms, die auf der laufenden Bar erneuert wurden.

passive

   [in] Die Farbe der Kolonnen des Histogramms, die auf der laufenden Bar nicht erneuert wurden.

Left_Right=true

   [in] Die Richtung der Darstellung des Histogramms. false — das Histogramm ist links von der laufenden Bar, true — rechts.

relative_frequency=false

   [in] Die Methode der Berücksichtigung der Werte der Frequenzen. false — die absoluten Werte der Frequenzen, true — die relativen Werte der Frequenzen.

sub_win=0

   [in] Der Index des Aufbau-Fensters des Histogramms. 0 — das Hauptfenster des Charts.

Rückgabewert:

   Es gibt keinen Rückgabewert. Falls es erfolgreich wird, wird ein Exemplar der Klasse mit den gegebenen Parametern erstellt.

Die Methode: die Darstellung des Histogramms DrawHistogram.

Es stellt die Kolonnen des Histogramms dar: erstellt neue, editiert die vorhandenen, speichert die Werte der Frequenzen im graphischen Gedächtnis; stellt das Histogramm auf der laufenden Bar dar.

void DrawHistogram(
   double price,  // Die Werte die Varianten
   datetime time  // Die Zeit der laufenden Bar
   );

Parameter:

price

   [in] die Werte die Varianten der untersuchten Charakteristik des Marktes.

time

   [in] Die Zeit der laufenden Bar. Auf dieser Bar wird die Achse des Histogramms sein.

Rückgabewert:

   Es gibt keinen Rückgabewert. Falls es erfolgreich wird, wird eine neue oder korrigierte Kolonne des Histogramms erstellt. Wenn eine neue Bar entsteht, wird das Histogramm so geschoben, damit die Achse sich auf der laufenden Bar befindet.

Die Methode: die Berechnung der Charakteristiken des Histogramms HistogramCharacteristics.

Es gibt die berechneten Charakteristiken der Variationsreihe in die Variabel als sVseries zurück.

sVseries HistogramCharacteristics();

Parameter:

   Es gibt keine Eingangsparameter.

Rückgabewert:

   Falls es erfolgreich wird, gibt er den Wert der Variable des Typs sVseries zurück.

Die Struktur für das Erhalten der laufenden Werte der Charakteristiken des Histogramms (sVseries).

Die Struktur für die Speicherung der letzten Werte der Charakteristiken der statistischen Verteilung. Es ist für das Erhalten der am meisten geforderten Informationen über die Variationsreihe vorgesehen.

struct sVseries
  {
   long     N;    // Die Gesamtzahl der Beobachtungen
   double   Na;   // Der Mittelwert der Frequenzen
   double   Vmax; // Der Maximalwert der Varianten
   double   Vmin; // Der Minimalwert der Varianten
   double   A;    // Die Amplitude der Reihe
   double   Mean; // Der abgewogene arithmetische Mittelwert
   double   D;    // Dispersion
   double   SD;   // Standardabweichung
  };
Die Variable des Typs sVseries ermöglicht über einen Aufruf der Funktion HistogramCharacteristics() die Werte aller Hauptcharakteristiken der Variationsreihe zu bekommen, die in Form vom Histogramm dargestellt wurde.

Die Methode: die Visualisierung des Mittelwertes DrawMean.

Es stellt den abgewogen arithmetischen Mittelwert der Variationsreihe auf dem Chart dar.

void DrawMean(
   double coord,     // Der abgewogene arithmetische Mittelwert
   datetime time,    // Die Zeit der laufenden Bar
   bool marker=false,// Soll der Marker dargestellt werden oder nicht
   bool save=false   // Soll der Wert in der History gespeichert werden oder nicht
   );

Parameter:

coord

   [in] Der abgewogene arithmetische Mittelwert.

time

   [in] Die Zeit der laufenden Bar. Auf dieser Bar wird der abgewogene arithmetische Mittelwert sein.

marker=false

   [in] Soll der Marker am Chart dargestellt werden oder nicht. false — der Marker ist nicht dargestellt, true — der Marker ist am Chart dargestellt.

save=false

   [in]  Die Speicherung des abgewogenen arithmetischen Mittelwertes in der History. false — der Marker wird nicht dargestellt, true — der Marker wird am Chart dargestellt

Rückgabewert:

   Falls es erfolgreich wird, wird die horizontale Linie dargestellt, die dem Wert des abgewogenen arithmetischen Mittelwert entspricht.

Die Methode: die Visualisierung der Standardabweichung DrawSD.

Es stellt den Wert der Standardabweichung in Form vom Rechteck dar, dessen Breite mit der mittleren Frequenz übereinstimmt, und die Höhe ist der Standardabweichung gleich ist, die nach oben und nach unten von dem abgewogenen arithmetischen Mittelwert verschoben ist.

void DrawSD(
   sVseries &coord,        // die Variable des Typs sVseries
   datetime time,          // Die Zeit der laufenden Bar
   double deviation=1.0,   // Die Abweichung
   color clr=clrYellow     // die Farbe der Abweichung
   );

Parameter:

coord

   [in] Der Wert der Variable des Typs sVseries.

time

   [in] Die Zeit der laufenden Bar.

deviation=1.0

   [in] Der Koeffizient, auf dem der Wert der Standardabweichung vergrößert sein wird.

clr=clrYellow

   [in] die Farbe des Rechteckes, welches die Standardabweichung visualisiert.

Rückgabewert:

   Falls es erfolgreich wird, wird das Rechteck am Chart dargestellt, welches die Standartabweichung vom abgewogenen arithmetischen Mittelwert charakterisiert.


Im Video wurden die Möglichkeiten der Klasse demonstriert. Der Code des Test-Beispiels ist im Anhang.

Der beigefügte Code zeigt, wie jene oder andere Methode der Klasse (Funktion) aufgerufen werden kann.


Tipps:

  • Es ist am besten, die Klasse auf den jüngeren Timeframes zu verwenden.

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

Exp_AFL_WinnerV2 Exp_AFL_WinnerV2

Der Experte Exp_AFL_WinnerV2 mit der Verwendung des Indikators AFL_WinnerV2.

AFL_WinnerV2_HTF AFL_WinnerV2_HTF

Der Indikator AFL_WinnerV2 mit der Veränderungsmöglichkeit des Timeframes des Indikators in den Eingangsparametern.

JSatl_Digit_System JSatl_Digit_System

Der Indikator, der das Breakout-System mit der Verwendung des Kanals umsetzt, der auf dem verarbeitenden Algorithmus JSatl_Digit High und Low der Preisreihe gebaut wurde.

Exp_JSatl_Digit_System Exp_JSatl_Digit_System

Das Handelssystem, welches aufgrund der Signale des Indikators JSatl_Digit_System gebaut wurde.