Merkmale der Sprache mql5, Feinheiten und Techniken - Seite 146
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
Sie war vom ersten Beitrag an geschlossen. Wenn die Mindestzahl mit etwas weniger als eins multipliziert wird, erhält man Null.
Wie würde der korrekte Code aussehen?
Wie sieht der richtige Code aus?
Forum zum Thema Handel, automatisierte Handelssysteme und Testen von Handelsstrategien
Merkmale der Sprache mql5, Feinheiten und Tricks
fxsaber, 2019.10.28 11:42
Kompilierung: Ausdruck nicht boolesch
keine gute Option für mich
Ich tue es nicht selbst.
Für Ästheten können Sie eine DOUBLE-Struktur mit entsprechenden Operatoren erstellen. Mit der Praxis hat das aber wenig zu tun. In dem ursprünglichen praktischen Beispiel.
ForUM zum Thema Handel, automatisierte Handelssysteme und Strategietests
Merkmale der Sprache mql5, Feinheiten und Techniken
fxsaber, 2019.10.28 07:24
So verstrickt man sich in die Division durch Null, selbst mit einem Scheck.Der Fehler ist in der Tat verständlich. Aber beim Schreiben von Code wie diesem ist es nicht immer offensichtlich, dass eine solche Prüfung nicht ausreicht, um eine Division durch Null zu vermeiden.
Sie müssen lediglich das zu erstellende Array-Element auf Null setzen. Die fehlende Initialisierung ist in diesem Fall die Ursache für die Kollisionen. Deshalb habe ich in meinem Code einfach eine Nullstellung vorgenommen. Ich möchte mich nicht mit der allgemeinen Ansicht befassen.
Kompilierung: Ausdruck nicht boolesch
keine gute Option für mich
Mit Ihnen stimmt etwas nicht.
Es ist eher verwirrend, warum die Division durch Null zu einer fpu-Ausnahme führt, zumindest bei mir.
Irgendetwas führt Sie in die falsche Richtung.
fxsaber:
Kein Problem hier
2019.10.28 20:45:47.010 tst1 (EURUSD,H4) 2.224851351121351e-308 --> true
2019.10.28 20:45:47.010 tst1 (EURUSD,H4) -nan --> true
UPD:
Prüfung auf Informationen
2019.10.28 22:04:00.163 tst1 (EURUSD,H4) 1. dev = inf ---> false
2019.10.28 22:04:00.163 tst1 (EURUSD,H4) 2. dev = inf ---> true
Hier gibt es kein Problem.
Googelt man nach "C++ double zero divide", funktioniert euer Code nicht für nicht-normalisierte Zahlen, ihr braucht dies:
Meditationsschrift ))))
Interessantes Thema. Hier habe ich etwas gefunden. Besonders hervorzuheben ist der Theorieblock.
abs(u - v)/abs(u) <= epsilon && abs(u - v)/abs(v) <= epsilon; // (4)
abs(u - v)/abs(u) <= epsilon || abs(u - v)/abs(v) <= epsilon; // (5)
Auf diese Weise können alle Unterlauf- und Überlaufbedingungen sicher geschützt werden. Die obige Methode funktioniert jedoch nicht, wenn v oder u gleich Null ist. In solchen Fällen besteht die Lösung darin, auf einen anderen Algorithmus zurückzugreifen, z. B.(1).
Wozu? Alles, was ich sehe, ist eine idiotische Warnung, auch wenn sie absolut berechtigt ist.
Boolesche Konvertierungen
Ein prvalue vom Typ Integral, Gleitkomma, unscoped enumeration, pointer und pointer-to-member kann in einen prvalue vom Typ bool konvertiert werden.
Der Wert Null (für Integral-, Fließkomma- und nicht skopierte Aufzählungen) sowie der Null-Zeiger und die Null-Zeiger-auf-Member-Werte werden falsch. Alle anderen Werte werden wahr.
Im Allgemeinen ist es reine Ignoranz, diese IsEqual(), IsInf() und IsZerro() zu schreiben. Ich werde mich nicht an der Diskussion beteiligen.
Wozu? Alles, was ich sehe, ist eine idiotische Warnung, die durchaus berechtigt ist.
Im Allgemeinen ist es völlig unwichtig, solche IsEqual(), IsInf(), IsZerro() zu schreiben. Ich werde mich nicht an der Diskussion beteiligen.
IsInf() und IsNaN() funktionieren,
IsEqual() und IsZerro() sind fragwürdig, von einigen Quellen als "Trick für Double" gegoogelt.