Die Sprache MQL5 von Grund auf selbst erlernen - Seite 22

 
Реter Konow:
Die obige Bedingung ist in der Tat immer wahr, wie 2 = 2. Aus diesem Grund funktioniert if (der Bedingungsoperator) hier nicht und der Compiler erzeugt eine Warnung für diesen Code.

Hallo Peter! Der Compiler hat keine Warnungen erzeugt.

Mit freundlichen Grüßen, Vladimir.

 
MrBrooklin:

Ich muss etwas missverstanden haben, denn es gibt eine solche Reaktion.

Ich habe die folgende Bedingung in das Skript New6.mq5 geschrieben: "Für schwebende Aufträge Buy Stop und Sell Stop, wenden Sie die #define Direktive anstelle von input an. Sie ermöglicht es uns, im Skriptcode die erforderlichen Arten von schwebenden Aufträgen anzugeben, aber sie werden nicht in den Eingabeparametern des Skripts angezeigt, wenn es ausgeführt wird. Legen wir Variablen fest, die die Typen der schwebenden Aufträge orderType1 und orderType2 definieren. Nennen wir diese Variablen "BUY_STOP" und "SELL_STOP".

Bitte teilen Sie mir mit, was ich bei der Umsetzung dieser Bedingung falsch gemacht habe.

Mit freundlichen Grüßen, Vladimir.

Alles ist in Ordnung. Es gibt im Grunde keine Bedingung, so wie es auch keine Bedingung in dem Ausdruck if (2 == 2) gibt. Hier ist eine gewöhnliche, alltägliche Logik am Werk. :)
 
MrBrooklin:

Ich muss etwas missverstanden haben, denn es gab eine solche Reaktion.

Mit freundlichen Grüßen, Vladimir.

Das geschätzte ForumsmitgliedKoldun Zloy hat Ihnen eine ausführliche Antwort gegeben. In dem Makro ist ein Fehler aufgetreten. Warum haben Sie überhaupt angefangen, Makros zu verwenden? Warum brauchen Sie sie für diese Aufgabe? Makros sind ein mächtiges Werkzeug, mit dem man sich leicht umbringen kann. Aber als Erstes müssen Sie anfangen, Makros zu verwenden.

 
MrBrooklin:

Hallo Peter! Der Compiler hat keine Warnungen erzeugt.

Mit freundlichen Grüßen, Vladimir.

Eigentlich hätte eine Warnung erscheinen müssen, die Sie auffordert, den Zustand zu überprüfen. (Das gelbe Dreieck im Kompilierungsfenster).
 
Реter Konow:
Es ist alles in Ordnung. In der Tat gibt es keine Bedingung, da es keine Bedingung im Ausdruck if (2 == 2) gibt. Das ist eine gängige, alltägliche Logik. :)

Ich verstehe, dass meine Patzer für Programmierexperten unbeholfen aussehen. Vielleicht habe ich eine falsche Bedingung für das Schreiben von Code für mich gemacht?

Mit freundlichen Grüßen, Vladimir.

 
Vasiliy Sokolov:

Sie, geschätztes ForumsmitgliedKoldun Zloy, haben eine ausführliche Antwort gegeben. Der Fehler liegt in dem Makro. Warum haben Sie überhaupt angefangen, Makros zu verwenden? Warum brauchen Sie sie für diese Aufgabe? Makros sind ein mächtiges Werkzeug, mit dem man sich leicht umbringen kann. Aber als Erstes müssen Sie anfangen, Makros zu verwenden.

Ich habe es also noch nicht herausgefunden, und es gibt einige Dinge, an denen ich arbeiten muss.

Mit freundlichen Grüßen, Vladimir.

 
Реter Konow:
Die Idee ist, eine Warnung auszugeben, die dazu auffordert, den Zustand zu überprüfen. (Das gelbe Dreieck im Kompilierfenster).

Das sollte nicht der Fall sein, denn es gibt einen Wert auf der rechten Seite und eine Substitution auf der linken Seite, das ist also korrekt.

 
MrBrooklin:

Ich verstehe, dass meine Patzer für Programmierexperten unbeholfen aussehen. Vielleicht habe ich eine falsche Bedingung für das Schreiben von Code für mich gemacht?

Mit freundlichen Grüßen, Vladimir.

Sie haben Ihr Studium auf die falsche Weise begonnen. Verstehen Sie alles, was in dem Code steht? Alle Betreiber, Schlüsselwörter?

Eine Folgefrage zum Code:

Was bedeuten diese Zeilen?

if(!OrderSend(request,result))
      PrintFormat("OrderSend error %d",GetLastError());
 
Реter Konow:
Eigentlich hätte eine Warnung erscheinen müssen, die Sie auffordert, den Zustand zu überprüfen. (Das gelbe Dreieck im Kompilierungsfenster).

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

Mit freundlichen Grüßen, Vladimir.

 
MrBrooklin:

Ich verstehe, dass meine Patzer für Programmierexperten unbeholfen aussehen. Vielleicht habe ich eine falsche Bedingung für das Schreiben von Code für mich gemacht?

Mit freundlichen Grüßen, Vladimir.

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