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
Interchange - Bibliothek für den MetaTrader 5
- Ansichten:
- 719
- Rating:
- Veröffentlicht:
- 2017.02.07 14:27
- Benötigen Sie einen Roboter oder Indikator, der auf diesem Code basiert? Bestellen Sie ihn im Freelance-Bereich Zum Freelance
Warum dies nötig ist:
Diese Klasse wird helfen, den Austausch der Daten zwischen Ihren Programmen zu organisieren, falls Sie etwas für "Market" schreiben oder Sie wollen nicht die System-DLL verwenden.
Für andere Fälle gibt es die sicherere und schnellere Arten des Zusammenbinden der Anwendungen. Der Austausch wurde mittels der einfachen Strukturen realisiert.
Die Varianten der Nutzung:
- Man muss die Daten aus dem Experten in den Indikator oder in einen anderen Experten übergeben;;
- Man muss den Indikator erstellen, der die Informationen in einige Fenster ausführt (oder ins Hauptfenster und Unterfenster);
- Für den Experten wird es notwendig, innerhalb dessen alle notwendigen Berechnungen durchgeführt werden, die Visualisierung der berechneten Werte zu machen.
Wie man damit arbeiten soll:
Ich führe ein Beispiel über die Übergabe der Daten aus dem Experten in den Indikator auf.
- Im Experten
1.1. Wir erstellen ein Exemplar der Klasse:
CInterchange Exp_buffer;
1.2. In OnInit() geben wir den Prefix des Namens der globalen Variablen ein. Damit der Konflikt mit anderen Exemplaren der Klasse nicht aufbricht - muss man für jeden davon einen einzigartigen Namen erstellen:
Exp_buffer.SetPrefixNameForSave(_Symbol+"_"+(string)_Period);
1.3. Die Arbeit des Algorithmus wurde durch die Anwenderereignisse realisiert. Man muss einfach die untere Zeile zum Bearbeiter OnChartEvent() hinzufügen:
Exp_buffer.OnEvent(id,lparam,dparam,sparam);
Wenn die Daten für die Übergabe fertig sind (im Beispiel ist es die Struktur Exp_Data) - muss man die Methode aufrufen:
Exp_buffer.SendDataStart(Exp_Data);
1.4. Nicht vergessen, das Exemplar der Klasse bei der Deinitialisierung des Programms zu löschen:Exp_buffer.Destroy();
-
Im Indikator
2.1. Wir erstellen ein Exemplar der Klasse:
CInterchange Ind_buffer;
2.2. In OnInit() geben wir den Prefix des Namens der globalen Variablen ein. Er muss mit der Quelle übereinstimmen - genauso wie im Punkt 1.1 sein.
Ind_buffer.SetPrefixNameForLoad(_Symbol+"_"+(string)_Period);
2.3. Am Anfang des Erhaltungsprozesses der Daten muss man die Methode GetDataStart() mit dem Parameter Ind_data aufrufen (die Struktur, wohin die Aufzeichnung der Daten aus dem Experten durchgeführt wird):
Ind_buffer.GetDataStart(Ind_data);
2.4. Die Arbeit des Algorithmus wurde durch die Anwenderereignisse realisiert. Man muss die untere Zeile zum Bearbeiter OnChartEvent() hinzufügen:
Ind_buffer.OnEvent(id,lparam,dparam,sparam);
Wenn der Prozess der Übergabe beendet ist - die Methode:
Ind_buffer.GetDataFinish(Ind_data)
liefert true zurück.
2.5. Nicht vergessen, das Exemplar der Klasse bei der Deinitialisierung des Programms zu löschen:
Ind_buffer.Destroy();
Das Video mit dem Arbeitsbeispiel:
Übersetzt aus dem Russischen von MetaQuotes Ltd.
Originalpublikation: https://www.mql5.com/ru/code/12786
Der Skript schaltet alle offenen Charts durch ein bestimmtes Intervall um. Man kann auch nur die Charts der bestimmten Symbole ausführen.
BoDiDer Indikator Standard Deviation, der in Form eines farbigen Histogramms erstellt wurde.
Der einfache Kode, der den Handel aufgrund des Ereignisses OnTimer illustriert. Bei der Auslösung des Timers schließt der Roboter die Trades auf den Kauf und den Verkauf mit einem fixierten Stop-Loss und Take-Profit abwechselnd ab.
ZZ Fibo TraderDer ZZ Fibo Trader ist eine einfache Illustration der Verwendung des Indikators Simple ZZ Fibo, der die Linien Fibonacci auf den langen impulsiven Wellen des Zickzacks baut. Nunmehr illustriert der Algorithmus noch die Arbeit des parabolischen Systems der Umstellung Stop-Loss.