Servicedesk. Beschwerden, Vorschläge. - Seite 6

 
Ilya Malev:
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.
Nehmen wir an, es gibt einen Indikator1. Er ruft den Indikator2 auf. Bei Indikator 2 fehlen die Daten zu einigen Symbolen/TF. Er 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.
 
Alexey Kozitsyn:

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?

Das tue ich. Zeit[Takt-1].
 
Alexey Kozitsyn:

... Übertragbarkeit der Programme von MT4 auf MT5 und zurück.

Von 4 bis 5 - verständlich. Umgekehrt nicht so sehr.

 
Alexey Kozitsyn:
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.

 
Vasyl Nosal:
Ich warte schon sehr lange auf ein Schiedsverfahren. Dritte Woche (sie baten mich, die 2. Woche abzuwarten, okay).
Oh allmächtige Moderatoren, bitte wendet eure Augen auf das Problem:)
 
Алексей Тарабанов:
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.

Haben Sie etwas Substanzielles zu sagen?
 

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.

 
Alexey Kozitsyn:

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

Ich habe gerade gesehen, Ihr Problem in MT5-Indikator, ohne einen Zyklus OnTimer, ich überprüfen Zeitreihen auf ein anderes Symbol/Periode (nicht aktuelle) - Funktion sagt, dass es gebaut wird und gibt richtige Anzahl von Bars. Unmittelbar danach rufe ich eine weitere Funktion auf, um den Indikator zu erstellen - in dieser Funktion, die aus demselben Aufruf von OnTimer aufgerufen wird, gelingt es, die Zeitreihe zu entladen, und der SeriesInfoInteger gibt Nullen zurück. Ich musste eine zusätzliche zyklische Prüfung einbauen, damit sich alles ohne eingehende Ticks aufbaut.
 
Vasyl Nosal:
Oh, allmächtige Moderatoren, bitte sehen Sie sich das Problem an:)
Bald ist Woche 4 der Schlichtung...Fortsetzung folgt:)))))
Grund der Beschwerde: