MT5 Für alle, die Wert auf Geschwindigkeit legen.

 

Ich habe eine Frage: Wie funktionierendie Befehle?

Es gibt eineCAccountInfo-Klasse, die mit dem Konto arbeitet,

Wenn wir auf diesen Befehl zugreifen, initiiert das Terminal eine Anfrage an den Server, oder wird diese Information immer zusammen mit Anführungszeichen empfangen und wir entnehmen sie einfach dem Terminalpuffer oder einer Datei auf der Festplatte?

Kurz gesagt, wie lange dauert die Ausführung dieses Befehls? Und wenn es liest von der Festplatte, wie es hängt von der Art der Festplatte oder SSD?

Voller Text...

Die wichtigste Information, die operativ benötigt wird, ist das Vorhandensein oder Nichtvorhandensein einer offenen Position und auch das Preisniveau einer offenen Position.

Ich verstehe, dass diese Analyse in void OnTrade() durchgeführt werden sollte - das heißt, wenn die Position geöffnet ist, wird diese Subroutine initialisiert werden?

 
Vollständige Texte, Post in diesem Forum.
 

Vergleichen Sie also die Zeit für die Anfrage mit der Zeit für den Erhalt des Wertes oder die Ausführung des Befehls. Soweit ich weiß, hängt dies von Ihrer spezifischen Situation ab (z. B. Kommunikationsleitung).

 

CAccountInfo greift nicht auf den Handelsserver zu, sondern wird aus dem Speicher ausgegeben und landet nicht auf der Festplatte.

 
zfs:

Vergleichen Sie also die Zeit für die Abfrage mit der Zeit für die Abfrage eines Wertes oder die Ausführung eines Befehls. Ich weiß, dass dies von Ihrer spezifischen Situation abhängt (z. B. Kommunikationsleitung).

Und so jeden Befehl auf diese Weise testen?

Ich muss einen EA für eine schnelle Ausführung schreiben, und dafür muss ich den Prozess verstehen und wissen, wie er sich entwickeln kann. Ich habe gesehen, viele Male das Terminal hängt, obwohl ich 1 Tool, 1 EA und ein paar Charts verwenden... Ich habe auch andere Störungen gesehen... obwohl ich eine schnelle SSD anstelle einer Festplatte im Ruhezustand eingebaut habe...

 
Renat:

CAccountInfo greift nicht auf den Handelsserver zu, sondern wird aus dem Speicher ausgegeben und nicht auf der Festplatte gespeichert.

Ich habe die Funktion falsch angegeben und bin anPositionGet...() interessiert.

Position hat eine Reihe von Eigenschaften, die von der FunktionPositionGet...()gelesen werden können.

Ich danke Ihnen.

 
shelandr:

Und so jeden Befehl auf diese Weise testen?

Ich muss einen EA für eine schnelle Ausführung schreiben, und dafür muss ich den Prozess verstehen und wissen, wie er sich entwickeln kann. Ich habe gesehen, viele Male das Terminal hängt, obwohl ich 1 Tool, 1 EA und ein paar Charts verwenden... Darüber hinaus gibt es noch andere Störungen... obwohl ich eine schnelle SSD anstelle einer Festplatte im Ruhezustand eingebaut habe...

Vergleichen Sie die Ortszeit vorher und nachher und ermitteln Sie die Leistung, die von vielen Faktoren abhängt und für jeden individuell ist.

https://www.mql5.com/ru/docs/dateandtime/timelocal
Документация по MQL5: Дата и время / TimeLocal
Документация по MQL5: Дата и время / TimeLocal
  • www.mql5.com
Дата и время / TimeLocal - Документация по MQL5
 
zfs:

Vergleichen Sie die Ortszeit vorher und nachher und ermitteln Sie die Leistung, die von vielen Faktoren abhängt und für jeden individuell ist.


https://www.youtube.com/playlist?list=PLIo3S7h2bgAD8afp8iN-MSy5irsL33PfE

Um hochauflösende Zähler und Zeitgeber zu organisieren, verwenden Sie die FunktionGetTickCount(), die Werte in Millisekunden ausgibt.

Schlagen Sie vor, in Sekunden zu messen? Selbst Millisekunden sind zu langsam.

Mein Millisekundenzähler ist immer an, aber wenn 1 von 1000 Zyklen auch nur in einer Minute ausfällt, kann ich ihn ohne Spezialprogramm nicht auffangen.

