MT5 und Geschwindigkeit in Aktion - Seite 66

 

Zum vorgestellten Quellcode

#include <fxsaber\Benchmark\Benchmark.mqh> // https://www.mql5.com/ru/code/31279

void OnStart()
{
  for (int i = 0; i < 5; i++)
    _BV(Sleep(1), 1);
}

Wenn Sie Geschwindigkeit wollen, sollten Sie auf dieses Monster verzichten, denn Sie bremsen sich selbst aus.

Dieses Messinstrument ist ungeeignet, da es einen großen Fehler einführt

In meinem Skript habe ich

#define  ITERATIONS 5

Hier ist das Protokoll für 5 Iterationen.

2020.11.04 16:37:24.430 TestSleep (EURUSD,H1)   total 9673 microseconds (1.935 ms per iteration)

Weniger als 2 Millisekunden.

 
fxsaber:
Die Entwickler haben durch ihr Schweigen zwei Probleme vollständig anerkannt.

Die Entwickler haben durch ihr Schweigen zugegeben, dass es keine Probleme gibt.

 
Slava:

Hier ist das Protokoll für 5 Iterationen

Weniger als 2 Millisekunden.

Ihr Skript.

2020.11.04 16:46:40.341 Test9 (EURCHF,M1)       total 67620 microseconds (13.524 ms per iteration)


Maschine.

2020.11.04 16:47:52.962 Terminal        Windows 10 build 19042, Intel Core i7-2700 K  @ 3.50 GHz, 7 / 15 Gb memory, 18 / 29 Gb disk, IE 11, Admin, GMT+2
 
Anton:

Die Entwickler haben durch ihr Schweigen zugegeben, dass es keine Probleme gibt.

Hübsch! Ist es normal, dass die Zecken in kürzerer Zeit kommen als in der Marktübersicht zuvor?

 
fxsaber:

Hübsch! Ist es normal, dass die Zecken in kürzerer Zeit kommen als in der Marktübersicht zuvor?

Normal.

Ich habe diese Frage bereits vor 5 Tagen im selben Thread beantwortet:


SymbolInfoTick sendet die vom Server des Brokers empfangenen Daten. Was der Server sendet, ist das, was Sie bekommen.

Wenn Sie Fragen zu dem von Ihrem Broker übertragenen Tick-Stream haben, sollten Sie sich an Ihren Broker wenden.

 
Slava:

Die Experten-Warteschlange ist eine sperrbare Ressource. Wenn ein Ereignis in die Warteschlange geschrieben wird, wartet der Expert Advisor (es sei denn, der Expert Advisor verarbeitet gerade ein Ereignis)

Ereignisse für den Expert Advisor kommen aus der Ereigniswarteschlange des entsprechenden Charts, die wiederum aus dem Verarbeitungszyklus des entsprechenden Symbols stammt. Und diese Verarbeitungsschleife verteilt nicht nur Ereignisse auf ihre eigenen Diagramme, sondern erledigt auch eine Menge anderer Dinge.

Ich habe Ihnen bereits gesagt, dass Windows kein Echtzeitbetriebssystem ist.

Die Aufgabe ist sehr einfach formuliert: Wie schreibt man einen Expert Advisor, der beim Warten auf eine Warteschlange nicht langsamer wird? Sie können keine Endlosschleife verwenden, weil der Schlaf eine Bremse ist. Der asynchrone Modus funktioniert also überhaupt nicht. Nun ist das Abfangen von Wartezeiten in Form von langen Millisekunden überhaupt nicht der Punkt.

 
fxsaber:

Ihr Skript.


Und bei 10.000 Iterationen?

 
Slava:

Und bei 10.000 Iterationen?

2020.11.04 17:09:30.483 total 155965249 microseconds (15.597 ms per iteration)

Ich lade andere dazu ein, das Ergebnis der Ausführung dieses Skripts auf ihrem Rechner mitzuteilen.

 
Anton:

Das ist in Ordnung.

Ich habe diese Frage bereits vor 5 Tagen im selben Thread beantwortet:

SymbolInfoTick sendet die vom Server des Brokers empfangenen Daten. Was der Server sendet, ist das, was Sie bekommen.

Wenn Sie Fragen zu dem von Ihrem Broker übertragenen Tick-Stream haben, sollten Sie sich an Ihren Broker wenden.

Deshalb stelle ich eine Frage an die Eigentümer von MQ-Demo.

 
fxsaber:

Das Problem ist sehr einfach formuliert: Wie kann man einen EA schreiben, der nicht langsamer wird, wenn er auf eine Warteschlange wartet? Eine Endlosschleife ist unmöglich, denn Schlaf ist eine Bremse. Eine asynchrone Schleife führt also in die Irre. Nun ist das Abfangen von Wartezeiten in Form von langen Millisekunden überhaupt nicht der Punkt.

Täuschen Sie sich selbst und Ihre Mitmenschen nicht.

Alle Ihre Aussagen hier beschreiben eine ganz andere Aufgabe: wie man einen Expert Advisor schreibt, der sich auf einer 9 Jahre alten, stark belasteten Hardware nicht träge anfühlt.