Expert Advisors: SaveTicks

 

SaveTicks:

Dieses Programm zeichnet Tick-Kurse im CSV- und BIN-Format auf. Zum Schreiben steht ein flexibler Satz von Symbolen zur Verfügung.

Autor: Alexey Volchanskiy

 

Ursprünglich hatte ich die Idee, Ticks mit Millisekunden-Genauigkeit zu schreiben, nicht Sekunden, wie es MQL4/5 erlaubt. Aber in kodobase wurde mein Code abgewürgt, weil die Windows-DLL"Kernel32.dll" verwendet wurde. Sie zwangen mich, sie zu entfernen und die Funktionalität zu beschneiden.

Hier sind die ursprünglichen Expert Advisors für MT4/5 mit Millisekunden-Genauigkeit, verwenden Sie sie besser.



 
Alexey Volchanskiy:

Ursprünglich hatte ich die Idee, Ticks mit Millisekunden-Genauigkeit zu schreiben, nicht Sekunden, wie es MQL4/5 erlaubt. Aber in kodobase wurde mein Code abgewürgt, weil die Windows-DLL"Kernel32.dll" verwendet wurde. Sie zwangen mich, sie zu entfernen und die Funktionalität zu beschneiden.

Hier sind die originalen Expert Advisors für MT4/5 mit Millisekundengenauigkeit, verwenden Sie sie besser.




Alexej bitte sagen Sie mir, warum ich Ihre Indikatoren nicht auf dem Chart sehen kann ich habe schon alles versucht

 
fulstak:

Alexey bitte sagen Sie mir, warum kann ich nicht sehen, Ihre Indikatoren auf dem Chart, ich habe versucht, alle von ihnen


Sollten Sie etwas auf dem Chart sehen? Lesen Sie die Beschreibung, dort steht: Das Dienstprogramm wurde entwickelt, um Tick-Kurse im Text- (CSV) und Binärformat (BIN) aufzuzeichnen.

 

Alexej, ein paar Anmerkungen.

1. Sie haben keine Symbolauswahl über SymbolSelect, die notwendig ist, um Kurse für alle Symbole zu erhalten.

2. Es wäre wünschenswert, den aktuellen Handelsserver beim Festlegen der Namen (oder Pfade) der Dateien irgendwie zu berücksichtigen. So dass beim Wechsel zu einem anderen Broker-Konto nicht in dieselben Dateien geschrieben wird. Oder einfach aufhören zu funktionieren, wenn man den Handelsserver wechselt.

3. es würde nicht schaden, eine Überprüfung der Verbindung zum Handelsserver hinzuzufügen. Andernfalls schreibt es weiter, wenn die Verbindung unterbrochen ist, und Sie wissen dann nicht, dass es an dieser Stelle eine Unterbrechung gab.

4. Es gibt eine idiotische Begrenzung für die Anzahl der gleichzeitig geöffneten Dateien in mql (nicht mehr als 64 Dateien), so halten Sie im Auge, dass der Code sollte kompliziert sein.
 
Evgeny Belyaev:

Sollten Sie etwas auf dem Chart sehen? Lesen Sie die Beschreibung, dort steht: Das Dienstprogramm wurde entwickelt, um Tick-Kurse im Text- (CSV) und Binärformat (BIN) aufzuzeichnen.


Eugene, danke, aus irgendeinem Grund erhalte ich keine privaten Nachrichten für neue Kommentare in KB. Nur durch Zufall habe ich es jetzt gesehen.

 
Alexey Navoykov:

Alexej, ein paar Anmerkungen.

1. Sie haben keine Symbolauswahl über SymbolSelect, die notwendig ist, um Kurse für alle Symbole zu erhalten.

2. Es wäre wünschenswert, den aktuellen Handelsserver beim Festlegen der Namen (oder Pfade) der Dateien irgendwie zu berücksichtigen. So dass beim Wechsel zu einem anderen Broker-Konto nicht in dieselben Dateien geschrieben wird. Oder einfach aufhören zu funktionieren, wenn man den Handelsserver wechselt.

3. es würde nicht schaden, eine Überprüfung der Verbindung zum Handelsserver hinzuzufügen. Andernfalls schreibt es weiter, wenn die Verbindung unterbrochen ist, und Sie wissen dann nicht, dass es an dieser Stelle eine Unterbrechung gab.

4. Es gibt eine idiotische Begrenzung für die Anzahl der gleichzeitig geöffneten Dateien in mql (nicht mehr als 64 Dateien), so halten Sie im Auge, dass der Code kompliziert sein muss.

Alexey, danke für deinen Kommentar, ich sollte ihn korrigieren. Aber ich bin mir bei Symbol Select nicht ganz sicher. Es wird in den Beispielen in der Hilfe nicht verwendet und die Beschreibung ist allgemein sehr vage. Es fühlt sich so an, als ob es in Bezug auf die Datenaktualisierung ausgeschaltet wurde, nur in MarketWatch werden Symbole gelöscht und ausgewählt.

