Fragen von Anfängern MQL5 MT5 MetaTrader 5 - Seite 195
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
Schauen Sie sich noch einmal den Indikatorcode aus der Hilfe https://www.mql5.com/ru/docs/indicators/ima an. Beachten Sie die Zeilen in OnInit():
Dadurch wird der Indikatorgriff für die Periode - "Periode" - erstellt.
Guten Tag.
Ich versuche, den letzten Wert eines Fraktals zu ermitteln:
Handle[Number]=iFractals(Symbol_,0);
CopyBuffer(Handle[Number],UPPER_LINE,4,100,Upper)
upenv[Zahl]=Upper[0];
aber manchmal erhalte ich eine seltsame Zahl upenv[Number]=1.797693134862316e+308
Wäre diese Zahl 0, würde das Problem folgendermaßen gelöst werden
if(upenv[Number]=Upper[0] && Upper[0]!=0)
upenv[Zahl]=Upper[0];
Wo liegt mein Fehler? Was mache ich falsch? Wie kann ich den letzten Wert des Fraktals ermitteln, bevor er sich ändert?
Schauen Sie sich noch einmal den Indikatorcode von https://www.mql5.com/ru/docs/indicators/ima an. Beachten Sie die Zeilen in OnInit():
Hier wird derIndikator-Handle für die Periodeerstellt- "Periode".
Ich habe Fehler in der Array-Größe gefunden, es war mein Hauptfehler aus dem ursprünglichen Code. Ich kann nicht verstehen, warum sich das Terminaldiagramm unangemessen verhält (verschwimmt, wird aktualisiert, verschiebt sich, usw.). Danke.
Sie haben bei jedem Tick ein Indikator-Handle erstellt (d. h. in der Funktion OnCalculate()). Dies ist nicht korrekt. Der Indikator-Handle sollte in OnInit() erstellt werden.
Alle gefundenen Fehler in Array-Größe, das war mein Hauptfehler im ursprünglichen Code. Aber warum verhält sich die Terminalkarte unzureichend (blinkt, aktualisiert, verschiebt sich usw.)? Danke.
Sie haben bei jedem Tick ein Indikator-Handle erstellt (d. h. in der Funktion OnCalculate()). Dies ist nicht korrekt. Der Indikator-Handle muss in OnInit() erstellt werden.
Und wenn ich MACD-Werte in einem Indikator benötige (M1;M5;M15;H1;H4;D1;W1), muss ich dann für jede Periode ein Handle erstellen?
Ja, machen Sie so viele Indikator-Handles wie nötig in OnInit.
Alle gefundenen Fehler in Array-Größe, das war mein Hauptfehler im ursprünglichen Code. Aber warum verhält sich die Terminalkarte unzureichend (blinkt, aktualisiert, verschiebt sich usw.)? Danke.
Sie haben bei jedem Tick ein Indikator-Handle erstellt (d. h. in der Funktion OnCalculate()). Dies ist nicht korrekt. Der Indikator-Handle muss in OnInit() erstellt werden.
Es ist wahrscheinlicher, dass das M15-Diagramm D1-Daten verwendet, oder ich liege falsch.
Sie erstellen ein Indikator-Handle bei jedem Tick (d.h. in OnCalculate()). Dies ist falsch. Der Indikator-Handle sollte in OnInit() erstellt werden. Für das M15-Diagramm können Sie die Daten von D1 verwenden. In diesem Fall können die Daten jedoch unvollständig sein - siehe "Organisation des Datenzugriffs" https://www.mql5.com/ru/docs/series/timeseries_access.