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
So oder so.
if(a==0){Ausdruck} bedeutet, wenn a 0 ist, dann ist es wahr, also führe {Ausdruck} aus.
if(a=0){Ausdruck} ist gleichbedeutend mit if(a){a=0;Ausdruck} wenn a wahr ist, {a=0;Ausdruck}.
Der zweite Satz ist falsch, er sollte wie folgt lauten
if(a=x) { expression } der Variablen a den Wert von x zuweisen, und wenn a danach nicht 0 ist, dann den Ausdruck ausführen
if(a=0) { } nach der Optimierung wird nur noch a=0 sein
Die zweite Formulierung ist falsch, richtig wäre
if(a=x) { expression } den Wert von x der Variablen a zuweisen, und wenn a danach nicht 0 ist, den Ausdruck ausführen
if(a=0) { } nach der Optimierung wird nur noch a=0 sein
Entschuldigung, das ist richtig, Ausdrücke werden von links nach rechts ausgeführt.
Deshalb beginnen wir mit einem Auftrag und prüfen dann, ob er der Wahrheit entspricht.
Dies ist in etwa der Fall:
Dieser Code berechnet nicht nur die maximale Lautstärke, sondern passt sie auch genau an die Grenzen der Symboleinstellungen an.Er berechnet sie, vergisst aber beim Einfügen, warum er sie berechnet:
Der Wert der Partie zu diesem Zeitpunkt wird so berechnet, dass die gesamte verfügbare Marge mit einer minimalen Marge verbraucht wird.
Wenn dieser Wert um mindestens einen Volumenschritt erhöht wird, ist nicht genug Geld vorhanden, um eine Position zu eröffnen.
Aber die zweite Zeile des zitierten Codes ERZEUGT den Wert des Loses für den Fall, dass die Bedingung unter if erfüllt ist, und kann ihn um viel mehr als den Wert des Volumenschrittes erhöhen, denn in Wirklichkeit gibt es Volumen min = 0,1 und Volumenschritt = 0,01.
Und in diesem Code unten kann eine Division durch Null auftreten, gegen die es keinen Schutz gibt:
Wenn SymbolInfoDouble() den Wert 0 zurückgibt, war's das. MQL5-Programme enden bei der Division durch 0, richtig? Sie kann nicht 0 zurückgeben? Die Leute hier beschweren sich darüber, dass Informationsfunktionen sehr oft 0 zurückgeben. Sie können sich nicht auf "es wird nicht 0 zurückgeben" berufen, denn erstens könnte es 0 zurückgeben und zweitens ist die Division durch 0 fatal.
Es gibt einige kleinere Bemerkungen zur "Genauigkeit der Eingabe", aber sie sind wirklich nicht allzu bedeutend, d. h. sie haben keine so schwerwiegenden Folgen, dass man sie ignorieren kann.
Im Vorgriff auf mögliche Argumente, der Code sei "ungefähr", stelle ich fest: Wie viele Benutzer des Produkts sind in der Lage, solche "schlechten Stellen" zu finden und kompetent zu beheben?
Für sie ist dies der "Code der Entwickler". Ein Vorbild, an dem man sich orientieren kann.
Warum ist die Schaltfläche "Weiter" nicht aktiv, wenn alle Pflichtfelder ausgefüllt sind?
Warum ist die Schaltfläche "Weiter" nicht aktiv, wenn alle Pflichtfelder ausgefüllt sind?
Er rechnet zwar, aber dann vergisst er, wofür er gerechnet hat:
In Erwartung möglicher Argumente, dass der Code "ungefähr" ist, möchte ich darauf hinweisen: Wie viele Benutzer des Produkts können solche "schlechten Stellen" korrekt beheben?Der Code war ungefähr (aus zwei Teilen kopiert), aber Ihre Anmerkungen sind richtig.
Hier ist die korrigierte Fassung:
Und warum session_index++; wenn session_index=1 bereits falsch ist:
Wir können nicht im Voraus wissen, wie viele Sitzungen pro Tool stattfinden werden. Wir fragen also jede Sitzung nach der Nummer ab. Wenn es wahr ist
session_exist=SymbolInfoSessionQuote(symbol,day,session_index,start,finish);
Wir interessieren uns für den Zeitpunkt ihres Beginns und ihres Endes. Wenn wir false erhalten, war's das, dann gibt es keine Sitzung mit dieser Nummer.
Wir können nicht im Voraus wissen, wie viele Sitzungen für ein Instrument erforderlich sind. Deshalb fordern wir jede Sitzung nach Nummern an. Wenn es wahr ist
analysieren wir den Zeitpunkt ihres Beginns und ihres Endes. Wenn wir false erhalten, war's das, dann gibt es keine Sitzung mit dieser Nummer.
A...... warum endet dann alles am Freitag um 24:00 Uhr und in Wirklichkeit um 23:00 Uhr?