Fehler, Irrtümer, Fragen - Seite 1562

 

Ich lasse das Prüfgerät im Modus "Echte Ticks" durch zwei Zeichen gleichzeitig laufen. Die Synchronisierung erfolgt auf die Millisekunde genau. Daher scheint es manchmal zu einer Fehlanpassung der Ticksequenzen zu kommen. Es können mehrere Ticks in 1 ms auf zwei Zeichen gleichzeitig auftreten. Wie sieht der Algorithmus für die Fütterung von Zecken in solchen Situationen aus?

Und wie, ohne IndicatorRelease, um optimal zu verwalten, um jeden Tick in den Tester zu fangen (der Timer in 1 ms überspringt Ticks), wenn es eine Passage auf mehrere Symbole auf einmal?

 
Anton Zverev:

Ich lasse das Prüfgerät im Modus "Echte Ticks" durch zwei Zeichen gleichzeitig laufen. Die Synchronisierung erfolgt auf die Millisekunde genau. Daher scheint es manchmal zu einem Missverhältnis zwischen den Ticksequenzen zu kommen. Es können mehrere Ticks in 1 ms auf zwei Zeichen gleichzeitig auftreten. Wie sieht der Algorithmus für die Fütterung von Zecken in solchen Situationen aus?

Und wie ist es optimal, um jeden Tick in der Tester ohne IndicatorRelease zu fangen (der Timer verpasst Ticks in 1 ms), wenn es mehrere Symbole auf einmal passieren?

Im Prüfgerät beträgt das Mindestzeitquantum 1 Sekunde. Daher ist es nutzlos, den Timer mit 1 ms laufen zu lassen.

Es kann mehrere Ticks in ein und derselben Sekunde geben. Und zwar mit verschiedenen Werkzeugen. Der Algorithmus der Tickzuführung ist so ausgelegt, dass zum Zeitpunkt der Tickzeit für das zu prüfende Instrument bereits alle Ticks anderer Instrumente für dieselbe Sekunde übermittelt werden.

 
Slawa:

Im Prüfgerät beträgt das Mindestzeitquantum 1 Sekunde. Es ist daher sinnlos, den Timer bei 1 ms zu starten.

Es kann mehrere Ticks in derselben Sekunde geben. Und von verschiedenen Instrumenten. Der Algorithmus der Tickzuführung ist so ausgelegt, dass zum Zeitpunkt der Tickzeit für das zu prüfende Instrument bereits alle Ticks anderer Instrumente für dieselbe Sekunde übermittelt werden.

Würden Sie die normale Lösung des Aufrufs des EA bei jedem Tick im Tester in Betracht ziehen?
 
Anton Zverev:
Würden Sie die normale Lösung des Aufrufs des EA bei jedem Tick im Tester in Betracht ziehen?
Im Tester wird der EA bei jedem Tick des zu testenden Instruments aufgerufen
 
Slawa:
Im Tester wird der Expert Advisor bei jedem Tick des getesteten Symbols aufgerufen

Sie wissen genau, worum ich Sie bitte. Wenn ich zwei Symbole verwende, kann ich die Zecken des zweiten nicht einfangen. Die einzige Lösung, die seit langem vorgeschlagen wird, ist IndicatorRelease. Aber es sieht von sich aus klapprig aus.

Ich habe verschiedene Multisymbol-Tester gesehen. Ich hatte nur in der fünften Klasse ein solches Problem. Wie es sein kann, dass Sie das nicht vorhergesehen haben, ist ein Rätsel.

Bitte denken Sie darüber nach, wie die MMS verbessert werden kann, damit dieses schwächste Glied beseitigt wird und das Produkt wirklich vollständig ist. Ich habe meine eigene Variante vorgeschlagen, aber Ihre ist 100 % vernünftiger.

 
Anton Zverev:

Sie wissen genau, worum ich Sie bitte. Wenn ich zwei Symbole verwende, kann ich die Zecken des zweiten nicht einfangen. Die einzige Lösung, die seit langem vorgeschlagen wird, ist IndicatorRelease. Aber es sieht von sich aus klapprig aus.

Ich habe verschiedene Multisymbol-Tester gesehen. Ich hatte nur in der fünften Klasse ein solches Problem. Wie es sein kann, dass Sie das nicht vorhergesehen haben, ist ein Rätsel.

Bitte denken Sie darüber nach, wie man MQL verbessern kann, um dieses schwächste Glied zu beseitigen und das Produkt zu vervollständigen. Ich habe meine eigene Variante vorgeschlagen, aber Ihre ist zu 100 % vernünftiger.

Das ist eine andere Frage.

Was bedeutet "die zweite Zecke fangen"?

Wie fangen Sie die Ticks des zweiten Tools ab, wenn Sie den EA normal ausführen?

 
Slawa:

Das ist eine andere Frage.

Was bedeutet "die Zecken der Sekunde einfangen"?

Damit der EA bei jedem Tick des zweiten Symbols aufgerufen wird.

Wie fangen Sie die Ticks des zweiten Symbols ab, wenn der EA normal gestartet wird?

