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"
Fast 4 Megabyte Code, und die Bibliothek Schema und benutzerdefinierte Methoden sind nicht vorgesehen ... Schreiben Sie für sich selbst?
Sehen Sie durch die Augen Ihrer Benutzer. Wie ist es für sie, all dies ohne Bezugspunkte zu verstehen?
- www.mql5.com
Eine andere Frage: Wie "vernünftig" ist es, einen ausstehenden Auftrag nach einem Internetausfall zu setzen, ohne den Nutzer erneut zu befragen? Wenn es eine Stunde dauert, bis der Nutzer wieder ins Internet kommt und sich die Situation dramatisch verändert, lohnt es sich dann, den Auftrag automatisch zu setzen? Ist es nicht besser, eine Nachricht zu hinterlassen, dass der Auftrag aufgrund der fehlenden Internetverbindung nicht erteilt wurde, und der Benutzer entscheidet, ob er ihn erneut erteilen soll oder nicht?
Wird in dem Artikel nicht das Prinzip beschrieben, und warum genau?
Insbesondere wird in diesem Artikel kein Wort darüber verloren, warum beschlossen wird, eine Pending Order unmittelbar nach der Internetverbindung zu senden, ohne den Benutzer wiederholt abzufragen.
Es wird darauf hingewiesen, dass die in dem Artikel vorgestellten Pending Requests nicht im realen Handel verwendet werden können. Das heißt, es handelt sich nur um Konzepttests und nichts weiter.
Es wird nicht erklärt, wie eine Order nach der Wiederherstellung der Internetverbindung ohne Abfrage des Benutzers gesetzt werden kann.
Und braucht man wirklich mehrere Artikel, um einen unkomplizierten Mechanismus eines Pending Trade Request zu testen? Außerdem ist es einfacher und korrekter, den Benutzer erneut abzufragen, und das war's dann auch schon.
Insbesondere wird in diesem Artikel nicht gesagt, warum beschlossen wird, eine ausstehende Bestellung sofort nach der Internetverbindung zu senden, ohne den Benutzer erneut zu befragen.
Es wird gewarnt, dass die in dem Artikel vorgestellten Pending Requests nicht für den realen Handel verwendet werden können. Das heißt, es handelt sich nur um Konzepttests und nicht um mehr.
Es gibt keine Erklärung dafür, wie man einen Auftrag nach der Wiederherstellung der Internetverbindung ohne Rückfrage beim Benutzer einstellt.
Und braucht man wirklich mehrere Artikel, um einen unkomplizierten Mechanismus eines Pending Trade Request zu testen? Außerdem ist es einfacher und korrekter, den Benutzer erneut abzufragen, und das war's dann auch schon.
Vergessen Sie nicht, dass dies nur ein Artikel ist, der für diejenigen geschrieben wurde, die etwas verstehen wollen. Es handelt sich nur um ein kleines Stück Programmierunterricht, nicht um einen fertigen Expert Advisor. Der Artikel beschreibt und zeigt im Code, wie und was zu tun ist, um das gewünschte Ergebnis zu erzielen. Wenn Sie eine Benutzerumfrage in Ihrem Expert Advisor erstellen möchten, verbietet Ihnen niemand, dies zu tun.
Insbesondere wird in diesem Artikel nicht gesagt, warum beschlossen wird, eine ausstehende Bestellung sofort nach der Internetverbindung zu senden, ohne den Benutzer erneut zu befragen.
Es wird gewarnt, dass die in dem Artikel vorgestellten Pending Requests nicht für den realen Handel verwendet werden können. Das heißt, es handelt sich nur um Konzepttests und nicht um mehr.
Es gibt keine Erklärung dafür, wie man einen Auftrag nach der Wiederherstellung der Internetverbindung ohne Rückfrage beim Benutzer einstellt.
Und braucht man wirklich mehrere Artikel, um einen unkomplizierten Mechanismus eines Pending Trade Request zu testen? Außerdem ist es einfacher und korrekter, den Benutzer erneut zu befragen, und das war's dann auch schon.
Vergessen Sie nicht, dass dies nur ein Artikel ist, der für diejenigen geschrieben wurde, die etwas verstehen wollen. Es handelt sich nur um ein kleines Stück Programmierunterricht, nicht um einen fertigen Expert Advisor. Der Artikel beschreibt und zeigt im Code, wie und was zu tun ist, um das gewünschte Ergebnis zu erzielen. Wenn Sie eine Benutzerumfrage in Ihrem Expert Advisor erstellen möchten, verbietet Ihnen niemand, dies zu tun.
1. Für diejenigen, die es verstehen wollen, wäre es gut, ein Schema der Bibliothek zu erstellen, um die Orientierung in der Materie zu erleichtern.
2. Jede Änderung, die der Autor an den Handelsfunktionen vorgenommen hat, ist kein Grund, sie in jedem Artikel abzudrucken. Das Material ist aufgebläht. Dieselben Handelsfunktionen werden von Artikel zu Artikel mit geringfügigen Änderungen ausgetauscht. Jetzt wird es Codes für ausstehende Anträge geben? Das bringt keine Klarheit, sondern verwirrt den Leser.
3. Es wird bald 30 Artikel geben, und der Autor warnt davor, die Bibliothek zu benutzen. Wozu ist sie dann da? Um zu lehren, wie man eine Bibliothek schreibt, deren Verwendung unerwünscht ist?
1. Für diejenigen, die es verstehen wollen, wäre es schön, ein Bibliotheksdiagramm zu erstellen, um die Navigation durch das Material zu erleichtern.
2. Jede Änderung, die der Autor an den Handelsfunktionen vornimmt, ist kein Grund, sie in jedem Artikel abzudrucken. Das Material ist aufgebläht. Die gleichen Handelsfunktionen werden von Artikel zu Artikel mit geringfügigen Änderungen ausgetauscht. Jetzt wird es Codes für ausstehende Anträge geben? Das bringt keine Klarheit, sondern verwirrt den Leser.
3. Es wird bald 30 Artikel geben, und der Autor warnt davor, die Bibliothek zu benutzen. Wozu ist sie dann da? Um zu lehren, wie man eine Bibliothek schreibt, deren Verwendung unerwünscht ist?
Essen Sie Hackfleisch roh? Hier, damit Sie es nicht essen, und eine Warnung wird gegeben - in diesem und dem letzten Artikel wird das Material vorbereitet und das Konzept debuggt.
Ich dachte, Artikel sollten fertige Lösungen haben. Und was gibt es zu beheben?
Wenn die Kommunikation mit dem Server unterbrochen wurde, zeichnen Sie die Auftragsdaten auf, setzen Sie das Flag zur erneuten Überprüfung der Kommunikation mit dem Server. Wir prüfen in einer Schleife erneut, bis die Verbindung wiederhergestellt ist. Nachdem die Kommunikation wiederhergestellt ist, fragen wir den Benutzer, ob er die fehlgeschlagene Bestellung einstellen möchte. Wenn ja, senden wir ihn zurück, entfernen die Markierung und löschen die Auftragsdaten aus der Liste der fehlgeschlagenen Aufträge. Im Allgemeinen das ganze Konzept.
- 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.
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