Rundung von Zahlen in MT4 über NormalizeDouble - Seite 15

 
pavlick_:
Einige Zahlen können nur als unendlicher Bruch dargestellt werden, z. B. 1/3 im Dezimalsystem. Aber 1/3 ist kein unendlicher Bruch im tertiären System, dort ist es == 0,1. Das heißt, verschiedene Zahlensysteme haben ihre eigenen unendlichen Brüche. Daher kann ein nicht unendlicher Bruch im Dezimalsystem eine Eins im Binärsystem sein. Zum Beispiel: 0,1, 0,2, 0,3, 0,4, ... haben keine exakte binäre Darstellung. Wenn man NormalizeDouble zehnmal aufruft, ist es entweder 0.19999999999...1 oder 0.200000...1. Ich weiß es nicht, vielleicht ist das neu.

Du sagst die Wahrheit! Um es klar zu sagen: ND wird NUR zum Vergleich benötigt, nicht zur Darstellung. Und sie ist längst überholt.

 
pavlick_:
Einige Zahlen können nur als unendliche Brüche dargestellt werden, z. B. 1/3 im Dezimalsystem. Aber 1/3 ist kein unendlicher Bruch im tertiären System, dort ist es == 0,1. Das heißt, verschiedene Zahlensysteme haben ihre eigenen unendlichen Brüche. Folglich kann ein nicht-unendlicher Bruch im Dezimalsystem eine Eins im Binärsystem sein. Zum Beispiel: 0,1, 0,2, 0,3, 0,4, ... haben keine exakte binäre Darstellung. Wenn man NormalizeDouble zehnmal aufruft, ist es entweder 0.19999999999...1 oder 0.200000...1. Ich weiß es nicht, vielleicht ist das neu.

Daran erinnere ich mich, aber in diesem Fall ist es 0+0 und nicht 0.

 
transcendreamer:

Daran erinnere ich mich, aber in diesem Fall ist es 0+0 und nicht 0.

In welchem Fall? Nennen Sie mir ein Beispiel, bei dem dies der Fall ist.
 
fxsaber:

Du sagst die Wahrheit! Um es klar zu sagen: ND wird NUR zum Vergleich benötigt, nicht zur Darstellung. Und ist längst überholt.

NormalizeDouble wird nur benötigt, um den Preis zu normalisieren, wenn Pending Orders und Stops platziert werden. Für alles andere braucht es sie nicht.

Dies ist in der Dokumentation eindeutig festgelegt

Die berechneten StopLoss- und TakeProfit-Werte sowie die Werte der offenen Preise für schwebende Aufträge müssen mit der Genauigkeit normalisiert werden, deren Wert mit Digits() ermittelt werden kann.

 
Sergei Vladimirov:
In welchem konkreten Fall? Nennen Sie mir ein Beispiel für einen solchen Fall.

dies geschieht, wenn die Variable bereits 0 enthielt und 0 hinzugefügt wird

(Ich vermute, dass es nicht wirklich 0 ist)

 
Slawa:

NormalizeDouble wird nur benötigt, um den Preis zu normalisieren, wenn Pending Orders und Stops platziert werden. Für alles andere braucht es sie nicht.

Dies ist in der Dokumentation eindeutig festgelegt

Aber was ist mit dem Vergleich realer Zahlen...
 
transcendreamer:

dies geschieht, wenn die Variable bereits 0 enthielt und 0 hinzugefügt wird

(Ich vermute, dass es nicht wirklich 0 ist)


Ganz genau. Die "echten" Nullen bei Addition und Subtraktion bleiben Nullen. Deshalb habe ich Ihnen ein Beispiel gegeben.

 
Alexander Bereznyak:
Wie wäre es mit einem Vergleich realer Zahlen...

Eine damit verbundene Nebenwirkung.

Das erwies sich als praktisch. Ursprünglich war sie jedoch nicht für diese Art der Verwendung vorgesehen.

Es gibt spezielle Funktionen, um die reelle Zahl mit der richtigen Genauigkeit zu drucken.

Sagen Sie mir, warum müssen Sie reelle Zahlen bei Berechnungen runden? Denn in diesem Fall geht die Genauigkeit der Berechnungen verloren!

 
Sergei Vladimirov:

Ganz genau. Die "echten" Nullen bei Addition und Subtraktion sind immer noch Nullen. Deshalb habe ich Ihnen ein Beispiel gegeben.

Ich begann zu vermuten, dassNormalizeDouble(new_lot-sum_lots,Lots_Digits); nicht genau 0 ausgibt und einen Rest speichert
 
Slawa:

NormalizeDouble wird nur benötigt, um den Preis zu normalisieren, wenn Pending Orders und Stops platziert werden. Für alles andere braucht es sie nicht.

Dies ist in der Dokumentation eindeutig festgelegt

Veraltet

Forum zum Thema Handel, automatisierte Handelssysteme und Strategietests

Alternative Implementierungen von Standardfunktionen/-ansätzen

Renat Fatkhullin, 2016.09.02 00:55

Dies ist nicht der Weg zur Überlastung. Gleiche Funktionssignaturen.

Aber die Idee ist klar - die Funktion der Normalisierung unter Berücksichtigung der Zeckenkörnigkeit.

Grund der Beschwerde: