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
In einer Schleife wird es sowieso nicht funktionieren, da alle Indikatoren denselben Faden haben, egal ob mit oder ohne Timer. Oder ich verstehe Ihre Idee nicht.
Zum Herunterladen und Überprüfen der Historie, ähnlich wie bei MT5: https://www.mql5.com/ru/docs/series/timeseries_access
Ich wiederhole die Frage, ob Sie wissen, wie man dieses Datum mit Hilfe des alten mql4 erhält?
... Übertragbarkeit der Programme von MT4 auf MT5 und zurück.
Von 4 bis 5 - verständlich. Umgekehrt nicht so sehr.
Nehmen wir an, es gibt einen Indikator1. Er ruft den Indikator2 auf. Bei Indikator 2 fehlen einige Daten zu einigen Symbolen/TF. Es sendet diese Daten an das Anzeigegerät1 und hat die erforderlichen Daten in den Zeitgeber geladen. Nachdem wir die Bestätigung erhalten haben, dass alle erforderlichen Daten heruntergeladen wurden, versuchen wir erneut, Daten von Indikator2 herunterzuladen, und sobald alle erforderlichen Daten verfügbar sind, berechnen wir Indikator1.
Der Speicher wird 5 Mal zugewiesen. Unter dem Befehlsadressraum für dieselbe Sache.
Warum weinen Sie über die aggressive Speicherfreigabe von Datenadressraum? Zumindest die Ausmaße sind dort vorhanden.
Ich warte schon sehr lange auf ein Schiedsverfahren. Dritte Woche (sie baten mich, die 2. Woche abzuwarten, okay).
Ich weiß. Zeit[Takt-1].
Sie irren sich. Ich habe weiter unten bereits geschrieben, dass die von Ihnen angegebene Konstruktion das erste Datum nicht auf dem Server, sondern in der Tabelle anzeigt.
Forum zum Thema Handel, automatisierte Handelssysteme und Strategietests
Service Desk. Beschwerden, Vorschläge.
Alexey Kozitsyn, 2015.10.30 16:42
Mit iTime( _Symbol, Periode, Bars( _Symbol, Periode )-1 ) können wir den Zeitpunkt der ersten verfügbaren Kerze im Chart ermitteln.
Aber um die Zeit der ersten Kerze auf dem Server zu erhalten, habe ich noch nicht entschieden, welche Konstruktion ich verwenden soll.
Alles wird ganz einfach mit SeriesInfoInteger gemacht: SeriesInfoInteger( _Symbol, Periode,SERIES_SERVER_FIRSTDATE);
Der Speicher wird 5 Mal zugewiesen. Unter dem Befehlsadressraum für dieselbe Sache.
Warum weinen Sie über die aggressive Speicherfreigabe von Datenadressraum? Zumindest gibt es dort Ausmaße.
Im Allgemeinen gibt es höchstwahrscheinlich eine normale Lösung für das von mir erwähnte iCustom-Problem.
Wenn MT5 bereits das Handle des Indikators mit den für dieses Symbol/tf angegebenen Parametern geladen hat, dann wird, so wie ich es verstehe, beim Aufruf von einer anderen Stelle aus die Berechnung desselben Indikators nicht erneut durchgeführt, sondern das vorhandene Handle verwendet.
Und da die erste "Verschachtelungsebene" vor dem Aufruf von iCustom, dem Aufruf von OnTimer funktioniert, können wir eine sequentielle Berechnung aller Indikatoren abwarten, beginnend mit den grundlegendsten, dann diejenigen, die sie verwenden, und so weiter bis zu jeder Verschachtelungsebene, wobei ihre Handles nur erstellt werden, wenn alle Indikatoren und Zeitreihen, die bereits in ihnen verwendet wurden, berechnet wurden. Dann wird die Schaltfläche "Aktualisieren" wahrscheinlich überflüssig. Ich wünschte, ich hätte es vor einer Woche erraten...
P.S. Beachten Sie bei der Verwendung von OnTimer, dass die Indikatorpuffer erst dann im Chart und im Datenfenster angezeigt werden, wenn das vom Terminal aufgerufene OnCalculate einen Wert ungleich 0 zurückgibt. Und das Terminal ruft OnCalculate nur einmal auf, direkt nach Inite, wenn die Zeitreihen und Indikatoren noch nicht berechnet wurden. Wenn OnCalculate von Ontimer aufgerufen wird, wird der Indikator, egal welchen Wert er zurückgibt, nicht im Diagramm angezeigt, bis der nächste Tick kommt oder Sie auf "Refresh" drücken, wenn der erste Rückgabewert 0 ist.
Das zweite Problem ist von ähnlicher Art. Der Indikator steht auf TF MN1. Ich versuche, Daten über die Funktion SeriesInfoInteger() von der TF M5 zu empfangen. Die Funktion gibt einige Zeit lang korrekte Werte zurück, dann hört sie auf und gibt Nullen zurück
Oh, allmächtige Moderatoren, bitte sehen Sie sich das Problem an:)