DataForge Instrument Passport and Bar Exporter
- Utilitys
-
Sayed Javad Razavi Ebrahimi
🔧 Software engineer & data analyst — professional-grade MQL5 EAs and indicators. - Version: 2.0
DataForge exportiert MetaTrader-5-Balken in eine CSV-Datei und schreibt in diese Datei
, was die Daten tatsächlich enthalten.
Das Programm führt keine Handelsgeschäfte durch. Es platziert keine Orders, liest keine Positionen aus und benötigt keine
Kontoberechtigungen. Es liest den Verlauf aus und schreibt eine Textdatei.
WAS DER EXPORT SCHREIBT
1. Ein Instrumentenpass, der im CSV-Header platziert wird
Digits, Point, Kontraktgröße, Tick-Wert, Tick-Größe sowie das minimale, das Schritt- und das
maximale Lot werden als Kommentarzeilen am Anfang der Datei geschrieben. Exportieren Sie das
gleiche Symbol von zwei Servern und vergleichen Sie die beiden Header Zeile für Zeile.
Dies ist wichtig, da diese Felder nicht immer serverübergreifend identisch sind. Ein
Symbol kann auf zwei Servern dieselbe Kontraktgröße und dieselbe Tick-Größe aufweisen
, während es einen unterschiedlichen Tick-Wert angibt, was den Geldwert eines Punktes verändert
. Nichts im Terminal warnt Sie, wenn dies geschieht.
2. Eine jährliche Volumentabelle, die aus den Balken ausgelesen wird
Für jedes Jahr im Verlauf meldet das Skript die Anzahl der Balken,
wie viele ein Tick-Volumen ungleich Null aufweisen und wie viele ein reales
Volumen ungleich Null aufweisen. Diese Tabelle wird mit CopyRates ausgelesen, nicht aus dem Strategietester.
Beides sind unterschiedliche Dinge. Der „History-Quality“-Balken des Testers beschreibt den
von ihm generierten Tick-Stream. Er sagt nichts über das reale Volumen aus, das in den
Balken selbst gespeichert ist. Das Verwechseln des einen mit dem anderen führt dazu, dass Merkmale auf einem
Feld erstellt werden, das leer ist, oder dass ein vorhandenes Feld verworfen wird.
3. Merkmalsspalten, wie sie von MQL5 berechnet werden
Der Export kann auch eine kleine Menge berechneter Eingaben schreiben. Diese dienen nicht
zum Training: Sie sind eine Referenz, damit eine in einer anderen
Sprache geschriebene Pipeline dieselben Eingaben neu berechnen und Wert für Wert vergleichen kann.
WAS DAS PARITY-SKRIPT TUT
Das zweite Skript liest diese Roh-Eingaben aus der Exportdatei zurück und schreibt
sie nach Anwendung eines von Ihnen bereitgestellten Skalierers erneut. Es berechnet sie bewusst nicht
neu.
Der Grund dafür ist einfach. Wenn eine Prüfung die Eingaben neu berechnet, wird letztendlich die
Berechnung ein zweites Mal geprüft, anstatt die Normalisierung zu überprüfen, und jede
Abweichung in der Tiefe oder im Moment zwischen den beiden Durchläufen wird fälschlicherweise als Fehler mit
dem falschen Namen angezeigt. Das Einlesen derselben Zeilen beseitigt diese Mehrdeutigkeit.
Die Scaler-Datei enthält in ihrem Header eigene Stage- und Frame-Identifikatoren, und
das Skript überprüft diese. Ein Scaler, der nicht übereinstimmt, wird abgelehnt, anstatt
stillschweigend verwendet zu werden.
AUCH GEMELDET
– Der erste und letzte tatsächlich gelesene Takt, veröffentlicht statt angenommen.
- Die Anzahl der Warm-up-Balken, die designbedingt als „nan“ ausgegeben werden.
- Die Anzahl der Spalten, die aus dem Skalierer und nicht aus einer Konstante entnommen wird.
- Zeitstempel in ISO-Reihenfolge, damit ein Parser Tag und Monat nicht verwechseln kann.
HINWEISE UND EINSCHRÄNKUNGEN
- Entwickelt und getestet für den M15-Zeitraum. Andere Zeiträume wurden nicht getestet.
- Die Orderbuchtiefe war bei jedem getesteten CFD-Broker leer. „MarketBookAdd“ wird akzeptiert
und gibt nichts zurück.
- Bei keinem der getesteten Broker wies ein Tick ein Kauf- oder Verkaufsflag auf, sodass aus diesen Daten kein Order-Flow-
Delta messbar ist. Ein aus der Tick-Regel
ermitteltes vorzeichenbehaftetes Volumen ist eine Schlussfolgerung, keine Messung.
- Das Paritätsskript benötigt einen Skalierer, der von Ihrem eigenen Trainingscode erzeugt wird. Es ist kein Modell
enthalten.
- Setzen Sie vor dem Export in den Terminal-Optionen
die Einstellung „Max bars in chart“ auf „unlimited“ und scrollen Sie im Chart zurück, damit der Verlauf geladen wird. Ein Skript liest die vom Terminal zwischengespeicherten Daten
aus, und die Obergrenze wird ohne Fehlermeldung gekürzt.
Der Quellcode wird zur Information veröffentlicht.
, was die Daten tatsächlich enthalten.
Das Programm führt keine Handelsgeschäfte durch. Es platziert keine Orders, liest keine Positionen aus und benötigt keine
Kontoberechtigungen. Es liest den Verlauf aus und schreibt eine Textdatei.
WAS DER EXPORT SCHREIBT
1. Ein Instrumentenpass, der im CSV-Header platziert wird
Digits, Point, Kontraktgröße, Tick-Wert, Tick-Größe sowie das minimale, das Schritt- und das
maximale Lot werden als Kommentarzeilen am Anfang der Datei geschrieben. Exportieren Sie das
gleiche Symbol von zwei Servern und vergleichen Sie die beiden Header Zeile für Zeile.
Dies ist wichtig, da diese Felder nicht immer serverübergreifend identisch sind. Ein
Symbol kann auf zwei Servern dieselbe Kontraktgröße und dieselbe Tick-Größe aufweisen
, während es einen unterschiedlichen Tick-Wert angibt, was den Geldwert eines Punktes verändert
. Nichts im Terminal warnt Sie, wenn dies geschieht.
2. Eine jährliche Volumentabelle, die aus den Balken ausgelesen wird
Für jedes Jahr im Verlauf meldet das Skript die Anzahl der Balken,
wie viele ein Tick-Volumen ungleich Null aufweisen und wie viele ein reales
Volumen ungleich Null aufweisen. Diese Tabelle wird mit CopyRates ausgelesen, nicht aus dem Strategietester.
Beides sind unterschiedliche Dinge. Der „History-Quality“-Balken des Testers beschreibt den
von ihm generierten Tick-Stream. Er sagt nichts über das reale Volumen aus, das in den
Balken selbst gespeichert ist. Das Verwechseln des einen mit dem anderen führt dazu, dass Merkmale auf einem
Feld erstellt werden, das leer ist, oder dass ein vorhandenes Feld verworfen wird.
3. Merkmalsspalten, wie sie von MQL5 berechnet werden
Der Export kann auch eine kleine Menge berechneter Eingaben schreiben. Diese dienen nicht
zum Training: Sie sind eine Referenz, damit eine in einer anderen
Sprache geschriebene Pipeline dieselben Eingaben neu berechnen und Wert für Wert vergleichen kann.
WAS DAS PARITY-SKRIPT TUT
Das zweite Skript liest diese Roh-Eingaben aus der Exportdatei zurück und schreibt
sie nach Anwendung eines von Ihnen bereitgestellten Skalierers erneut. Es berechnet sie bewusst nicht
neu.
Der Grund dafür ist einfach. Wenn eine Prüfung die Eingaben neu berechnet, wird letztendlich die
Berechnung ein zweites Mal geprüft, anstatt die Normalisierung zu überprüfen, und jede
Abweichung in der Tiefe oder im Moment zwischen den beiden Durchläufen wird fälschlicherweise als Fehler mit
dem falschen Namen angezeigt. Das Einlesen derselben Zeilen beseitigt diese Mehrdeutigkeit.
Die Scaler-Datei enthält in ihrem Header eigene Stage- und Frame-Identifikatoren, und
das Skript überprüft diese. Ein Scaler, der nicht übereinstimmt, wird abgelehnt, anstatt
stillschweigend verwendet zu werden.
AUCH GEMELDET
– Der erste und letzte tatsächlich gelesene Takt, veröffentlicht statt angenommen.
- Die Anzahl der Warm-up-Balken, die designbedingt als „nan“ ausgegeben werden.
- Die Anzahl der Spalten, die aus dem Skalierer und nicht aus einer Konstante entnommen wird.
- Zeitstempel in ISO-Reihenfolge, damit ein Parser Tag und Monat nicht verwechseln kann.
HINWEISE UND EINSCHRÄNKUNGEN
- Entwickelt und getestet für den M15-Zeitraum. Andere Zeiträume wurden nicht getestet.
- Die Orderbuchtiefe war bei jedem getesteten CFD-Broker leer. „MarketBookAdd“ wird akzeptiert
und gibt nichts zurück.
- Bei keinem der getesteten Broker wies ein Tick ein Kauf- oder Verkaufsflag auf, sodass aus diesen Daten kein Order-Flow-
Delta messbar ist. Ein aus der Tick-Regel
ermitteltes vorzeichenbehaftetes Volumen ist eine Schlussfolgerung, keine Messung.
- Das Paritätsskript benötigt einen Skalierer, der von Ihrem eigenen Trainingscode erzeugt wird. Es ist kein Modell
enthalten.
- Setzen Sie vor dem Export in den Terminal-Optionen
die Einstellung „Max bars in chart“ auf „unlimited“ und scrollen Sie im Chart zurück, damit der Verlauf geladen wird. Ein Skript liest die vom Terminal zwischengespeicherten Daten
aus, und die Obergrenze wird ohne Fehlermeldung gekürzt.
Der Quellcode wird zur Information veröffentlicht.
