Diskussion zum Artikel "Bibliothek für ein leichtes und schnelles Entwickeln vom Programmen für den MetaTrader (Teil XXVI): Arbeiten mit schwebenden Handelsanfragen - Positionseröffnung"

 

Neuer Artikel Bibliothek für ein leichtes und schnelles Entwickeln vom Programmen für den MetaTrader (Teil XXVI): Arbeiten mit schwebenden Handelsanfragen - erste Implementation (Positionseröffnung) :

In diesem Artikel werden wir einige Daten im Wert der Magicnummer der Aufträge und Positionen speichern und mit der Umsetzung der schwebenden Anträge beginnen. Um das Konzept zu überprüfen, erstellen wir die erste Testanforderung zur Eröffnung von Marktpositionen, wenn ein Serverfehler auftritt, der ein Warten und das Senden einer wiederholten Anfrage erfordert.

Kompilieren und starten wir den EA. Trennen wir die Internetverbindung und warten, bis das folgende Bild in der unteren rechten Ecke des Terminals erscheint:



Nachdem dem Unterbrechen der Internetverbindung klicken wir auf "Verkaufen", gibt es die folgenden Einträge werden im Journal:

2019.11.26 15:34:48.661 CTrading::OpenPosition<uint,uint>: Invalid request:
2019.11.26 15:34:48.661 No connection with the trade server
2019.11.26 15:34:48.661 Correction of trade request parameters ...
2019.11.26 15:34:48.661 Trading attempt #1. Error: No connection with the trade server


Nach Erhalt des Fehlers erstellt die Bibliothek eine schwebende Anfrage mit den Parametern, die während des erfolglosen Versuchs, eine Short-Position zu eröffnen, festgelegt wurden.
Die schwebende Anfrage enthält auch die Anzahl der Versuche und die Wartezeit von 20 Sekunden.

Stellen wir nun die Internetverbindung und die Verbindung zum Handelsserver wieder her:


Sobald die Verbindung wiederhergestellt ist, beginnt die Bibliothek mit der Bearbeitung einer schwebenden Anfrage, die an den Server gesendet wird. Infolgedessen haben wir eine offene Position und folgende Journaleinträge:

2019.11.26 15:35:00.853 CTrading::OpenPosition<double,double>: Invalid request:
2019.11.26 15:35:00.853 Trading is prohibited for the current account
2019.11.26 15:35:00.853 Correction of trade request parameters ...
2019.11.26 15:35:00.853 Trading operation aborted
2019.11.26 15:35:01.192 CTrading::OpenPosition<double,double>: Invalid request:
2019.11.26 15:35:01.192 Trading is prohibited for the current account
2019.11.26 15:35:01.192 Correction of trade request parameters ...
2019.11.26 15:35:01.192 Trading operation aborted
2019.11.26 15:35:01.942 - Position is open: 2019.11.26 10:35:01.660 -
2019.11.26 15:35:01.942 EURUSD Opened 0.10 Sell #486405595 [0.10 Market-order Sell #486405595] at price 1.10126, sl 1.10285, tp 1.09985, Magic number 17629307 (123), G1: 13
2019.11.26 15:35:01.942 OnDoEasyEvent: Position is open


Wie wir sehen können, wurde nach der Wiederherstellung der Verbindung zum Handelsserver der Handel für das Girokonto mit einer Verzögerung aktiviert.
Aber die schwebende Anfrage hat es trotzdem geschafft
...

Außerdem sehen wir die wirkliche Magicnummer 17629307 im Journal, gefolgt von der in den EA-Einstellungen definierten Magicnummer in Klammern (123) sowie einen weiteren Eintrag G1: 13, der darüber informiert, dass die erste Gruppen-ID gleich 13 ist, während die zweite Gruppen-ID fehlt — ihr Wert ist Null, daher gab es keinen zweiten Eintrag mit der G2: XX zweite Gruppen-ID.

Autor: Artyom Trishkin