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
Versuchen Sie, nach C zu übertragen - der Fehler wird sich selbst finden. Und überhaupt - bei solchen Projekten ist das die einzige Möglichkeit zu schreiben, wenn man in Zukunft keine Probleme haben will. Leider habe ich es selbst zu spät verstanden und schreibe es jetzt um :).
Wir haben einen Indikator, der auf TF M15 läuft, im Code fordert der Indikator die Zeitreihe MqlRates von TF M1 an.
Der Indikator startet nicht sofort, da die M1-Daten nicht bereit sind und beim ersten Durchlauf nicht geladen werden können.
Das Ergebnis ist ein falscher Durchlauf, und der Indikator greift nicht mehr auf die Daten zu, weil er denkt, dass sie bereits berechnet sind und nicht neu berechnet werden müssen.
Jetzt lasse ich den Indikator auf zwei Arten laufen:
Daher die Frage: Wie lässt sich die korrekte Prüfung und das Laden der erforderlichen Daten für eine andere TF automatisieren?
Daher die Frage: Wie kann man die Prüfung und das Laden der erforderlichen Daten aus der anderen TF automatisieren?
In einer ähnlichen Situation steuere ich den Initialisierungsprozess in OnCalculate. Wenn bei der Initialisierung ein Fehler auftritt, gebe ich prev_calculated=0 zurück und mache so lange weiter, bis alles korrekt berechnet ist.
Die Idee ist gut, obwohl prev_calculated nichts zugewiesen werden kann, die Variable ist als const deklariert, aber ich verstehe, Sie können eine andere ähnliche Variable haben.
Es bleibt noch eine Frage: Was soll ich tun, wenn es keine Daten gibt?
Ich verstehe, dass die Datenabfrage selbst nicht zum Herunter- oder Hochladen von der lokalen Datenbank führt, und genau das ist das Problem.
Die Idee ist gut, obwohl man prev_calculated nichts zuweisen kann, die Variable ist als const deklariert, aber ich habe Sie verstanden, Sie können eine andere ähnliche Variable haben.
Es geht nicht um die Zuweisung, sondern um die Zahl, die von OnCalculated zurückgegeben wird. Wenn Ihre Daten nicht bereit sind, gibt OnCalculated 0 zurück.
Sehen Sie sich die Beispiele von BarsCalculated an. So sollten Sie das überprüfen.
Eine Frage bleibt - was soll man tun, wenn keine Daten vorliegen?
Wenn Sie wollen, können Sie warten und die Puffer per Timer berechnen.
Wenn Ihre Daten nicht bereit sind, wird von OnCalculated 0 zurückgegeben.
Wenn Sie sie nicht haben und sie auch nicht erscheinen, dann gibt es nicht viel zu tun.Sehen Sie sich die Beispiele von BarsCalculated an.
Wenn Sie möchten, können Sie Warte- und Berechnungspuffer per Timer aufrufen.
Es hilft nicht, nur den Indikator zu entladen und neu zu starten, in diesem Fall sind die Daten aus irgendeinem Grund bereits vorhanden.
Oder öffnen Sie ein Diagramm mit der gewünschten M1 TF, dann sind die Daten auf dem angrenzenden M15-Diagramm auf M1-Anfrage sofort verfügbar.
Es hilft nicht, nur den Indikator zu entladen und neu zu starten, in diesem Fall sind die Daten aus irgendeinem Grund bereits vorhanden.
Oder öffnen Sie ein Diagramm mit der gewünschten TF, dann sind die Daten im nebenstehenden Diagramm sofort verfügbar.
Heute habe ich einen halben Tag mit Indizes verbracht. Es gab Mehrwährungs-/Mehrzeitgeschäfte.
Das Problem bei der Nichtanzeige ist, dass Sie versuchen, einen Wert aus einem Balken zu übernehmen, der in dieser TF einfach nicht existiert.
Sie müssen also prüfen, bevor Sie einen Balken nehmen - SeriesInfoInteger.Kein Entladen erforderlich. Sie werden den Berechnungsteil ohnehin nicht entladen (ich habe das Thema erst heute angesprochen).
Ich habe heute einen halben Tag lang mit den Indizes gearbeitet. Es gab Mehrwährungs-/Mehrzeitgeschäfte.
Das Problem mit der Nichtanzeige ist, dass versucht wird, den Wert von einem Balken zu nehmen, der in dieser TF einfach nicht existiert.
Sie müssen also prüfen, bevor Sie einen Balken nehmen - SeriesInfoInteger.Kein Entladen erforderlich. Sie können den Berechnungsteil sowieso nicht entladen (ich habe erst heute ein Thema dazu aufgeworfen).
Mimeo, ich habe einen Checker, ich finde das erste Datum auf TF M1 und die Berechnung der M15-Balken beginnt von diesem Datum. TF wird als PERIOD_M1 eingestellt
1. die Idee ist gut, obwohl nichts zu prev_calculated zugewiesen werden kann, die Variable ist als const deklariert, aber ich verstehe, Sie können eine andere ähnliche Variable haben.
2. Eine Frage bleibt, und wenn es keine Daten gibt, was sollen wir dann tun?
3. ich verstehe, dass die Datenanforderung selbst nicht dazu führt, dass die Daten aus der lokalen Datenbank herunter- oder hochgeladen werden, und genau das ist das Problem.
Ich verstehe, dass die Datenanforderung selbst nicht dazu führt, dass Daten von der lokalen Datenbank herunter- oder hochgeladen werden, und genau das ist das Problem.
Aus der CopyXXXX-Hilfe:
Wenn Daten von einem Expert Advisor oder einem Skript angefordert werden, wird das Herunterladen vom Server eingeleitet, wenn das Terminal nicht über diese Daten verfügt, oder es wird mit der Erstellung der erforderlichen Zeitreihen begonnen, wenn die Daten aus dem lokalen Verlauf erstellt werden können, aber noch nicht bereit sind. Die Funktion gibt die Datenmenge zurück, die bereitsteht, wenn die Zeitüberschreitung abläuft, aber die Geschichte wird weiterhin heruntergeladen und die nächste ähnliche Anfrage wird mehr Daten zurückgeben.