Die Sprache MQL5 von Grund auf selbst erlernen - Seite 23

 
Aliaksandr Hryshyn:

Sie sind mit dem falschen Fuß aufgestanden. Verstehen Sie alles im Code? Alle Operatoren, Schlüsselwörter?

Frage zum Code prüfen:

Was bedeuten diese Zeilen?

Dies waren meine Kommentare zum Drehbuch:

/* Weiter geht's. Nachdem wir Anfragen an den Handelsserver gesendet haben, müssen wir wissen, ob ein schwebender Auftrag auf
eingestellt wurde oder nicht. Zu diesem Zweck verwenden wir die Funktion OrderSend, die für
Handelsoperationen konzipiert ist, indem sie Anfragen an den Handelsserver sendet. Wenn das Senden einer Anfrage an
fehlschlägt (ein Ausrufezeichen vor einer Funktion zeigt ein negatives Ergebnis ihrer Ausführung an
), wird eine Meldung mit einem Fehlercode im folgenden Format ausgegeben: "OrderSend error %d"
und GetLastError(). Wir wollen verstehen, was "OrderSend error %d" ist und was GetLastError() ist.
Beachten Sie, dass "OrderSend error %d" in doppelten Anführungszeichen steht. Das bedeutet, dass
den Text mit der wörtlichen Übersetzung "OrderSend error %d" drucken wird. Nun wollen wir verstehen, was
%d bedeutet. Im Abschnitt PrintFormat der MQL5-Referenz heißt es: "Wenn auf einen Formatstring weitere Parameter folgen,
, muss dieser String Formatspezifikationen enthalten, die das Format der Ausgabe dieser Parameter definieren.
Eine Formatangabe beginnt immer mit einem Prozentzeichen (%)". Was ist ein d? Im gleichen Abschnitt
heißt es weiter unten: "Typ d - gibt die Mindestanzahl der auszugebenden Ziffern an. Wenn die Anzahl der Stellen in
geringer ist als die angegebene Genauigkeit, wird der Ausgabewert mit Nullen auf der linken Seite aufgefüllt.
Der Ausgabewert wird nicht abgeschnitten, wenn die Anzahl der auszugebenden Ziffern größer ist als die angegebene Genauigkeit. Mit diesem
haben wir das Problem gelöst, jetzt müssen wir verstehen, was GetLastError() ist. Nochmals ein Blick ins Referenzbuch: "GetLastError()
gibt den Inhalt der Systemvariablen _LastError zurück, d.h. die Variable, in der unter
der Wert des letzten Fehlers gespeichert ist, der während der Ausführung des mql5-Programms aufgetreten ist.

Mit freundlichen Grüßen, Vladimir.

 
MrBrooklin:

Ich habe es also noch nicht herausgefunden, und es gibt noch einiges zu tun.

Mit freundlichen Grüßen, Vladimir.

Beginnen Sie wieder mit der Beschreibung dessen, was Ihr Code tut. Dieses Skript setzt den SL und TP für die Positionen. Da wir nicht wissen, ob sie vorhanden sind, gehen wir davon aus, dass die Positionen vorhanden sind, und es gibt beide (Hedge-Konto). Die Bedingung, Stopps zu setzen, wird immer true.... Es ist also folgendermaßen. Arbeiten Sie den Code bis zum Ende durch. ))))

Und versuchen Sie, jede Zeile des Codes zu verstehen. Von Anfang an.

 
Реter Konow:
Diese Bedingung ist dort überhaupt nicht erforderlich. Welche Rolle spielt sie? Können Sie das erklären?

Ich wollte eine versteckte Bedingung für das Setzen von ausstehenden Buy Stop- und Sell Stop-Aufträgen festlegen.

Mit freundlichen Grüßen, Vladimir.

Совершение сделок - Торговые операции - Справка по MetaTrader 5
Совершение сделок - Торговые операции - Справка по MetaTrader 5
  • www.metatrader5.com
Торговая деятельность в платформе связана с формированием и отсылкой рыночных и отложенных ордеров для исполнения брокером, а также с управлением текущими позициями путем их модификации или закрытия. Платформа позволяет удобно просматривать торговую историю на счете, настраивать оповещения о событиях на рынке и многое другое. Открытие позиций...
 
MrBrooklin:

Ich habe es noch ein paar Mal überprüft - der Compiler gibt nichts aus.

Mit freundlichen Grüßen, Vladimir.

Und warum sollte sie etwas produzieren? Sie kennen sich mit Makros nicht aus, wissen nicht, wie man mit ihnen arbeitet, aber Sie verwenden sie, also erwarten Sie einen Fehler oder zumindest eine Warnung von ihnen. Hätten Sie Ihr Skript wenigstens einmal in der Demo gestartet und in allen Modi ausgeführt, hätten Sie gesehen, dass es nicht funktioniert. Aber Sie gehen noch weiter. Sie fügen einen Stop-Loss und einen Take-Profit hinzu, und am Ufer heißt es: "Stoppt die Maschine!

 
Valeriy Yastremskiy:

Auch hier sollten Sie zunächst beschreiben, was Ihr Code tut. Dieses Skript setzt einen SL und TP auf die von Ihnen platzierten Positionen. Da wir nicht wissen, ob es sie gibt, gehen wir davon aus, dass es Positionen gibt, und es gibt beide (Hedge-Konto). Die Bedingung, Stopps zu setzen, wird immer true.... Es ist also folgendermaßen. Arbeiten Sie den Code bis zum Ende durch. ))))

Und versuchen Sie, jede Zeile des Codes zu verstehen. Von Anfang an.

Danke für den Tipp, zunächst zu prüfen, ob es offene Stellen gibt.

Mit freundlichen Grüßen, Vladimir.

 
MrBrooklin:

Ich wollte eine versteckte Bedingung für das Setzen von ausstehenden Buy Stop- und Sell Stop-Aufträgen festlegen.

Mit freundlichen Grüßen, Vladimir.

Sagen Sie mir, ist das Schreiben eines Makros dafür die einzige Möglichkeit, eine solche Bedingung festzulegen? Die Bedingungen werden, so wie ich es verstehe, nur durch Makros festgelegt? Oder ist es möglich, dies auf andere Weise zu tun? Und wenn es einen anderen Weg gibt, warum haben Sie sich dann für das Makro entschieden? Es muss eine Notwendigkeit bestanden haben? Aber was war es?

 
MrBrooklin:

Danke für den Tipp, zuerst zu prüfen, ob es offene Stellen gibt.

Mit freundlichen Grüßen, Vladimir.

Versuchen Sie es gar nicht erst. Dafür ist es noch zu früh. Es ist noch zu früh. Du wirst matschig, du wirst müde, und du wirst alles aufgeben. Gehen Sie zurück zum Lehrbuch und zu einfachen Aufgaben.
 
Vasiliy Sokolov:

Ist das Schreiben eines Makros die einzige Möglichkeit, diese Bedingung zu setzen? So wie ich es verstehe, werden die Bedingungen nur durch Makros festgelegt? Oder gibt es einen anderen Weg? Und wenn es einen anderen Weg gibt, warum haben Sie sich dann für das Makro entschieden? Es muss eine Notwendigkeit bestanden haben? Aber was war es?

Nein, das war nicht nötig, ich bin beim Studium der Modifikatoren einfach auf #define gestoßen und habe beschlossen, es in meinem Skript auszuprobieren.

Mit freundlichen Grüßen, Vladimir.

 
MrBrooklin:

Ich wollte eine versteckte Bedingung für das Setzen von ausstehenden Buy Stop- und Sell Stop-Aufträgen festlegen.

Mit freundlichen Grüßen, Vladimir.

Was bedeutet "verborgener Zustand"? Diese Art von Bedingungen gibt es in der Programmierung nicht.
 
Vasiliy Sokolov:

... Wenn Sie Ihr Skript einmal auf einer Demo laufen lassen würden und es in allen Modi ausführen würden, würden Sie sehen, dass es nicht funktioniert. Aber Sie gehen noch einen Schritt weiter. Sie fügen einen Stop-Loss und einen Take-Profit hinzu, und schon schreit das Ufer: "Halten Sie an!"

Vasiliy, ich habe das Skript mehr als einmal ausgeführt und alle Modi funktionieren, und zwar habe ich zwei schwebende Aufträge Buy Stop und Sell Stop mit dem von mir angegebenen Abstand gesetzt. Stop-Loss und Take-Profit werden ebenfalls auf den erforderlichen Abstand eingestellt. Die Aufträge funktionieren. Ich möchte hier ein Bildschirmfoto anhängen.

Mit freundlichen Grüßen, Vladimir.


Grund der Beschwerde: