Fehler, Irrtümer, Fragen - Seite 1391
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
Nach dem Drücken von "Aktualisieren" wird alles berechnet. Es wäre bequemer, wenn die in der Inite erstellten Indikatordaten vor dem ersten Aufruf von OnCalculate/OnTimer usw. berechnet würden.
Es wäre nützlich, eine Möglichkeit zu haben, auf ihre Berechnung nach der Initialisierung in der Schleife innerhalb des Indikators zu warten.
Um den Indikator zu berechnen, muss der Benutzer mehrmals auf "Aktualisieren" im Diagramm drücken. Braucht er das? Er wird sich an den guten alten MT4 erinnern und bei ihm bleiben, trotz einiger Vorteile des MT5.
Alle Berechnungen in Indikatoren MÜSSEN nur in OnCalculate() durchgeführt werden.
Ich spreche in diesem Fall von den Messwerten des Ishimoku-Indikators. Ich spreche von Indikatorwerten, die im aktuellen Indikator verwendet werden, d. h. OnCalculate. Sie werden also vor dem Aufruf von OnCalculate berechnet, wie es in MT4 der Fall war.
Ich spreche in diesem Fall von den Messwerten des Ishimoku-Indikators. Ich spreche von Indikatorwerten, die in current, d.h. in OnCalculate verwendet werden. Sie werden also vor dem Aufruf von OnCalculate berechnet, wie es in MT4 der Fall war. Oder es wäre möglich, auf ihre Berechnung in OnCalculate zu warten. Andernfalls müssen die Benutzer mehrmals auf Aktualisieren drücken, um einen Indikator zu erstellen. Da nicht alle Indikatoren auf der gesamten Historie in einer Sekunde aufgebaut sind, gibt es komplexe Indikatoren, deren Berechnung länger dauert. Die ganze Zeit über muss der Benutzer auf die Schaltfläche "Aktualisieren" warten, während man in MT4 nur darauf warten muss, dass sie gezeichnet wird.
Dieses Problem taucht von Zeit zu Zeit im Forum auf. Leider löst der Aufruf von OnCalculate() in OnTimer() das Problem nicht.
Aber Sie können es versuchen. Ein Beispiel finden Sie in diesem Artikel: MQL5 Recipes - Development of a Multicurrency Volatility Indicator in MQL5.
Danach können Sie schreiben, ob es funktioniert hat oder nicht.
OnInit() bereitet die Handelsumgebung für den Indikator vor. Und nur in OnCalculate() können Sie die Indikatordaten verwenden.
Dieses Problem taucht von Zeit zu Zeit im Forum auf. Leider löst der Aufruf von OnCalculate() in OnTimer() das Problem nicht.
Aber Sie können es versuchen. Ein Beispiel finden Sie in diesem Artikel: MQL5 Recipes - Development of a Multicurrency Volatility Indicator in MQL5.
Schreiben Sie anschließend, ob es funktioniert hat oder nicht, wenn es nicht zu viel Mühe macht.
Es stellt sich heraus, dass Sie nicht ohne Drücken der Schaltfläche "Aktualisieren" auf dem Diagramm einmal oder mehrmals (oder warten Sie für 1 / wenige Ticks), wenn der Indikator verwendet andere Indikatoren aus anderen Symbolen und / oder tf.
Und wenn Sie sich die Funktionsweise des von mir angegebenen Codes genauer ansehen? Und vor allem für die Experten? Nach der Wiederinbetriebnahme des Terminals am Wochenende:
Es ist deutlich erkennbar, dass die Berechnung erst beim zweiten Aufruf von OnCaalculate() durchgeführt wurde. Niemand entbindet also den Programmierer von der Verantwortung für Überprüfungen: Überprüfen Sie das Ergebnis von CopyBuffer() in OnCalCulate() - wenn die Funktion nichts zurückgegeben hat, muss es bei der nächsten Eingabe in OnCalculate() überprüft werden.
Dieses Problem taucht von Zeit zu Zeit im Forum auf. Leider löst der Aufruf von OnCalculate() in OnTimer() das Problem nicht.
Aber Sie können es versuchen. Ein Beispiel finden Sie in diesem Artikel: MQL5 Recipes - Development of a Multicurrency Volatility Indicator in MQL5.
Bitte schreiben Sie später, wenn es nicht zu viel Mühe macht, ob es funktioniert hat oder nicht.
Ich habe den Artikel noch nicht gelesen, aber es funktioniert gut mit OnTimer
Ich habe ein seltsames Bild, das zeigt, dass der Aufruf von OnCalculate von OnTimer funktioniert) Ich muss die richtigen Werte in Zeitreihen hinzufügen
Ich habe den Artikel noch nicht gelesen, aber der Empfang mit OnTimer funktioniert gut
Ich habe den Artikel noch nicht gelesen, aber der Empfang mit OnTimer funktioniert gut
Verwenden Sie den Styler - er ist besser geeignet, Fehler zu erkennen.
Erhöhen Sie die Zählvariable vor dem Beenden von OnCalculate() - in diesem Fall wird diese Variable alle Läufe in OnCalculate korrekt zählen.