Diskussion zum Artikel "Bibliothek für ein leichtes und schnelles Entwickeln vom Programmen für den MetaTrader (Teil XXVII): Arbeiten mit Handelsanfragen - platzieren von Pending-Orders"

Einloggen oder registrieren, um einen Kommentar zu schreiben
MetaQuotes
Moderator
216362
MetaQuotes  

Neuer Artikel Bibliothek für ein leichtes und schnelles Entwickeln vom Programmen für den MetaTrader (Teil XXVII): Arbeiten mit Handelsanfragen - platzieren von Pending-Orders :

In diesem Artikel werden wir die Entwicklung von Handelsanfragen fortsetzen, die Platzierung von Pending-Orders umsetzen und festgestellte Mängel bei der Arbeit Handelsklassen beseitigen.

Im vorherigen Artikel haben wir mit der Implementierung von schwebenden Handelsanfragen begonnen und die erste schwebende Anfrage zur Eröffnung einer Position für den Fall erstellt, dass nach dem Senden einer Anfrage an den Server ein Fehler in der Handelsklasse auftritt. In diesem Artikel werden wir die Entwicklung der schwebenden Anfrage wieder aufnehmen und die Erstellung einer schwebenden Anfrage für den Fall implementieren, dass beim Setzen von Pending-Orders Fehler aufgetreten sind.

Beim Testen der Handelsklasse hatte ich einige Unzulänglichkeiten festgestellt. Insbesondere bei der Initialisierung der Handelsobjekte des Symbols im Klassenkonstruktor wurden für diese fest eingestellte Standardwerte gesetzt. Möglicherweise wurden nicht alle diese Werte in der Symbolspezifikation unterstützt. Dies führte zu Serverfehlern beim Versuch, Pending-Orders zu platzieren — der Server aktivierte den nicht unterstützten Fehler vom Typ Ablauf der Order. Dieser Fehler wurde nirgendwo korrigiert und führte schließlich zur Unfähigkeit, eine Pending-Order aufzugeben. Beim Senden einer Handelsanforderung mit Standardwerten wurden auch einige nicht unterstützte Daten an die Handelsanforderung gesendet. Um dieses Problem zu lösen, musste ich die korrekten Daten entsprechend der entsprechenden Symbolspezifikation direkt in der Handelsanfrage angeben.

Dies erforderte die Kenntnis einer Symbolspezifikation und die manuelle Eingabe genauer Werte direkt in den Programmcode, statt der automatischen Korrektur von Werten durch die Bibliothek selbst. Zur Vereinfachung werden wir kleinere Änderungen in der Logik der Handelsklasse vornehmen. Alle Symbol-Handelsobjekte sollen durch automatische Auswahl der richtigen Werte im OnInit() des EA initialisiert werden. Die Werte -1 werden standardmäßig an die Handelsmethoden der Handelsklasse für die Orderausfüllung und die Ablauftypen übergeben, um anzuzeigen, dass es an der Zeit ist, voreingestellte korrekte Standardwerte zu verwenden. Wenn ein anderer Wert aus dem Programm übergeben wird, wird dieser stattdessen verwendet. Wenn sich der Wert als ungültig herausstellt, wird er bei der Behandlung von Fehlern in der Handelsklasse korrigiert.

Autor: Artyom Trishkin

Einloggen oder registrieren, um einen Kommentar zu schreiben