Merkmale der Sprache mql5, Feinheiten und Techniken - Seite 143
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
Man sollte nur nicht erwarten, dass, wenn es keinen Wert gibt, dieser zwangsläufig 0 ist und entsprechend falsch, wenn es sich nicht um eine Variable vom Typ bool handelt. Auch eine explizite Umwandlung in bool hilft nicht weiter.
So funktioniert es ohne Fehler.
Ich verstehe ehrlich gesagt überhaupt nicht, woher die Null kommt:
TickValue[0] enthält Unfug. Sie kann gleich Null sein, muss es aber nicht.
Wenn der Papierkorb in TickValue[0] ungleich Null ist, dann berechnen wir Points = Profit / Lots * non-zero trash * _Point, andernfalls, wenn der Papierkorb in TickValue[0] gleich Null ist - setzen wir Points mit Null gleich.
Und woher bekommt der Ausdruck Lots * non-zero rubbish * _Point die Null, wenn Lots bei der Deklaration mit Eins initialisiert wird? Stehtin _Point eine Null?
Der Fehler ist in der Tat eindeutig.
OK, der Fehler ist unklar. Und es reproduziert sich bei mir auch nicht.
Ok, der Fehler ist unverständlich. Und es reproduziert sich nicht bei mir.
Grob gesagt kann der Aufruf dieser Funktion zu einer Division durch Null führen.
In der Praxis bin ich auf dieses Problem in der Berichtsbibliothek gestoßen. Dann wurde mir klar, dass das logisch ist.
Grob gesagt kann der Aufruf dieser Funktion zu einer Division durch Null führen.
Ich habe diesen Code auf border dubles, aber es stürzt nicht ab
Ich erhalte den gleichen Code bei Border Dubles, aber es stürzt nicht ab.
einen solchen Absturz.
Zusammenfassend lässt sich sagen, dass die Multiplikation von zwei von Null verschiedenen Dubletten Null ergeben kann. Und dies ist kein degenerierter Fall, sondern ein realer Fall in der Praxis.
Grob gesagt, kann ein Kampf-EA mit an Sicherheit grenzender Wahrscheinlichkeit daran zerbrechen.
Und die Prüfung auf Null wird nicht gespeichert, weder explizit noch implizit (bool-Konvertierung)
Zusammenfassend lässt sich sagen, dass die Multiplikation von zwei von Null verschiedenen Dubletten Null ergeben kann. Und dies ist kein degenerierter Fall, sondern ein realer Fall in der Praxis.
Grob gesagt, kann ein Kampf-EA mit an Sicherheit grenzender Wahrscheinlichkeit daran zerbrechen.
auf NaN müssen Sie zusätzlich prüfen, höchstwahrscheinlich wird dieser Code funktionierenhttp://qaru.site/questions/20557/checking-if-a-double-or-float-is-nan-in-c
oder die Genauigkeit einschränken, wie im CompareDoubles()-Beispiel - es scheint in SBhttps://www.mql5.com/ru/docs/basis/types/double zu sein