Ich platziere den Indikator über IndicatorRelease auf dem zweiten Symbol. Bei jedem Tick des Symbols wird das Ereignis ChartEvent erzeugt. Der Expert Advisor fängt dieses Ereignis entsprechend auf.

Den Suchergebnissen zufolge wurde diese schlechte Lösung schon vor vielen Jahren vorgeschlagen. Ich habe keine andere funktionierende Lösung gefunden. Wenn der Test mit 10 Symbolen durchgeführt werden soll, werden 9 Indikatoren gestartet.

Angenommen, wir haben einen Expert Advisor, der den Zähler bei jedem Tick erhöht.

Ich lasse es auf einem Symbol im Tester laufen, wo es 1 Million Ticks sind. Der Zähler zeigt 1 Million an.

Ich habe auch ein anderes Symbol erreicht und es zeigt 1 Million an.

Ich habe es durch zwei Symbole auf einmal laufen lassen. Es werden keine 2 Millionen angezeigt.

Ist es jetzt klar?

 
Anton Zverev:

Bitte denken Sie darüber nach, wie Sie die MMS verbessern können, damit dieser Schwachpunkt verschwindet und das Produkt wirklich vollständig wird. Ich habe meine eigene Variante vorgeschlagen, aber Ihre ist zu 100 % besser durchdacht.

Die Änderung, die vorgenommen werden muss, ist eigentlich ganz einfach: Das OnBookEvent-Ereignis sollte nicht nur bei einem Wechsel der Verkaufsoption aufgerufen werden, sondern auch, wenn ein neuer Tick auf dem zu unterzeichnenden Instrument erfolgt. Aufgrund dieses Ereignisses ist es bereits möglich, die Ankunft neuer Ticks von anderen Symbolen auf FORTS (wo es den Markt gibt) zu erkennen.

Wenn wir auf FOREX sind und es keinen Tick gibt, wird OnBookEvent bei Ankunft eines neuen Ticks aufgerufen. Wenn wir an der Börse sind - OnBookEvent wird aufgerufen, wenn sich der Marktkurs ändert. Das ist alles.

 

Es wäre viel bequemer, wenn das Terminal für jedes Symbol einen Tick-Zähler (seit dem Zeitpunkt der Verbindung) führen würde. Und jeder Expert Advisor, der aufgerufen wird, erhält die Nummer des Ticks, bei dem er aufgerufen wurde.

Dies würde eine Schätzung der verpassten Zecken ermöglichen.

Zurzeit muss jeder EA auf einem Chart ausgelöst werden. BookEvent ist die erste Schwalbe, die besagt, dass für die Ausführung von EAs keine Charts erforderlich sind.

 
Anton Zverev:

Ich möchte, dass der EA bei jedem Tick des zweiten Symbols aufgerufen wird.

Ich hänge den Indikator über IndicatorRelease an das zweite Symbol. Es erzeugt bei jedem Tick seines Symbols ein ChartEvent-Ereignis. Der Expert Advisor fängt dieses Ereignis entsprechend auf.

Den Suchergebnissen zufolge wurde diese schlechte Lösung schon vor vielen Jahren vorgeschlagen. Ich habe keine andere funktionierende Lösung gefunden. Wenn der Test mit 10 Symbolen durchgeführt werden soll, werden 9 Indikatoren gestartet.

Angenommen, wir haben einen Expert Advisor, der den Zähler bei jedem Tick erhöht.

Ich lasse es auf einem Symbol im Tester laufen, wo es 1 Million Ticks sind. Der Zähler zeigt 1 Million an.

Ich habe auch ein anderes Symbol erreicht und es zeigt 1 Million an.

Ich habe es durch zwei Symbole auf einmal laufen lassen. Es werden keine 2 Millionen angezeigt.

Ist es jetzt klar?

Der Expert Advisor wird nur dann bei jedem Tick des zweiten Symbols aufgerufen, wenn dieser EA mit dem Chart des zweiten Symbols verbunden ist.

Sie brauchen sich nicht um irgendwelche Diagramm-Ereignisse zu kümmern. Alles wurde bereits vor Ihnen getan, Sie müssen sich nur noch umsehen.

1. Ein Beispiel: Sie erstellen einen 1-Sekunden-Timer.

2. Sie richten eine Schleife von Null bis 100 in OnTimer mit Sleep(10) ein und steuern, dass sie nicht länger als 1 Sekunde läuft.

3. Analysieren Sie beliebige Tools mit SymbolInfoTick-Abfragen.

Diese Konstruktion wird auch im Tester funktionieren.

PS: Es ist besser, den Timer auf einen längeren Zeitraum einzustellen, z. B. auf 3600 Sekunden.

Und die Schleife muss nicht eine Sekunde, sondern weniger als eine Stunde lang organisiert werden. Mit obligatorischer Prüfung IsStopped()

Schlaf ist übrigens Pflicht. Andernfalls bleibt das Prüfgerät hängen. Nun, die Systemressourcen werden während der üblichen Arbeit des Expert Advisors aufgezehrt.

Grund der Beschwerde: