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
- Ansichten:
- 1084
- Rating:
- Veröffentlicht:
- 2018.05.02 10:29
- Aktualisiert:
- 2018.08.30 13:15
-
Benötigen Sie einen Roboter oder Indikator, der auf diesem Code basiert? Bestellen Sie ihn im Freelance-Bereich Zum Freelance
Anwendungen von Dritten für den MetaTrader 4, die es erlauben, eine Tick-Historie aus verschiedenen Quellen zu erhalten, waren schon immer beliebt. Diese Historie wird typischerweise im Strategietester zur Überprüfung der Arbeitsweise von Expert Advisors sowie zur Durchführung von Recherchen (z.B. maschinelles Lernen, etc.) verwendet. Einige Quellen von Kursen, die von Nutzern diskutiert werden, sind bei der Suche nach einem "Gral" fast zum Standard geworden.
Kriterium
Die beigefügt MQL5-Bibliothek hat kein Kriterium für den Vergleich von Ticks. Die Gründe für die Wahl der vorgeschlagenen Quelle des Tick-Archivs sind nicht beschrieben. Aber dieses Archiv ist absolut frisch und daher nicht vollständig studiert. Um Ihr eigenes Wertkriterium zu entwickeln, führen Sie daher eine einfache Aktion durch - führen Sie Ihren Expert Advisor im Modus "Every tick is based on real ticks" auf irgendeinem Symbol des MetaTrader 5 aus und dann auf dem Custom Symbol, das vom Skript (auf Basis der Real-Ticks eines Drittanbieters), und vergleichen Sie dann die erzielten Ergebnisse. Dieser Prozess erfordert keine tiefen Kenntnisse des Terminals oder zusätzliche Aktionen außerhalb des Terminals.
Skript
Das Skript greift von der integrierten Quelle auf die Tick-Historie zu und erstellt auf deren Basis ein entsprechendes benutzerdefiniertes Symbol.
Kommentare im Quellcode erklären teilweise das Prinzip.
// https://www.mql5.com/de/code/20225 #property script_show_inputs #include <fxsaber\ThirdPartyTicks\ThirdPartyTicks.mqh> sinput bool Sync = true; // Synchronization sinput string symbol = ""; // Symbol (NULL - current, "AllSymbols" - All) THIRDPARTYTICKS ThirdPartyTicks; // Connecting to a local archive of quotes // One symbol void CreateSymbol() { // Defining the symbol to work with const string Symb = (symbol == "") ? StringSubstr(_Symbol, 0, 6) : symbol; if (Sync) ThirdPartyTicks.Refresh(); // Reading available data from the tick archive source ThirdPartyTicks[Symb].Update(); // Synchronizing the local archive with the source of the selected symbol ThirdPartyTicks[Symb].ToCustomSymbol(true); // Creating a custom symbol based on the local archive } // All symbols void CreateAllSymbols() { if (Sync) ThirdPartyTicks.Refresh(); // Reading available data from the tick archive source const uint Amount = ThirdPartyTicks.GetAmount(); for (uint i = 0; _CS(i < Amount); i++) { ThirdPartyTicks[i].Update(); // Synchronizing the local archive with the source of the selected symbol ThirdPartyTicks[i].ToCustomSymbol(); // Creating a custom symbol based on the local archive } } void OnStart() { if (symbol != "AllSymbols") CreateSymbol(); else if (MessageBox("Creating all the symbols can take a long time. Do you agree?", __FILE__, MB_YESNO | MB_ICONQUESTION) == IDYES) CreateAllSymbols(); }
Für einen reibungslosen Ablauf des Skripts sollten Sie die Quelle der Kurse in den Einstellungen des Terminals angeben, zum Beispiel:
Die Einzelschritte des Skripts werden detailliert in das Log eingetragen:
UnZip <source_name>\EURUSD.<suffix>\EURUSD.<suffix>_20180313.csv.zip 724002 bytes - unpack size 5466504 bytes. Total Ticks (EURUSD.<suffix>) = 1645897 Corrected 3 ticks. EURUSD.<suffix>_<source_name> saved ticks = 1645897
Danach können Sie Ihren Expert Advisor im Tester laufen lassen unter Verwendung des benutzerdefinierten Symbols:
Eigenschaften
- Es werden nur standardmäßige Eigenschaften von MQL5 verwendet, daher gibt es keine DLLs und es ist für den Markt geeignet.
- Das Archiv der Kurse wird auf dem lokalen Rechner als ZIP-Archiv mit CSV-Dateien gespeichert.
- Das Archiv der Kurse wird mit der Quelle synchronisiert: nur die fehlenden Daten werden heruntergeladen.
- Die Quelldateien enthalten die folgenden Bibliotheken: ZIP und Symbol.
- Das Skript kann mit einem lokalen Archiv ohne Internetverbindung arbeiten.
- Die Daten im lokalen Archiv können manuell bearbeitet oder hinzugefügt werden.
- Der Betrieb der Dateiablage hängt nicht von Verzeichnissen in ihr ab: Sie können Ordner erstellen und Daten dort nach Belieben speichern.
- Die Historie der Bars wird unter Berücksichtigung des minimalen Qualitätsverlustes beim Wechsel vom Testmodus "Every tick based on real ticks" auf "Open Prices Only" erstellt - ein Handelssystem verwendet Limit-Orders.
- Der Kern des Skripts ist die gleichnamige Bibliothek. Es ermöglicht die Erstellung interessanterer Szenarien.
- Die Quelle wurde nicht optimiert und wird wie für Ausbildungszwecke zur Verfügung gestellt.
- Um die als Kern verwendete Bibliothek vollständig universell zu machen, müssen Sie sie für den Betrieb mit beliebigen Quellen und mit jedem Format von Anführungszeichen modifizieren.
Übersetzt aus dem Russischen von MetaQuotes Ltd.
Originalpublikation: https://www.mql5.com/ru/code/20225
![Improve](https://c.mql5.com/i/code/expert.png)
Ein Expert Advisor basierend auf zwei iMAs (Moving Average,MA) und einem iRSI (Relative Strength Index, RSI). Es kontrolliert den virtuellen Gewinn. Er arbeitet mit zwei Symbolen.
![OnChart_Stochastic](https://c.mql5.com/i/code/indicator.png)
Stochastik auf dem Preischart.
![IEEE Gleitkomma Decoder](https://c.mql5.com/i/code/script.png)
Anzeige des aktuell gespeicherten Wertes einer Gleitkommazahl (z.B. float, double) mit hoher Genauigkeit bis zu vielen Dezimalstellen. Dies hilft, den genauen Wert von Fließkommazahlen für andere MQL5-Programme zu debuggen.
![Balance of Power](https://c.mql5.com/i/code/indicator.png)
Balance of Power, eingeführt von Igor Livshin, versucht, die Stärke von Käufern vs. Verkäufern zu messen, indem er die Fähigkeit jedes Einzelnen bewertet, den Preis auf ein extremes Niveau zu bringen. Livshin hat diesen Indikator in der August-Ausgabe 2001 des Stocks and Commodities Magazine veröffentlicht. Diese Version des Indikators berechnet das BOP genau so, wie es in dem Artikel beschrieben ist, in dem es veröffentlicht wurde.