Fragen von Anfängern MQL5 MT5 MetaTrader 5 - Seite 530
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
Bitte um Hilfe! (MQL4)
Ich muss die Eröffnungszeit des Tages auf dem M15-Diagramm unter Berücksichtigung jedes Balkens für den Indikator ermitteln.
Ich beschloss, in Sekunden zu berechnen, unter Berücksichtigung der aktuellen Bar (0), aber ich muss falsch sein.
D_Shift=(Open_time-pos*15*60-(Open_time-Open_timeTF))/1440*60;
Wenn für den Indikator, dann:
Aber: dieser Code wird jedes Mal ausgeführt, wenn OnCalculate() aufgerufen wird - je nach Bedarf können Sie ein bool-Flag hinzufügen oder den Code in einer separaten Funktion unterbringen.
Wenn für Indikator, dann:
Aber: dieser Code wird jedes Mal bei OnCalculate() ausgeführt - je nach Bedarf, oder fügen Sie ein bool-Flag hinzu oder platzieren Sie den Code in einer separaten Funktion.
Vielen Dank, aber bei jedem Tick zu tun Neuberechnung ist nicht gut - ich brauche, um Ihren Code zu analysieren, aber während ich will verstehen, warum mein Code nicht funktioniert, im Protokoll zurückgegeben werden seltsame Zahlen
Es stellt sich heraus, dass zwischen dem ersten Balken des Tages und dem aktuellen Balken ein Unterschied von 479 Balken besteht - woran liegt das?
Danke, aber die Neuberechnung bei jedem Tick ist nicht gut - ich muss über Ihren Code nachdenken, aber während ich verstehen möchte, warum mein Code nicht funktioniert, gibt das Protokoll seltsame Zahlen zurück
Es stellt sich heraus, dass zwischen dem ersten Balken des Tages und dem aktuellen Balken ein Unterschied von 479 Balken besteht - woran liegt das?
Ich habe darauf hingewiesen, dass ich kein Hellseher bin, und das ist der Grund:
Aber: dieser Code wird jedes Mal ausgeführt, wenn OnCalculate() aufgerufen wird- fügen Sie hier je nach Bedarf entweder einbool-Flag hinzuoder fügen Sie den Code in eine separate Funktion ein.
Ich habe darauf hingewiesen, dass ich kein Hellseher bin, und das ist der Grund:
Karputov Vladimir, ich verstehe Ihren Code nicht - ich bin ein Anfänger in diesem Geschäft undhabe die FunktionOnCalculate noch nieverwendet, daher kann ich nicht verstehen, wasrates_totaldort berechnet wird und, was noch wichtiger ist, wohin es zurückgegeben werden sollte? Ich verstehe auch nicht, wie man das alles in eine separate Funktion verwandeln kann... ohne Kommentare ist das schwer zu verstehen.
Hier ist der vollständige Code des MQL4-Indikators:
Algorithmus seiner Arbeit: Wenn Sie den Indikator starten, stellen Sie das Zeitintervall für den Timer ein (z.B. 10 Sekunden) - das bedeutet, dass alle 10 Sekunden der Timer ausgelöst wird:
und der VariablenIsDefineTime wird der Wert true zugewiesen. Wozu dient es? Wenn IsDefineTime=true ist, können wir in OnCalculate() eine Schleife starten, um die Startzeit des Tages zu bestimmen:
In dieser Schleife beginnen wir mit dem Durchlaufen des time[] -Arrays (in diesem Array werden die Werte für die Eröffnungszeit gespeichert), beginnend mit dem Balken ganz rechts (sein Index ist "0"). Wenn der Tagesanfang gefunden ist, heben wir seinen Wert auf und weisen der VariablenIsDefineTime den Wertfalse zu - auf diese Weise schützen wir uns davor, weiter in den Zyklus der Bestimmung der Anfangszeit des Tages einzutreten, bis der Timer erneut läuft.
Karputov Vladimir , danke für die Klarstellung, aber wie wird das Problem dadurch gelöst?
Grob gesagt müssen wir den Balken des aktuellen Zeitrahmens kennen, der dem Balken zu Beginn des Tages entspricht. Wir müssen jeden einzelnen Balken kennen und den Indikator entsprechend berechnen und zeichnen.
Karputov Vladimir , danke für die Klarstellung, aber wie wird das Problem dadurch gelöst?
Grob gesagt müssen wir den Balken des aktuellen Zeitrahmens kennen, der dem Balken zu Beginn des Tages entspricht. Sie müssen ihn für jeden Balken kennen und den Indikator entsprechend berechnen und zeichnen.
So haben Sie gefragt und so wurde Ihnen geantwortet :) . Und wenn Sie nicht die Zeit des ersten Balkens dieses Tages, sondern den Index dieses Balkens haben wollen, finden Sie ihn hier, wenn Sie den Tagesanfang drucken:
Sie verwenden den Index [i-1] - dies ist die Nummer des ersten Balkens des Tages.
Wie du gefragt hast, hast du deine Antwort bekommen :) . Und wenn Sie nicht die Zeit des ersten Balkens des Tages, sondern den Index dieses Balkens benötigen, finden Sie ihn hier, wenn Sie den Tagesanfang drucken:
Sie verwenden den Index [i-1] - dies ist die Nummer des ersten Balkens des Tages.
Ich stimme zu - ich habe verwirrend gefragt.
Es gibt einen Indikator in der App, den ich erstellt habe, aber er zählt nicht richtig. Ich bin furchtbar dumm und verstehe auch nach Ihren Erklärungen nicht, wie man es schafft, den Index für den ersten Balken zu Beginn des Tages korrekt zu bestimmen.
Ich entschuldige mich für die Anmaßung, aber vielleicht können Sie mir zeigen, wie ich Ihren und meinen Code kombinieren kann?
-Aleks-:
Wie kann ich erreichen, dass der Index für den ersten Balken zu Beginn des Tages korrekt erkannt wird?
Es ist ein ziemliches Durcheinander: