![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
Danke Nicholi für diesen schlankeren Code. Nach einigen Experimenten stellte ich fest, dass die Deklaration von ask_diff als float zwar Differenzen mit der korrekten Anzahl von Ziffern erzeugte, aber einen Kompilierfehler über möglichen Datenverlust durch die Typkonvertierung. Es sieht so aus, als müsste ich mich entscheiden zwischen sehr kleinen Ungenauigkeiten in meinen Differenzen oder einer Kompilierwarnung. Letzteres wäre für Handelsentscheidungen besser, aber hat noch jemand eine Lösung, um höchstens fünf Dezimalstellen in ask_diff zu erhalten?
Ihr ask_diff sollte vom Typ int sein und stattdessen wie folgt aussehen.
Ich habe gerade NormalizeDouble und DoubleToString entdeckt. Hey, das ist mein erster Tag hier...
Wie so oft hat der Code das getan, was er tun sollte, und nicht das, was ich wollte. Die Logik erfordert, dass tick_prev immer ausgefüllt wird, aber beim ersten Tick ist das nicht der Fall. Ich bin an einer Logik interessiert, die nicht verlangt, dass tick_prev beim ersten Tick ausgefüllt wird, aber ansonsten funktioniert sie.
Wie so oft hat der Code das getan, was er tun sollte, und nicht das, was ich wollte. Die Logik erfordert, dass tick_prev immer ausgefüllt wird, aber beim ersten Tick ist das nicht der Fall. Ich bin an einer Logik interessiert, die nicht erfordert, dass tick_prev beim ersten Tick ausgefüllt wird, aber ansonsten funktioniert dies.
Das ist ein Niveau der Codierung, das ich zu erreichen strebe. Vielen Dank, Ernst!
Sie wollen die Punktedifferenz nicht als Double speichern, da Doubles selten gleich sind. Sie wollen sie als ganzzahligen Wert speichern. Zum Beispiel (1,00001 - 1,00000) / 0,00001 = 1 Punkt. Wenn Sie also nur zwei Ticks vergleichen, können Sie Ihren Code kompakter gestalten, indem Sie einfach die Unterklasse MqlTick bilden und ein int-Attribut für den Punktunterschied hinzufügen.