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
Erstaunliche Schlussfolgerung! Wie kommen Sie auf die Idee, dass es sich um eine beliebige Ziffer handelt, wenn Sie nicht einmal "verstehen", was eine Ziffer überhaupt ist?
Erstaunliche Schlussfolgerung! Wie kommen Sie auf die Idee, dass es sich um eine beliebige Ziffer handelt, wenn Sie nicht einmal "verstehen", was eine Ziffer überhaupt ist?
Ich möchte gleich sagen, dass ich es vorziehe, mich nicht an solchen Erklärungen zu beteiligen, denn wenn man in der Sache nichts zu sagen hat, warum sollte man dann überhaupt reden?
Ich möchte mich bei allen Profis für ihre Einsichten bedanken!
Irtron, ich habe mich für deine Variante entschieden, sie hat mir sehr gut gefallen. Ich habe sie für allgemeine Fälle ein wenig korrigiert und überprüft:
int ComparePrice(double a, double b, double digit)
{
a -= b;
b = Ziffer;
wenn (a > b)
zurück (1);
wenn (a < -b)
zurück (-1);
zurück (0);
}
Danke.
double digit14=0.00000000000001;
Doppelte Ziffer12=0,000000000001;
double digit8=0,00000001;
doppelte Ziffer4=0,0001;
double digit2=0,01;
die die erforderliche Genauigkeit bestimmen wird.
Für diese Funktion arbeitet sie sehr schnell.
Irtron, ich danke Ihnen nochmals.
Erstaunliche Schlussfolgerung! Wie kommen Sie auf die Idee, dass es sich um eine beliebige Ziffer handelt, wenn Sie nicht einmal "verstehen", was eine Ziffer überhaupt ist?
Ich möchte gleich sagen, dass ich es vorziehe, mich nicht an solchen Erklärungen zu beteiligen, denn wenn man in der Sache nichts zu sagen hat, warum sollte man dann überhaupt reden?
Ich habe gerade gelesen, was Sie geschrieben haben. Ihr Verständnis ist offensichtlich durch "Ihre eklatante..." beeinträchtigt. (Sie nennen das Wort)"
VBAG, warum das Rad neu erfinden, wenn es eine Funktion NormalizeDouble() gibt, die zwei Zahlen schneller vergleicht als ComparePrice()?
VBAG, warum das Rad neu erfinden, wenn es eine NormalizeDouble() Funktion gibt, die zwei Zahlen schneller vergleicht als ComparePrice()?
Wenn Sie ein ähnliches Fahrrad oder bessere Alternativlösungen vorschlagen können, würde ich sie gerne verwenden.
Hochachtungsvoll,
Wladimir
VBAG, warum das Rad neu erfinden, wenn es eine NormalizeDouble() Funktion gibt, die zwei Zahlen schneller vergleicht als ComparePrice()?
Wenn Sie ein ähnliches Rad oder bessere Alternativen vorschlagen können, würde ich sie gerne verwenden.
Hochachtungsvoll,
Wladimir
2007.09.12 07:15:09 $CheckCompareDouble USDJPY,M5: CD: 20485, xNormalize: 51265
Schlussfolgerung:
Die CD-Funktion vergleicht zwei Double-Zahlen, gibt die Antwort <, > oder = mit 14 Dezimalstellen und arbeitet 2 mal schneller als die einfache Durchführung von NormalizeDouble() (auch ohne Logik zum Vergleich).
Viele Leute schreiben, dass zum Vergleichen die eingebaute Funktion NormalizeDouble() verwendet werden muss. (dies wird auch von den Entwicklern empfohlen).
Daher möchte ich zunächst eine Definition geben: "Was ist NormalizeDouble()?", d.h. wie funktioniert es, was ist sein Algorithmus.
Rundung einer Fließkommazahl auf eine bestimmte Genauigkeit.
...
Ich weiß nicht, wie die Rundung in MQL4 organisiert ist (fragen Sie die Entwickler), aber ich kenne eine Standardmethode, die Fließkommazahlen auf eine bestimmte Genauigkeit rundet:
Hier, eine Funktion:
Aus dieser Funktion können Sie ersehen, dass wir zuerst von einer reellen Zahl zu einer ganzen Zahl und dann wieder zurück zu einer reellen Zahl gehen.
Zum Vergleich genügt es, nur eine ganze Zahl zu verwenden.
Daher bin ich der Meinung, dass der schnellste und zuverlässigste Weg, reelle Zahlen zu vergleichen, darin besteht, sie in ganze Zahlen umzuwandeln.
So sieht der Vergleich aus:
All dies kann in einer Funktion formatiert und verwendet werden. Es ist mühsam zu schreiben, es scheint klar zu sein, wie man eine Funktion macht!
Ich denke, dieser Weg ist schneller als der Aufruf von NormalizeDouble().
Um sicher zu gehen, können Sie auch die Funktion MathRound() dazu bringen, eine ganze Zahl zurückzugeben, da sie standardmäßig double zurückgibt.
Am einfachsten geht es auf diese Weise
Dann werden nur ganze Zahlen verglichen, und die sind gut vergleichbar!
Ich denke, dieser Weg ist am besten geeignet, oder?
Der schnellste und zuverlässigste Weg ist, die reellen Zahlen in ganze Zahlen umzuwandeln
Der Vergleich würde folgendermaßen aussehen:
Ich denke, das ist der richtige Weg, oder nicht?
Die ganze Schönheit des Irtron-Codes liegt in seiner Kompaktheit (absolut nichts extra - sogar Variablen werden gespeichert!).
Und Sie schlagen vor, dass wir mindestens zwei weitere Operationen für jede Operation hinzufügen sollten.
Das ist ein Geschwindigkeitsvorteil!
Das glaube ich nicht. Urteilen Sie selbst