Hier ist ein Ausschnitt aus einem Beispiel in der Hilfe. Aber SymbolIsSynchronised sollte wahrscheinlich gesetzt werden.

Es wird geprüft, ob die Daten des angegebenen Symbols im Terminal mit den Daten auf dem Handelsserver synchronisiert sind.

void OnStart() 
  { 
//--- 
   int     attempts=0;     // Versuchszähler 
   bool    success=false;  // Flagge für die erfolgreiche Ausführung des Tick-Kopierens 
   MqlTick tick_array[];   // Array für den Empfang von Ticks 
   MqlTick lasttick;       // um die Daten des letzten Ticks zu erhalten 
   SymbolInfoTick(_Symbol,lasttick); 
//--- 3 Versuche unternehmen, um Ticks zu erhalten 

***

 
Alexey Volchanskiy:

Alexey, danke für die Kommentare, ich muss es korrigieren. Aber ich bin mir bei Symbol Select nicht ganz sicher. Es wird in den Beispielen in der Hilfe nicht verwendet und die Beschreibung ist sehr vage. Es fühlt sich so an, als wäre es in Bezug auf die Datenaktualisierung ausgeschaltet, nur in MarketWatch löscht es die Auswahl der Symbole.

Hier ist ein Teil eines Beispiels aus der Hilfe. Aber SymbolIsSynchronised sollte wahrscheinlich gesetzt werden.

Es wird geprüft, ob die Daten des angegebenen Symbols im Terminal mit den Daten auf dem Handelsserver synchronisiert sind.

***

Warum raten? Alles kann leicht überprüft werden. Versuchen Sie, eine Notierung für ein beliebiges Symbol zu erhalten, das in der Market Watch nicht vorhanden ist. Sie werden Nullen erhalten. Deshalb müssen Sie es zuerst auswählen.

Und SymbolIsSynchronised ist etwas anderes. Ehrlich gesagt, verstehe ich die Bedeutung nicht wirklich, denn die Kurse werden immer mit dem Server synchronisiert (wenn eine Verbindung besteht). Obwohl jetzt am Wochenende gibt es falsch. Vielleicht ist damit nicht der Server gemeint, sondern die Handelsplattform, von der die Kurse empfangen werden. Dann handelt es sich in der Tat um eine notwendige Funktion, die berücksichtigt werden sollte.

 
Alexey Navoykov:

Ich brauche nicht zu raten. Alles kann leicht überprüft werden. Versuchen Sie, eine Notierung für ein Symbol zu erhalten, das nicht im Market Watch enthalten ist. Sie werden Nullen erhalten. Deshalb müssen Sie es zuerst auswählen.

Und SymbolIsSynchronised ist etwas anderes. Ehrlich gesagt, verstehe ich den Sinn nicht wirklich, denn die Kurse werden immer mit dem Server synchronisiert (wenn eine Verbindung besteht). Obwohl jetzt am Wochenende gibt es falsch. Vielleicht ist damit nicht der Server gemeint, sondern die Handelsplattform, von der die Kurse empfangen werden. Dann ist es in der Tat eine notwendige Funktion, die auch berücksichtigt werden sollte.

Ich sehe, ich behalte immer alle Symbole in der Übersicht, diese Option habe ich nicht bedacht. Das ist ein klarer Vorteil der Community, der eine vermisst etwas, der andere merkt es.

Ich erinnere mich, dass wir vor langer Zeit als Studenten mit einem Freund - einem Elektronikingenieur - ein Projekt entwickelt haben, wir haben an einem Paar gearbeitet, ich war ein ziemlich guter Elektronikingenieur.

Und wir stellten fest, wie viel weniger Fehler es gab und wie viel schneller die Geschwindigkeit zunahm. Wenn er etwas übersah, wies ich ihn darauf hin, und umgekehrt.

PS: Auf der Website ist das Wort "Elektroniker" rot hervorgehoben, und das ist die offizielle Berufsbezeichnung, die ich vor langer Zeit in meinem Arbeitszeugnis notiert hatte. Nicht zu verwechseln mit dem Film "The Adventures of Electronik". ))


 
Da die Dateien mit den Tickdaten leicht sehr groß werden können, hätte ich es begrüßt, wenn es eine Option zum Packen der Daten gegeben hätte.
 
Carl Schreiber:
Da die Dateien mit den Tickdaten leicht sehr groß werden können, hätte ich es begrüßt, wenn es eine Option zum Packen der Daten gäbe.

Ich bin neugierig, wofür würden Sie die (gepackten) Daten verwenden?

Meiner Erfahrung nach ist der begrenzende Faktor eines solchen Datensammlers nicht die Datengröße, sondern vielmehr die Qualität (Integrität) der gespeicherten Daten. Der Datenstrom wird sehr oft unterbrochen, entweder durch den Broker oder durch die Verbindung, vor allem aber beim Neustart/Aktualisieren des Terminals, beim Anordnen des Terminalfensterinhalts oder wenn das Terminal vorübergehend einfriert.