Ohne ein spezielles Programm kann ich nicht einmal 1 in einer Minute fangen.

 
shelandr:

https://www.youtube.com/playlist?list=PLIo3S7h2bgAD8afp8iN-MSy5irsL33PfE

Um hochauflösende Zähler und Zeitgeber zu organisieren, verwenden Sie die FunktionGetTickCount(), die Werte in Millisekunden ausgibt.

Schlagen Sie vor, in Sekunden zu messen? Selbst Millisekunden sind zu langsam.

Mein Millisekundenzähler ist immer an, aber wenn 1 von 1000 Zyklen auch nur in einer Minute ausfällt, kann ich ihn ohne Spezialprogramm nicht auffangen.

Außerdem funktioniert der Zähler nicht, wenn das Terminal aufgelegt hat.

Warum sollte man messen, was nicht greifbar ist? Die Tatsache, dass sich Ihr Terminal aufhängt, deutet eher auf eine Endlosschleife in Ihrem Algorithmus hin, auf das Vorhandensein einer tiefen Rekursion, als auf die Geschwindigkeit des Terminals.

 
zfs:

Warum etwas messen, das nicht greifbar ist? Die Tatsache, dass Ihr Terminal hängt, ist eher eine Schleife in Ihrem Algorithmus, das Vorhandensein einer tiefen Rekursion und nicht die Geschwindigkeit des Terminals.

Überhaupt nicht - das Terminal hängt nur, wenn es 2 Ereignisse gibt - eine Operation wie die Änderung des Auftrags und eine starke Preisbewegung auf dem Instrument - der Börsenserver schließt alle Anfragen von Kunden und sie hängen.

Wenn sich die Preisentwicklung stabilisiert hat, beginnt sie, die Anfragen der Kunden zu bedienen.

Der Grund dafür ist, dass der Server in diesen Momenten entweder keine Zeit hat, die Anfragen zu bearbeiten, oder er tut dies absichtlich, um dem Kunden keinen Gewinn zukommen zu lassen. Um dies zu verstehen, benötigen wir ein Austauschprotokoll MT%6 mit dem Server der Maklerfirma.

Übrigens, im Moment kann die Position nicht einmal vom Terminal aus gehackt werden - sie ist nicht verfügbar...

Wenn es keine abrupte Bewegung gibt, arbeitet das System ziemlich schnell und schafft es, eine offene Position in einer Sekunde zu senden... Aber ich würde gerne die Zeit zwischen dem Signal zur Positionseröffnung und einem Auftrag zur Positionseröffnung auf 100 ms bringen (obwohl ich Systeme mit einer Zeit von 15 ms kenne).

Dafür mache ich eine Menge Arbeit, angefangen von der Aufrüstung der Hardware, des Betriebssystems und der Auswahl eines Providers...

МТ5 | Секреты трейдинга
  • admin
  • shelandr.ru
Маленький экскурс. На сегодня наиболее быстрым терминалом,позволяющим строить и запускать автоматически исполняемые стратегии ( роботы или эксперты ) является терминал метатрейдер 5 или сокращённо МТ5. Почему именно так? Есть ведь терминал МТ4… Да есть..и последний год я активно его применял и писал роботов и индикаторы.. Весьма эффективно...
 
shelandr:

Überhaupt nicht - das Terminal hängt nur, wenn es 2 Ereignisse gibt - eine Operation wie die Änderung des Auftrags und eine starke Preisbewegung auf dem Instrument - der Börsenserver schließt alle Anfragen von Kunden und sie hängen.

Wenn sich die Preisentwicklung stabilisiert hat, beginnt sie, die Anfragen der Kunden zu bedienen.

Der Grund dafür ist, dass der Server in diesen Momenten entweder keine Zeit hat, die Anfragen zu bearbeiten, oder er tut dies absichtlich, um dem Kunden keinen Gewinn zukommen zu lassen. Um dies zu verstehen, benötigen wir ein Austauschprotokoll MT%6 mit dem Server der Maklerfirma.

Übrigens, im Moment kann die Position nicht einmal vom Terminal aus gehackt werden - sie ist nicht verfügbar...

Sie erzählen solche Horrorgeschichten) 2 Ereignisse werden nicht zusammen, sondern nacheinander verarbeitet, es gibt Fehler und sie sollten analysiert und vermieden werden) Verwechseln Sie nicht Server- und Terminalleistung.
Grund der Beschwerde: