Fragen von Anfängern MQL5 MT5 MetaTrader 5 - Seite 990
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
Frage: Warum ein Handel, der auf eine Periode eingestellt ist, keine Werte anCopyBuffer in anderen Zeitrahmen weitergibt.Und was ist zu tun?
Wenn das Problem in der Verschiebung der Array-Puffer-Element in verschiedenen Zeitrahmen war ich das Problem lösen würde. Es ist also überhaupt nicht klar.
Frage: Warum ein Handel, der auf eine Periode eingestellt ist, keine Werte anCopyBuffer in anderen Zeitrahmen weitergibt.Und was ist zu tun?
Wenn das Problem in der Verschiebung der Array-Puffer-Element in verschiedenen Zeitrahmen war, würde ich das Problem lösen. Es ist also überhaupt nicht klar.
Wenn das Handle erfolgreich erstellt wurde, wird es mit den Parametern erstellt, die Sie ihm bei der Erstellung übergeben haben. Außerdem werden die Indikatordaten in jedem beliebigen Zeitrahmen angezeigt. Es werden jedoch die Daten des Zeitraums angezeigt, den Sie bei der Erstellung angegeben haben. Und um sie korrekt auf dem Arbeits-Zeitrahmen anzuzeigen, müssen Sie die empfangenen Daten vom Indikator-Handle in den Zeitrahmen konvertieren, in dem Ihr Indikator arbeitet.
Ich habe mir das gerade angeschaut. Das PROBLEM ist jedoch, dass durch die Festlegung des Handbuchs auf einen ständigen Zeitraum, in
Der CopyBuffer-Wert in anderen Zeiträumen ist NICHT ÜBERTRAGBAR. Der Wert lag bei der eingestellten Zeitspanne und 0,0 (Null) bei den kleineren Zeitspannen. Ich habe ihn im Puffer herumgeschoben, um ihn zu suchen... Null. Warum wird er nicht anCopyBuffer übergeben?
Ich habe es kopiert...
Eine andere Frage ist, was kopiert wird :) Höchstwahrscheinlich fordern Sie mehr Takte zum Kopieren an, als auf der TF vorhanden sind, drucken
Wenn das Handle erfolgreich erstellt wurde, wurde es mit den Parametern erstellt, die Sie ihm bei der Erstellung übergeben haben. Außerdem werden die Indikatordaten in jedem beliebigen Zeitrahmen angezeigt. Es werden jedoch die Daten des Zeitraums angezeigt, der bei der Erstellung festgelegt wurde. Und um sie korrekt auf dem Arbeitszeitrahmen anzuzeigen, müssen Sie die vom Indikator-Handle erhaltenen Daten in den Zeitrahmen konvertieren, in dem Ihr Indikator arbeitet.
Habe ich das Experiment richtig durchgeführt?
Ich habe dir eine Richtung gegeben...
Studieren Sie es:
Ich habe es kopiert...
Eine andere Frage ist, was ist Kopieren :) Höchstwahrscheinlich wollen Sie mehr Takte kopieren, als auf der TF vorhanden sind, drucken
kopeyka2:
Верно ли я провел эксперемент.?
...
... Auch beim Wechsel zu einem anderen Zeitrahmen sollten die Werte aus dem eingestellten D1 übernommen werden. Das ist genau das, was ich nicht sehe. Oder ist etwas nicht in Ordnung? Gibt es noch etwas, das ich bei der Einstellung eines Griffs hinzufügen sollte? Da es keine Pufferübertragung gibt.
Einfach gesagt, experimentieren Sie mit CopyByffer , was in ihm stecken sollte. Aber sie ist nicht da.
Sie haben die Verfügbarkeit der Daten nicht überprüft, versuchen aber, sie zu kopieren. Sehen Sie sich den obigen Code an - dort wird im Sekundentakt alle anderthalb Minuten auf den nicht-nativen Zeitrahmen zugegriffen, um die Daten auf dem neuesten Stand zu halten. Als erstes wird im Code geprüft, ob die angeforderten Daten verfügbar sind. Wenn sie nicht bereit sind, wird für den nächsten Tick und die vollständige Berechnung des Indikators der Wert Null zurückgegeben. Und wenn alle Daten empfangen, berechnet und angezeigt wurden, wird am Ende die Menge der berechneten Daten zurückgegeben, um nicht beim nächsten Tick eine vollständige Neuberechnung vorzunehmen.
Ich danke Ihnen. Ich habe sie alle gelesen. Ich werde weiter suchen.
Wonach suchen Sie? Der obige Code ist voll funktionsfähig. Sie können es zerlegen, wie Sie wollen. Ich habe Sie auf Ihren Fehler hingewiesen - Sie prüfen nicht die Verfügbarkeit der Daten.
Auch auf dieser Linie hier:
int lm=IBarShift(NULL,PERIOD_D1, iTime(NULL, PERIOD_CURRENT, limit));
Wo ist die Überprüfung, was iTime() zurückgegeben hat? Es gibt keine Kontrolle. Aber Sie schieben ein unbekanntes Ergebnis direkt in iBarShift(). Sind Sie sicher, dass Sie der Funktion das geben, was Sie erwarten?
Wenn das Handle erfolgreich erstellt wurde, wurde es mit den Parametern erstellt, die ihm bei seiner Erstellung übergeben wurden. Und er wird die Indikatordaten in jedem Zeitrahmen weitergeben. Es werden jedoch die Daten des Zeitraums angezeigt, der bei der Erstellung festgelegt wurde. Und um sie korrekt auf dem Arbeits-Zeitrahmen anzuzeigen, müssen Sie die empfangenen Daten vom Indikator-Handle in den Zeitrahmen konvertieren, in dem Ihr Indikator arbeitet.
Das ist genau das, was ich dachte. Das Problem des Missverständnisses ist das Wort "Parameter". Also habe ich begonnen, ALLE Variablen zu betrachten, die an dem Handle --> CopyBuffer beteiligt sind
1) Meine Frage von Anfang an war, den Zeitrahmen SCREEN zu wechseln, um die Griffdaten zu speichern. Wie in MT4.
Und tatsächlich sieht es so aus:
IMMER und für ALLE Zeitrahmen ergibt sich der gleiche Wert von 10
Da ich hier nichts fand, ging ich weiter.
2) Und ich zitiere:"Holt die Daten des angegebenen Puffers des angegebenen Indikators in der angegebenen Menge in das Puffer-Array".
Das heißt, wenn wirden Zähler von Hand einstellen, sollten wir ein INTERVALL mit den Werten haben . Und da sind sie! BUT!!!!!! Nur wenn die Griffperiode der
PERIOD_H1Zeitrahmen auf dem Bildschirm. Alle Werte werden deutlich übertragen. Wechselt man jedoch zu einem anderen Zeitrahmen, werden KEINE Daten auf dem Bildschirm angezeigt.
Sie werden NICHT in irgendeiner Weise übertragen!!!! Und genau das war meine Frage. Und die Anzahl der Balken ist hier nicht so wichtig, wenn sie NICHT dort sind!!!!
Ich habe mir den vorgeschlagenen IndikatorMTF_LRMA.mq5 angesehen , aber er hat das gleiche Problem. Es wird zu einem anderen Zeitrahmen auf dem Bildschirm gewechselt, und die Daten gehen durch den Bildschirmzeitrahmen. Ich brauche es auf einem Handheld.
Zum Beispiel: iClose(NULL, PERIOD_H1, 5); auf allen Timeframes ergibt das den gleichen Wert: close on 5 bars on H1.
Bisher waren alle Beispiele auf CopyBuffer Zählerkorrektur. Aber das Feld ist leer.