Services, neue Funktionen in der MT5-Architektur, die Beerdigung von MT4 steht vor der Tür. - Seite 6

 
Petros Shatakhtsyan:


Ja, aber man muss auch bedenken, dass es nur einen Timer gibt, nicht so, so VC++, und wenn man viele Timing-Checks hat, kann es sein, dass man eine Menge Ticks verliert und alles zu Brei wird.

Das ist kein Problem. Nur in einem Timer führen Sie bei jedem Start des Timers eine Prüfung durch und die anderen X Sekunden nach der letzten relevanten Prüfung.
 
Alexey Kozitsyn:
Das ist kein Problem. Es ist nur so, dass man in einem Timer bei jedem Timerlauf eine Prüfung durchführt und die anderen X Sekunden nach der letzten relevanten Prüfung.


Das verstehe ich nicht. Wissen Sie, wie viel es kostet, eine Zeitschaltuhr zu betreiben? Ist es möglich, ihn mehr als 1 Mal auszuführen.

Ich sagte, dass jeder Tick wichtig ist, und Sie sprechen von Sekunden. Sie sollten alle parallel und unabhängig voneinander arbeiten.

 
Petros Shatakhtsyan:


Ich weiß es nicht. Wissen Sie, wie viel es kostet, die Zeitschaltuhr zu betreiben? Ist es möglich, ihn mehr als 1 Mal auszuführen.

Ich sagte, dass jeder Tick wichtig ist, und Sie sprechen von Sekunden.

Der Betrieb der Zeitschaltuhr kostet genau so viel, wie für die Aufgabe benötigt wird, wenn sie nicht anders erledigt werden kann. Es muss nicht viele Male durchgeführt werden, es reicht, wenn Sie eine Prüfung 3 Mal von 3 Durchläufen und eine weitere 1 Mal von 3 Durchläufen durchführen. Ich hoffe, die Idee ist jetzt klar.

 
Petros Shatakhtsyan:


Es wäre ineffizient, wenn EA jeden Tick behandelt, selbst wenn Millisekunden im Timer verwendet werden.

Ich brauche einen einfacheren Weg, um alle Ticks direkt aus der Marktübersicht zu erhalten.

Ein durchgehender OpTisk ist nicht möglich, da er nur dann funktioniert, wenn der nächste Tick dort kommt, wo der EA steht.


Die Variante ist, ihn auf dem volatilsten Symbol laufen zu lassen. Natürlich wird es einen Verlust geben... aber es wird einen Verlust in der Geschwindigkeit der Logikausführung für den gesamten EA geben
 
Maxim Dmitrievsky:

Nun, als eine Option auf die meisten volatilen Symbol laufen. natürlich wird es einige Verlust... aber es wird auch ein Verlust in der Geschwindigkeit der Ausführung aller EA-Logik sein


Deshalb habe ich Ihnen geraten, ein weiteres OnTick zu erstellen, das Ticks von allen Symbolen empfängt, die derzeit in der Marktübersicht verfügbar sind. Eine einfache und schnelle Variante.

Und nicht nur das. Sie sollten auch eine Funktion haben, die die tatsächliche Hebelwirkung eines jeden Symbols zurückgibt.

 
Petros Shatakhtsyan:


Und so sagte, um eine andere OnTick, die die Ticks von allen Symbolen, die derzeit in der Marktübersicht bekam zu machen. Eine einfache und schnelle Möglichkeit.

Eigentlich überspringt OnTick() Ticks. Auch OnCalculate() überspringt Ticks. Außerdem können Zecken in Rudeln auftreten. Der Timer ist also nicht sehr teuer, erst recht nicht, wenn man viele Zeichen analysiert. Die Hauptsache ist, dass die Berechnung kosteneffizient ist.
 
Alexey Kozitsyn:
Eigentlich überspringt OnTick() Ticks. Auch OnCalculate() überspringt Ticks. Darüber hinaus können Zecken in Rudeln auftreten. Der Timer ist also nicht sehr teuer, erst recht nicht, wenn man viele Zeichen analysiert. Die Hauptsache ist, dass eine wirtschaftliche Kalkulation durchgeführt wird.

Sie können dies auch über einen Timer tun. Die gute Sache ist, dass wir EventSetMillisecondTimer haben, aber es ist schlecht, dass es auch OnTimer startet. Wir hätten OnMillisecondTimer hinzufügen sollen.
 
Petros Shatakhtsyan:

Nun, man kann es mit einer Zeitschaltuhr machen. Es ist gut, dass EventSetMillisecondTimer existiert, aber es ist schlecht, dass es auch OnTimer startet. Sie hätten OnMillisecondTimer hinzufügen sollen.

Was hindert Sie daran, es so zu machen?

void OnTimer()
{
if( condition1 )
   {...копируем тики...}
if( condition2 )
   {...иной расчет, который не нужно запускать так часто, как condition1...}
}
Und im Großen und Ganzen wäre es gut, wenn wir das Symbolfeld als OnBookEvent() Handler hinzufügen würden.
 
Alexey Kozitsyn:
Eigentlich überspringt OnTick() Ticks. Auch OnCalculate() überspringt Ticks. Darüber hinaus können Zecken in Rudeln auftreten. Der Timer ist also nicht sehr teuer, erst recht nicht, wenn man viele Zeichen analysiert. Die Hauptsache ist, dass eine wirtschaftliche Kalkulation durchgeführt wird.

Der Timer überspringt auch Ticks, wenn Sie sie bis zum Tick zählen müssen, müssen Sie sie durch das Tick-Volumen dort zählen... aber es wird Sie auch nicht retten... Ticks können sehr schnell und in Chargen kommen, ja
 
Maxim Dmitrievsky:

Timer wird auch verpassen, wenn Sie direkt auf die Zecke gehen müssen Sie den Überblick über sie zu halten, von der Zecke Volumen gibt ... aber es wird auch nicht speichern ... Zecken können sehr schnell kommen und eine Menge, ja
Nichts kann das retten. Man kann nicht jeden Tick verarbeiten.
Grund der Beschwerde: