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.
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...
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.
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.
- www.mql5.com
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.
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.
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...
- admin
- shelandr.ru
Ü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...
- Freie Handelsapplikationen
- Über 8.000 Signale zum Kopieren
- Wirtschaftsnachrichten für die Lage an den Finanzmärkte
Sie stimmen der Website-Richtlinie und den Nutzungsbedingungen zu.
Ich habe eine Frage: Wie funktionierendie Befehle?
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?