Was RefreshRates() aktualisiert - Seite 10

 
Der Cache wird nur dann auf dem neuesten Stand gehalten, wenn die Daten benötigt werden (von einem EA angefordert oder ein Chart geöffnet ist)
 
Aleksey Mavrin:

Was ist Kizyak? Ein burjatisches Volksgericht?)

Warum einen Cache von zwei Minuten erfinden. Es ist ganz einfach: Wenn Sie alle 5 Minuten auf die tf zugreifen müssen, reichen zwei Minuten aus. Wenn jede Minute, dann 20-30 Sekunden, usw.

Nein. Wenn jede Minute, dann brauchen Sie keinen zusätzlichen Verweis auf die Zeitreihe - sie ist so schon aktuell.

 
Roman:

Haben Sie sich schon einmal gefragt, warum der Zugriff auf Daten in einer bestimmten Häufigkeit erfolgen muss?

Renat erwähnte oft, dass die Daten zwischengespeichert werden, bevor sie dem Nutzer zur Verfügung gestellt werden.
Das heißt, so wie ich es verstehe, wenn wir eine Funktion für Daten aufrufen, fordern wir die gespeicherten Daten aus dem Cache an, nicht vom Server.

Roman, im Thema geht es immer wieder um Zeitreihen, sind die nicht der Cache? Sie können sie auf dem Chart einzeichnen und dem Expert Advisor auf Anfrage zur Verfügung stellen. Verschiedene Wörter bedeuten dasselbe.

 
Artyom Trishkin:

Nein. Wenn es sich um jede Minute handelt, ist es nicht nötig, zusätzlich auf die Stundenzettel zu verweisen - sie sind ohnehin auf dem neuesten Stand.

Ja, Sie haben Recht, das war übertrieben. Ich habe es nicht ausprobiert, aber ich denke, selbst wenn die Zeitreihe (die nicht geöffnet ist) alle 3-5 Minuten aufgerufen wird, ist sie immer noch auf dem neuesten Stand.

 
Aleksey Mavrin:

Ja, Sie haben Recht, das war übertrieben. Ich habe es nicht ausprobiert, aber ich denke, selbst wenn alle 3-5 Minuten auf eine (nicht geöffnete) Minute zugegriffen wird, wird sie immer noch aktualisiert.

Mindestens einmal alle zwei Minuten. Einmal alle 3-5 Minuten ist weniger häufig. Normalerweise stelle ich die Zeitreihe so ein, dass sie nach 90 Sekunden aufgerufen wird. Sie können jede Funktion verwenden, die den Synchronisierungsprozess aufruft. Aber wir sollten uns immer daran erinnern - in Indikatoren sollten wir keine Synchronisation von der Zeitreihe anfordern, die mit dem aktuellen Chart-Symbol und seiner Periode übereinstimmt - es kann zu einem Clincher führen. Das steht in der Hilfe. Das bedeutet, dass nur "nicht einheimische" Symbole/Perioden in den Indikatoren auf dem neuesten Stand gehalten werden sollten, indem sie über die Funktionen angesprochen werden, die den Synchronisierungsprozess aufrufen. iTime() zum Beispiel.

 
Artyom Trishkin:

Aber Sie sollten immer daran denken, dass Sie in Indikatoren keine Synchronisation von der Zeitreihe anfordern können, die mit dem aktuellen Chart-Symbol und seiner Periode übereinstimmt - das kann zu einem Keil führen. Das steht in der Hilfe.

Was genau meinen Sie mit Synchronisierung? In MQL4 ist die Synchronisierung nur durch den Zugriff auf i-Funktionen möglich. Ausgehend von dem, was Sie gesagt haben, stellt sich heraus, dass es nicht verwendet werden kann:

iTime(NULL, PERIOD_CURRENT, 1)

Aber ein solcher Verweis wird immer wieder verwendet.

 
Ihor Herasko:

Was verstehen Sie unter Synchronisierung? In MQL4 ist die Synchronisierung nur durch den Zugriff auf i-Funktionen möglich. Ausgehend von dem, was Sie gesagt haben, stellt sich heraus, dass es nicht verwendet werden kann:

Aber diese Art der Behandlung wird immer wieder angewandt.

Ich spreche über mql5 und nur über Indikatoren. In den Indikatoren von mql5 gibt es für das aktuelle Symbol/die aktuelle Periode des Charts vorgefertigte Daten in OnCalculate() - Sie wissen es. Für die anderen Symbole/Zeiträume - Empfang von Daten durch Funktionen. Und es funktioniert plattformübergreifend. Ich weiß nicht, wie es mit dem Clearing in mql4 aussieht - wahrscheinlich habe ich das Quadrupel nicht geöffnet. Aber identische Konstrukte funktionieren in mql5 und mql4 auf dieselbe Weise. Daher kann man Empfehlungen für mql5 und für quadruple ohne "Konsequenzen" verwenden.

 
Artyom Trishkin:

Ich spreche von mql5

Ein Thema im MQL4-Forum

 
Ihor Herasko:

Thema im MQL4-Forum

Artyom Trishkin:

Ich spreche über mql5 und nur über Indikatoren. Für Indikatoren in mql5 gibt es für das aktuelle Symbol/die aktuelle Periode eines Charts die fertigen Daten in OnCalculate() - Sie wissen es selbst. Für die anderen Symbole/Zeiträume - Empfang von Daten durch Funktionen. Und es funktioniert plattformübergreifend. Ich weiß nicht, wie es mit dem Clearing in mql4 aussieht - wahrscheinlich habe ich das Quadrupel nicht geöffnet. Aber identische Konstrukte funktionieren in mql5 und mql4 auf dieselbe Weise. Daher kann man Empfehlungen für mql5 und für quadruple ohne "Konsequenzen" verwenden.

 
Alexey Viktorov:

Das Prinzip der Datensynchronisation in MQL4 (wo es überhaupt keine offizielle Synchronisation gibt) und MQL5 ist unterschiedlich. Was sind die gleichen Konstrukte, über die wir hier sprechen?