Fehler, Irrtümer, Fragen - Seite 2821
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
Normalisierung ist keine Rundung
Ich habe ein A+ in Theorie, wie man mit Double arbeitet und so weiter. Der Algorithmus NormalizeDouble enthält einen Fehler. Das angesprochene Thema hat nur indirekt etwas mit dem Vergleich von Doppelgängern zu tun.
Ich wiederhole meine Frage.
Die Abbildung zeigt den Wert der nicht-normierten Variablen n und der normierten Variablen m und wie unterschiedlich sie sind. Aber wenn Sie Tangas vergleichen wollen, ist das Ihre Sache.
Ich kenne mich mit der Theorie aus, weiß, wie man mit Doppelgängern arbeitet und so weiter auf einer A+ Skala. Der Algorithmus NormalizeDouble enthält einen Fehler. Das angesprochene Thema hat nur indirekt etwas mit dem Vergleich von Doppelgängern zu tun.
Der Algorithmus NormalizeDouble enthält einen Fehler.
ja
Ich glaube, A100 hat darüber geschrieben
aber seit MQL halten die Entwickler an dieser "Funktion" fest, leider
Wenn sie es korrigieren, wird der Fehler verschwinden.
Ich denke, es werden weitere Fehler auftreten und es wird eine Menge Lärm geben ))))
Das werden sie nicht, denn fast jeder vergleicht selbst normalisierte Synchronisationen durch Normalisierung. Das heißt, sie können ihn dort platzieren, wo sie wollen.
Eine ordnungsgemäße Normalisierung sollte unter dieser Bedingung immer wahr ergeben.
Forum für Handel, automatisierte Handelssysteme und Strategietests
Fehler, Irrtümer, Fragen
fxsaber, 2020.08.10 11:37
Dies ist die einzige Überprüfung, ob die Normalisierung korrekt ist. Wenn es immer stimmt, wird nichts kaputtgehen.
NormalizeDouble ist nur ein bestimmter Algorithmus, der auf eine Double-Zahl angewendet wird. Leider ist darin ein Fehler enthalten. Wenn der Fehler behoben ist, wird er verschwinden. Alle anderen doppelten Vertretungen werden sich dadurch nicht ändern.
Ich denke, es liegt nicht an der Funktion, sondern daran, dass die Konstanten vom Compiler nicht normalisiert werden (obwohl sie das sollten).
Dann werden die gleichen Konstanten in DLL und MQL nicht übereinstimmen.
Dann werden die gleichen Konstanten in DLL und MQL nicht übereinstimmen.
Auch wahr. Außerdem bedeutet jede Normalisierung einen Verlust an Genauigkeit, so dass ich es mit der ständigen Normalisierung wahrscheinlich übertreibe.
Es genügt, den derzeitigen Normalisierungsalgorithmus zu optimieren.
Es genügt, den derzeitigen Normalisierungsalgorithmus zu optimieren.
Ich weiß nicht einmal, ob dies ein Fehler im Algorithmus ist.
Nur die Rundung erfolgt nicht durch round(), ceil(), floor(), da diese ebenfalls double zurückgeben.Wirklich, man kann keine Doppelgänger vergleichen. Nur eine harte Regel.
Oder, wie Slava sagt, durch Epsilon oder durch Multiplikation (z. B. mit 1/_Point) mit Umwandlung in int mit Rundung.
Oder durch diese, zumal sie schneller funktionieren als die normalen:
Einfacher und schneller geht es natürlich mit epsilon: