![MQL5 - Sprache von Handelsstrategien, eingebaut ins Kundenterminal MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
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
Viel Rechenarbeit anstelle der einfachen Lösung
Ich bin zu dieser Lösung gekommen, die Doubles in Ints umwandelt, um Doubles zu vergleichen. . .
Auch ich habe eine kreative Lösung gefunden, die mir (bisher) beim Vergleich von Preisen geholfen hat:
Ich skaliere den Preis zu einem int, der den Preis in Punkten als ganze Zahl ausdrückt:
kann niemals wahr sein.
IstCompareDoubles() aus stdlib.mq4 für diese Diskussion disqualifiziert? Für mich funktioniert es gut, wenn es für den Preis verwendet wird.
Eine Gleitkommadivision, eine Gleitkommaddition, eine Konvertierung nach int, ein Funktionsaufruf (copy, jump, return = 3,) * 2, alles mal zwei. (18) Und das unter der Annahme, dass Dividieren und Konvertieren mit den anderen Operationen gleichwertig sind - das sind sie nicht.
gegen
eine Subtraktion, ein Test, 1/2 Negieren (im Durchschnitt) und Vergleich. (3 1/2, wenn point/2 in init durchgeführt wird und ABS durch ein IF ersetzt wird)
Die Dinge nicht zu sehr verkomplizieren
if (a > b)
if (a >= b)
if (a != b)
Eine fließende Division, fließende Addition, Umwandlung in int, Funktionsaufruf (copy, jump, return = 3,) * 2 mal zwei. (18) Und das unter der Annahme, dass Dividieren und Konvertieren mit den anderen Operationen gleichwertig sind - das sind sie nicht.
gegen
eine Subtraktion, ein Test, 1/2 Negieren (im Durchschnitt) und Vergleich. (3 1/2, wenn point/2 in init durchgeführt wird und ABS durch ein IF ersetzt wird)
Die Dinge nicht zu sehr verkomplizieren
2013.04.03 17:39:11 TestSpeed-CompareDbls USDJPY,M5: ConvertToPoints 9000000 mal in 1887 ms.
2013.04.03 17:46:02 TestSpeed-CompareDbls USDJPY,M5: Flat(price) 9000000 mal in 3604 ms.
"MathAbs(a-b)"-Methode ist ca. 7 mal schneller als ConvertToPoints() und fast 14 mal schneller als meine "Flat()"-Methode
2013.04.04 14:27:38 TestSpeed-CompareDbls EURUSD,H4: MathAbs(a - b) HalfAPoint 99999999 mal in 3403 ms.
2013.04.04 14:27:42 TestSpeed-CompareDbls EURUSD,H4: (intRecord > intCheck) 99999999 mal in 2505 ms.
Aber die 3. kann nicht praktikabel sein, und die 2. (intRecord > intCheck) hatte 1 Zuordnung mehr innerhalb für die intCheck vor dem Vergleich.
Ich habe getestet (intRecord > Preis/Punkt) und
2013.04.04 14:27:38 TestSpeed-CompareDbls EURUSD,H4: MathAbs(a - b) HalfAPoint 99999999 mal in 3403 ms.
2013.04.04 14:27:42 TestSpeed-CompareDbls EURUSD,H4: (intRecord > intCheck) 99999999 mal in 2505 ms.
Aber die 3. kann nicht praktikabel sein, und die 2. (intRecord > intCheck) hatte 1 Zuordnung mehr innerhalb für die intCheck vor dem Vergleich.