Fragen von Neueinsteigern zu MQL4 und MQL5, Hilfe und Diskussion über Algorithmen und Codes - Seite 1294
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
Guten Tag an alle!
Ich versuche, von mql4 auf mql5 zu wechseln.
Frage: Warum berechnet und zeigt mql5 einen mir unbekannten Ausdruck an, wie z.B. 2.99999999 - (minus) 05 anstatt der Differenz zwischen dem aktuellen Preis und dem Wert der Hay-Variable, die <1 sein sollte (wie in mql4)?
Wie kann ich mql5 dazu bringen, die Differenz zwischen diesen Werten korrekt zu berechnen? Ich normalisiere alle Werte mit NormalizeDouble(), aber die oben genannten Werte
Werte werden unverändert angezeigt. Dies ist für mich seltsam, da beide Werte vom doppelten Typ sind
Ich danke Ihnen allen für Ihre Hilfe.
2,9999999999 -(minus)05= 2,99999999 / 100000 = 0,000029999999999. So wird es in der Mathematik gemacht.
-(minus)05 ist die Division durch 10 hoch fünf.
Hallo noch mal.
Bitte achten Sie auf die Frage eines Neulings.
Ich muss auf Fehler im Code hinweisen, denn im Tester öffnet der EA keine Aufträge...
Der Compiler zeigt keine Fehler oder Warnungen an, und auch im Journal gibt es keine Fehler...
Es lässt sich nicht öffnen, weil eine der Bedingungen nicht erfüllt ist.
Sie lautet
.
while(MA_Smoth_B > MA_Smoth_S)
oder dies
if(MA_Simpl_B_Op < MA_Simpl_S_Op && MA_Simpl_B_Cl > MA_Simpl_S_Cl)
Kommentieren Sie die beiden Blitze aus // und Sie werden sehen, welcher es ist. So werden Sie den Fehler finden.
2,9999999999 -(minus)05= 2,99999999 / 100000 = 0,00002999999999999. So wird es in der Mathematik gemacht.
-(minus)05 ist die Division durch 10 hoch fünf.
Danke für die Antwort, aber warum berechnet das Programm nicht die Differenz zwischen dem Preis 1,33671 und Hay 1,33664 anstelle des Ausdrucks, der 0,00007 sein sollte, sondern gibt stattdessen den Ausdruck aus?
Wenn ich die Hay-Variable mit 1,33664 durch die Konstante 1,33664( SymbolInfoDouble(Symbol(),SYMBOL_BID) - 1,33664 ) ersetze, berechnet das Programm die tatsächliche Differenz zwischen diesen Werten, nämlich 0,00007. Die Hay-Variable im Code nimmt den Eröffnungskurswert der Order des vorherigen Ticks auf, also den doppelten Wert von 1,33664.
Ich danke Ihnen im Voraus für Ihre Hilfe.
Danke für die Antwort, aber warum berechnet das Programm nicht die Differenz zwischen dem Kurswert 1,33671 und Hay 1,33664 anstelle des Ausdrucks, der 0,00007 sein sollte, sondern gibt stattdessen den Ausdruck aus?
Vielen Dank im Voraus für den Tipp.
DoubleToString(). Hier geht es nicht um MQL5, sondern um die falsche Ausgabe von realen Werten im Protokoll. Dies gilt auch für MQL4.
DoubleToString(). Und es geht nicht um MQL5, sondern um Ihre fehlerhafte Ausgabe von realen Werten im Protokoll. Dies gilt auch für MQL4.
Ich hab's. Ich danke Ihnen. Solche Probleme habe ich noch nie gehabt. Jetzt werde ich es wissen.
Ich bin mir nicht ganz sicher, was das Präzisionsformat im Zusammenhang mit meinem Code bedeutet. Es scheint mir die Anzahl der Dezimalstellen zu sein.
Aber in MT4, in genau dem gleichen Code (mit Ausnahme von OrderSend), wenn ich mich richtig erinnere, gibt die Print-Funktion immer den realen Wert der Differenz zwischen zwei Kurswerten aus, nämlich die Zahl kleiner als 1 (0,00000) mit 5 Dezimalstellen nach 0.
Ich hab's. Ich danke Ihnen. Das ist mir noch nie begegnet. Jetzt werde ich es wissen.
Ich bin mir noch nicht ganz sicher, was das Genauigkeitsformat in Bezug auf meinen Code bedeutet. Es scheint mir die Anzahl der Dezimalstellen zu sein.
Aber in MT4, in genau dem gleichen Code (mit Ausnahme von OrderSend), wenn ich mich richtig erinnere, gibt die Print-Funktion immer den realen Wert der Differenz zwischen zwei Kurswerten aus, nämlich die Zahl kleiner als 1 (0,00000) mit 5 Dezimalstellen nach 0.
Die tatsächlichen Datenwerte werden überall ausgedruckt. Es handelt sich lediglich um ein anderes Format für die Darstellung reeller Zahlen. Wenn das Terminal kein Ausgabeformat angibt, entscheidet es selbst, welches Format am besten geeignet ist. Dies setzt natürlich voraus, dass Sie alle Formate der Zahlendarstellung kennen.
Es ist alles in der Hilfe.
Echte Datenwerte werden überall angezeigt. Es handelt sich lediglich um ein anderes Format für die Darstellung reeller Zahlen. Wenn das Terminal kein Ausgabeformat angibt, entscheidet es, welches Format am besten geeignet ist. Dies setzt natürlich voraus, dass Sie alle Zahlenformate kennen.
Alles steht in der Hilfe.
MT4 und MT5 haben also unterschiedliche Formate für die Darstellung von reellen Zahlen?
Was sollte ich in der mql5-Hilfe lesen, um diese Frage zu klären?
Vielen Dank für die Hilfe.
Hallo, liebe Experten. Ich brauche Ihre Hilfe, um den Indikator zu korrigieren. Das Wesen des Indikators ist wie folgt. Berechnen Sie das Ausmaß des Preisanstiegs im Vergleich zum vorherigen Balken. Für Null nimmt einen Stern bar. Das heißt, der Eröffnungskurs ist gleich dem Schlusskurs. Beim Kompilieren keine Fehler, aber beim Testen ein Fehler in der Zeile 80 20 Zeichen. Auch die Signalleitung ist falsch gezeichnet. Aber ich denke, das ist der Grund für die falsche Berechnung des Hauptpuffers. Bitte helfen Sie mir, das Problem zu beheben.
Ja. Es sieht so aus, als ob nur einige wenige hier Hilfe bekommen.
Ja. Es sieht so aus, als ob nur einige wenige hier Hilfe bekommen.
Versuchen Sie dies.
Versuchen Sie dies.
Vielen Dank, Vitaly. Aber immer noch erhalte ich einen Fehler in Zeile ExtTempBuffer[i] = NormalizeDouble((close[i]-open[i])/Point(),2); auf Element [i}.