Jede Anfängerfrage, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht vorbei. Nirgendwo ohne dich - 6. - Seite 235
![MQL5 - Sprache von Handelsstrategien, eingebaut ins Kundenterminal MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
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
Und wenn wir den nächsten Kauf eröffnen, rollen wir natürlich sofort alle Positionen um(StopLoss entspricht unserem Durchschnittspreis + 50 Pips).
Das ist der Schurke, der manchmal nicht den letzten Platz einnimmt. Wir hatten 3 Stellen, aber 4 davon waren offen. Ich habe vergessen, StopLoss an die vierte Stelle zu setzen .
DedZone gehalten werden sollte:
Die DedZone-Berechnung erfolgt bei der Initialisierung des Expert Advisors.
Und wenn wir den nächsten Kauf eröffnen, rollen wir natürlich sofort alle Positionen um(StopLoss entspricht unserem Durchschnittspreis + 50 Pips).
Das ist der Schurke, der manchmal nicht den letzten Platz einnimmt. Wir hatten 3 Stellen, aber 4 davon waren offen. Ich habe vergessen, StopLoss an die vierte Stelle zu setzen .
DedZone gehalten werden sollte:
DedZone befindet sich in der Initialisierung des Expert Advisors.
Wenn beide gleich Null sind, was dann? Alpari verwendet in einem solchen Fall Spread*2.
Und Sie haben meine Frage nach der Logik dieser Zeilen nicht beantwortet.
es ist besser, es so zu machen (jemand schrieb, dass er Probleme mit Ihrer Vorgehensweise hatte, wenn er Bestellungen änderte oder löschte) :
Und warum Öl und Butter? (etwas in Ruhe lassen).
Ich danke Ihnen!
Scheint mit dem Experten übereinzustimmen :))
Und Sie haben meine Frage nach der Logik dieser Zeilen nicht beantwortet.
artmedia70:
Die gesamte Logik des Verhaltens eines EA kann in logische Blöcke unterteilt werden, die je nach den Bedingungen entweder ausgeführt werden oder nicht.
Für Ihre Zwecke können Sie sehen, dass dieser Block aus einer Reihe von in geschweiften Klammern eingeschlossenen Zeichenfolgen bestehen kann:
If (Bedingung) {wenn die Bedingung wahr ist, wird der in diesen geschweiften Klammern eingeschlossene Block ausgeführt}
Andernfalls {wenn die obige Bedingung nicht erfüllt ist, wird der in diesen geschweiften Klammern eingeschlossene Block ausgeführt}
Wenn nach der Bedingung keine geschweiften Klammern stehen, ist der Block, der ausgeführt wird, wenn die Bedingung wahr ist, eine einzelne Zeile unmittelbar nach der Bedingung:
Wenn (Bedingung) Diese Zeile wird ausgeführt
Andernfalls wird diese Zeile ausgeführt.
In meinen Beispielen ist If gleich if und Otherwise gleich else.
Hier aufgenommen
Und wenn beide null sind, was dann? In diesem Fall verwendet Alpari Spread*2.
Und Sie haben meine Frage nach der Logik dieser Zeichenketten nicht beantwortet.
Vielen Dank für die Informationen über Alpari.
Was die Zeilenlogik betrifft, so hat ALXIMIKS sie beantwortet.
Ich sollte für mich selbst hinzufügen, dass eine Änderung nur vorgenommen werden sollte, wenn alle Bedingungen erfüllt sind. Wenn mindestens einer von ihnen scheitert, machen wir weiter.
Vielen Dank für die Informationen über Alpari.
Auf die Frage nach der String-Logik antwortete ALXIMIKS.
Ich sollte hinzufügen, dass in diesem Fall die Änderung nur erfolgen sollte, wenn alle Bedingungen erfüllt sind. Wenn mindestens einer von ihnen versagt, machen wir weiter.
Er zeigte mir aus irgendeinem Grund meine eigenen Worte, die ich einmal an jemanden geschrieben hatte.
Ich wollte eine Antwort auf meine Frage nach der Logik erhalten. Alle ifs () in diesem Codeblock werden nacheinander ausgeführt. Das heißt, wenn die erste Bedingung wahr ist, ist auch die zweite wahr, wenn die zweite wahr ist, ist auch die dritte wahr und so weiter, aber... Wenn die erste Bedingung nicht erfüllt ist, wird die zweite nicht ausgeführt, aber die dritte wird erneut geprüft.
Vielleicht ist das ja auch gut so:
Dies ist nur meine Vermutung, da ich absolut keine Ahnung habe, welche Logik Sie im Sinn haben und nicht weiß, was einige der Variablen und Funktionen tun und enthalten/zurückgeben.
1) Er zeigte mir aus irgendeinem Grund meine eigenen Worte, die ich einmal an jemanden geschrieben hatte.
2) Das ist es, was ich von Ihnen über die Logik hören wollte. Sie haben alle if () in diesem Codeblock hintereinander geschaltet. Das heißt, wenn die erste Bedingung wahr ist, ist auch die zweite Bedingung wahr, wenn die zweite Bedingung wahr ist, ist auch die dritte Bedingung wahr, usw., aber... Wenn die erste Bedingung nicht erfüllt ist, wird die zweite nicht ausgeführt, aber die dritte wird erneut geprüft.
1) Nun, das galt für alle, nicht nur für Sie.
2) Sie haben diese Aussage schon einmal gemacht, vor ein paar Tagen, nur habe ich damals vergessen, diese Information noch einmal zu überprüfen.
Jetzt habe ich ein einfaches Skript erstellt:
Und es stellte sich heraus, dass Sie sich geirrt hatten: KEIN ALERT !!!
1) Nun, das galt für alle, nicht nur für Sie.
2) Sie haben diese Aussage schon einmal gemacht, vor ein paar Tagen, aber ich habe damals vergessen, die Informationen zu überprüfen.
Jetzt habe ich ein einfaches Skript erstellt:
Und es stellte sich heraus, dass Sie sich geirrt hatten: KEIN ALERT !!!
Nun, ich stimme zu. In diesem Fall war ich etwas voreilig, als ich vorhin schrieb, was und wie die verschachtelten Bedingungen ohne geschweifte Klammern durchgesetzt werden würden. Sie haben in dieser Situation Recht. Wissen Sie, warum?
Versuchen Sie, else in Ihrem Code ausführen zu lassen.
Nun, ich stimme zu. In diesem Fall war ich etwas voreilig, als ich vorhin schrieb, was und wie die verschachtelten Bedingungen ohne geschweifte Klammern durchgesetzt werden würden. Sie haben in dieser Situation Recht. Wissen Sie, warum?
Versuchen Sie, else in Ihrem Code ausführen zu lassen.
Dieses Skript gibt keinen Alarm aus. Else bezieht sich auf die Bedingung " if (5>3){Alert ("AAAAAAAAAAAAAAAAAAAAAAAAAAAA"); a=5;} "
Danksagungen :
haben anAlert: "a=0".
Ergebnis - die Behandlung von fehlgeschlagenen Bedingungen ist nur für die letzte Bedingung möglich, wenn die geschweiften Klammern "{" bei der Aufzählung einer bestimmten Reihe von Bedingungen nicht verwendet werden.
kein Alert von diesem Skript. Else bezieht sich auf die Bedingung " if (5>3){Alert ("AAAAAAAAAAAAAAAAAAAAAAAAAA"); a=5;} "
Danksagungen :
haben anAlert: "a=0".
Das Ergebnis ist, dass die Behandlung von Nicht-Bedingungen nur für die letzte Bedingung möglich ist, wenn die geschweiften Klammern "{" während der Aufzählung einer bestimmten Reihe von Bedingungen nicht verwendet werden.
D.h. Klammern werden benötigt, um logische Verzweigungen zu organisieren. Ohne sie ist die erste Bedingung erfüllt. Wenn sie nicht wahr ist, werden die anderen Bedingungen nicht ausgeführt.
Versuchen Sie, es herauszufinden:
Und dann finden Sie heraus, worauf er sich sonst noch bezieht: