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" - Seite 2
Sie verpassen Handelsmöglichkeiten:
- Freie Handelsapplikationen
- Über 8.000 Signale zum Kopieren
- Wirtschaftsnachrichten für die Lage an den Finanzmärkte
Registrierung
Einloggen
Sie stimmen der Website-Richtlinie und den Nutzungsbedingungen zu.
Wenn Sie kein Benutzerkonto haben, registrieren Sie sich
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?
Gute, autarke Bezugspunkte sind die Artikel selbst. Sie haben nicht nur Leitlinien, sondern sind auch gründlich durchgekaut - falls Sie zu faul waren, sie zu lesen.
Das Schema findet sich am Ende der Bibliothekserstellung. Sowie User-Case-Methoden für den schnellen Zugriff auf alle Bibliotheksfunktionen.
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.
Ich sehe sofort, dass Sie keine Handelsfunktionen geschrieben haben und nicht ganz verstehen, wovon wir sprechen.
Ich werde versuchen, es Ihnen noch einmal zu sagen (es war im letzten Artikel): Es gibt einige Fehler des Handelsservers, die eine gewisse Verzögerung erfordern, bevor eine Handelsanfrage erneut an den Server gesendet wird.
Normalerweise wird vorgeschlagen, diese Verzögerung mit Hilfe von Sleep() zu erreichen. Aber das stoppt die Programmausführung. Das gesamte Programm wartet also, bis die Pause innerhalb der Handelsmethode beendet ist, bevor die Handelsanfrage erneut an den Server gesendet wird.
Ist das gut so? Im allgemeinen und einfachsten Fall ist es in Ordnung.
Aber ein Expert Advisor kann aus mehreren Währungen bestehen. Und während der Wartezeit wird er nichts anderes tun als diese Wartezeit.
Ist das gut? Ich denke nicht - der Expert Advisor sollte weiterhin die Umgebung für alle seine Arbeitssymbole überwachen. Genau das ermöglichen ihm die Pending Requests: Wenn er einen Fehler vom Server erhält, der eine Wartezeit erfordert, erstellt er eine Pending Request mit der erforderlichen Anzahl von Versuchen und der erforderlichen Wartezeit dazwischen, und fährt mit seiner Arbeit fort. Dann sendet die Handelsklasse selbst die erforderliche Handelsanfrage rechtzeitig an den Server. Gleichzeitig prüft sie zunächst, "ob die Zeit für die Ausführung aller für die Handelsanfrage vorgesehenen Versuche abgelaufen ist". Daher wird der Expert Advisor nach hundertfünfzig Stunden keine veralteten Aufträge an den Server senden.
Und wenn Sie so gerne mit dem Programm kommunizieren, erlauben die von mir vorgeschlagenen "Pending Trade Requests" dem Benutzer, eine Bedingung festzulegen, wann ein Handelsauftrag gesendet werden soll. Sie legen die Bedingung fest und gehen Ihrer Arbeit nach - sobald die Bedingung eintritt, wird der Auftrag ausgelöst. Dies ist eine der vielen Methoden zur Erstellung von Handelslogik für Expert Advisors. Und wenn die Bibliothek zur Verfügung steht, um eine grafische Oberfläche für Ihre Programme zu erstellen, dann wird es einfach sein, Tools für die Erstellung von Handelslogik zu erstellen - geben Sie die erforderlichen Werte ein, legen Sie die Art der Anforderung fest und wann sie ausgeführt werden muss, und das war's....
Das ist das erste, was mir einfällt, um Ihre Frage zu erklären und zu beantworten, "warum das alles notwendig ist" - alles wird nicht "hier und jetzt" gemacht, sondern Stein für Stein, schrittweise.
Es ist sofort klar, dass Sie keine Handelsfunktionen geschrieben haben und nicht wirklich wissen, wovon Sie reden.
Ich werde versuchen, es Ihnen noch einmal zu sagen (es war im letzten Artikel): Es gibt einige Fehler des Handelsservers, die eine gewisse Verzögerung erfordern, bevor eine Handelsanfrage erneut an den Server gesendet wird.
Normalerweise wird vorgeschlagen, diese Verzögerung mit Hilfe von Sleep() zu erreichen. Aber das stoppt die Programmausführung. Das gesamte Programm wartet also, bis die Pause innerhalb der Handelsmethode beendet ist, bevor die Handelsanfrage erneut an den Server gesendet wird.
Ist das gut so? Im allgemeinen und einfachsten Fall ist es in Ordnung.
Aber ein Expert Advisor kann aus mehreren Währungen bestehen. Und während der Wartezeit wird er nichts anderes tun als diese Wartezeit.
Ist das gut? Ich denke nicht - der Expert Advisor sollte weiterhin die Umgebung für alle seine Arbeitssymbole überwachen. Genau das ermöglichen ihm die Pending Requests: Wenn er einen Fehler vom Server erhält, der eine Wartezeit erfordert, erstellt er eine Pending Request mit der erforderlichen Anzahl von Versuchen und der erforderlichen Wartezeit dazwischen, und fährt mit seiner Arbeit fort. Dann sendet die Handelsklasse selbst die erforderliche Handelsanfrage rechtzeitig an den Server. Gleichzeitig prüft sie zunächst, "ob die Zeit für die Ausführung aller für die Handelsanfrage vorgesehenen Versuche abgelaufen ist". Daher wird der Expert Advisor nach hundertfünfzig Stunden keine veralteten Aufträge an den Server senden.
Und wenn Sie so gerne mit dem Programm kommunizieren, erlauben die von mir vorgeschlagenen "Pending Trade Requests" dem Benutzer, eine Bedingung festzulegen, wann ein Handelsauftrag gesendet werden soll. Sie legen die Bedingung fest und gehen Ihrer Arbeit nach - sobald die Bedingung eintritt, wird der Auftrag ausgelöst. Dies ist eine der vielen Methoden zur Erstellung von Handelslogik für Expert Advisors. Und wenn die Bibliothek zur Verfügung steht, um eine grafische Oberfläche für Ihre Programme zu erstellen, dann wird es einfach sein, Werkzeuge für die Erstellung von Handelslogik zu erstellen - geben Sie die erforderlichen Werte ein, legen Sie die Art der Anforderung fest und wann sie ausgeführt werden muss, und das war's....
Das ist das erste, was mir einfällt, um Ihre Frage zu erklären und zu beantworten, "warum das alles notwendig ist" - alles wird nicht "hier und jetzt" gemacht, sondern Stein für Stein, schrittweise.
Wenn die Verbindung zum Server unterbrochen wird, werden alle Berechnungen im Expert Advisor gestoppt, denn der Hauptmotor der Berechnungen ist der Kurs.
Peter, ein Verbindungsfehler ist nicht der einzige Fehler, der ein Warten vor der Wiederholung erfordert. Sie klammern sich nur an einen künstlich erzeugten Fehler, um zu testen.....
Es ist unmöglich, alle Aufrufe des EA an den Server zu verfolgen.
Ich frage, weil die Lösung für das Problem des erneuten Versendens fehlgeschlagener Aufträge (offensichtlich) keine Komplikationen erfordert und einfach zu lösen ist.
...
Lassen Sie mich versuchen, es noch einmal zu sagen (es war im letzten Artikel): es gibt einige Fehler des Handelsservers, die eine gewisse Verzögerung erfordern, bevor eine Handelsanfrage erneut an den Server gesendet wird.
Normalerweise wird vorgeschlagen, diese Verzögerung mit Sleep() zu erreichen. Aber das stoppt die Programmausführung. Daher wird das gesamte Programm warten, bis die Pause innerhalb der Handelsmethode beendet ist, bevor eine erneute Anfrage an den Server gesendet wird.
...
Benötigt wird eine spezifische Liste solcher Fehler und eine Erklärung - WAS die Bibliothek als Lösung anbietet.
Die Benutzer müssen dazu gebracht werden, die Funktionen der Bibliothek anzuwenden und nicht ihre eigenen.
Was sind also diese Fehler und was sind Ihre Lösungen im Allgemeinen?
...
Ich frage, weil die Lösung für das Problem der erneuten Übermittlung fehlgeschlagener Aufträge (offensichtlich) keine Komplikationen erfordert und einfach gelöst ist.
Ich habe mir den letzten Artikel angesehen. Dort geht es nur um das Scheitern des Versands einer Bestellung aufgrund der Nichtverfügbarkeit des Servers. Die Form der Lösung ist viel komplizierter, als ich mir vorstellen kann. Aber das Wesen der Lösung wird nicht komplizierter.
Für andere Arten von wiederholten Anfragen gibt es keine Lösung.
Ich habe mir den letzten Artikel angesehen. Darin ist nur davon die Rede, dass das Versenden einer Bestellung aufgrund der Nichtverfügbarkeit des Servers fehlschlägt. Die Form der Lösung ist viel komplizierter, als ich es mir hätte vorstellen können. Aber das Wesen der Lösung ist nicht komplizierter geworden.
Für andere Arten von wiederholten Anfragen gibt es keine Lösung.
Und Sie testen es :)
Dies ist keine Antwort.
Sie wollen nicht über das Thema kommunizieren und zeigen, welche anstehenden Anfragen die Bibliothek bearbeiten kann.
Jede anstehende Anfrage (nicht Bestellung) braucht ihre eigene Lösung, - ihre eigene Magie, ihre eigenen Eigenschaften, ihre eigenen Methoden und so weiter. Und wo ist sie?
Das ist keine Antwort.
Sie wollen nicht über das Thema kommunizieren und zeigen, welche offenen Anfragen die Bibliothek bearbeiten kann.
Jede anhängige Anfrage (nicht Reihenfolge) braucht ihre eigene Lösung - ihre eigene Magie, ihre eigenen Eigenschaften, ihre eigenen Methoden und so weiter. Und wo ist sie?