MT5 und Geschwindigkeit in Aktion - Seite 43

 
Renat Fatkhullin:

Ich habe Ihre Benchmark-Skripte + Beispiel heruntergeladen.

  1. Auf lokalem Computer - leer in 10 Minuten

  2. Auf einem virtualisierten VPS-Host mit mehreren Terminals in 8 Minuten

  3. Auf physischem VPShost mit vielen Terminals in 8 Minuten geladen

Danke, das sieht cool aus!

Die Tests wurden auf einem 2630-Terminal in voller Größe durchgeführt, und die VPS-Arbeitsterminals sind um ein Vielfaches weniger ressourcenintensiv und ihre Latenz ist zwangsläufig geringer.

Es wurden Arbeitshosts unseres VPS-Dienstes verwendet.

Ich muss WinAPI verwenden, um den Appetit des Desktop-Terminals zu unterdrücken.

Ihren VPS. Wenn jemand andere gültige Empfehlungen hat, lassen Sie es mich wissen.


Liebe Entwickler, bitte haben Sie die Möglichkeit, das Terminal für den Algotrading-Modus auf minimalen Ressourcenverbrauch umzuschalten.

 
Renat Fatkhullin:

Geben Sie den Namen des Servers des Brokers an, bitte

Dies bezieht sich nicht auf den spezifischen Server des Brokers.
Sie bezieht sich auf die Wahl der Ping-Messung in Ihrem vorgeschlagenen Dienst.
Das heißt, die Karte suggeriert manchmal eine größere Entfernung als der Server des anderen Brokers, obwohl sie sich z.B. beide in LD4 befinden.
Ich werde keine bestimmten Server zum Vergleich nennen, sondern nur beim Durchgehen dieser Server diese Besonderheit feststellen.
Im Allgemeinen wäre es besser, eine Liste mit allen Standorten zur Auswahl zu haben.
Aber im Moment interessiere ich mich für AMPGlobalEU-Live und seinen amerikanischen Server.

 
fxsaber:

Danke, das sieht cool aus!

Aber ich muss WinAPI verwenden, um den Appetit des Desktop-Terminals zu zügeln.

Da Terminal oft mehr fps macht als PC-Spiele aufgrund sehr häufiger Upsets, kommt die Grafikkarte in den Vordergrund. Besonders bei vpscs ohne Karten wird die gesamte Last auf den strangulierten Prozessor gelegt.

Deshalb ist es richtig, dass Sie die Bedienfelder auf virtuellen Desktops minimieren und deaktivieren.

Wir haben sogar die Hälfte des Terminalcodes in unserem Dienst gestrichen und die Visualisierung komplett entfernt. Die Terminals wurden zu ausführenden Anhängseln des vpc-Controllers und arbeiten nur mit diesem zusammen.

Daher ist der Ressourcenbedarf um ein Vielfaches geringer. All dies wird in den Artikeln über den VPS-Service beschrieben.

 
Renat Fatkhullin:

Da das Terminal aufgrund der sehr häufigen Aktualisierungen oft höhere Bildwiederholraten als PC-Spiele aufweist, kommt der Grafikkarte eine besondere Bedeutung zu. Insbesondere auf einer virtuellen Maschine ohne Karten wird die gesamte Last auf die CPU gelegt.

Deshalb ist es richtig, dass Sie die Bedienfelder auf virtuellen Desktops minimieren und deaktivieren.

Wir haben sogar die Hälfte des Terminalcodes in unserem Dienst gestrichen und die Visualisierung komplett entfernt. Die Terminals wurden zu ausführenden Anhängseln von vpc-controller und arbeiten nur mit diesem.

Daher ist der Ressourcenbedarf um ein Vielfaches geringer. All dies wird in den Artikeln über den VPS-Service beschrieben.

Hier ist eine weitere Frage zu Ihrem VPS.
Gibt es irgendwelche Socket-Einschränkungen im mql-Programm, das auf Ihrem Server läuft?
Ist es möglich, eine Verbindung zum OpenAPI-Broker unabhängig vom MQ-Programm herzustellen, nicht zur MQ-API.
Oder ist es möglich, nur mit dem Konto des Brokers zu arbeiten?

 
Roman:

Ich habe eine weitere Frage zu Ihren VPNs.
Gibt es eine Einschränkung für den Socket-Betrieb im mql-Programm auf Ihrem VPS?
Darf man von einem mql-Programm eine Verbindung zur OpenAPI des Brokers herstellen, nicht zur MQ API?
Oder ist Ihr Ops-Support nur mit dem Konto des Maklers verbunden?

Es gibt keine Einschränkungen für Socket-Operationen, außer für localhost/127.0.0.1-Zugriffe

Die auf Ihrem Terminal festgelegten Berechtigungen werden vererbt.

 
Renat Fatkhullin:

Da das Terminal aufgrund der sehr häufigen Aktualisierungen oft höhere Bildwiederholraten als PC-Spiele aufweist, kommt der Grafikkarte eine besondere Bedeutung zu. Vor allem bei vpscs ohne Karten wird die gesamte Last auf die CPU gelegt, die dadurch stranguliert wird.

Warum also nicht einen Snapshot mit 20 Hz machen und damit die Bildwiederholrate reduzieren? Das Bildmaterial wird ohnehin nur für das menschliche Auge benötigt. Es wird nicht auffallen, ob es 200 fps oder 20 sind.

Sie haben also recht, wenn Sie die Panels auf Virtualisern minimieren und deaktivieren.

Leider benötigen Sie dazu WinAPI. Und ich habe immer noch nicht gelernt, wie man das Fenster Market Watch und Tools schließt. Bitte sagen Sie mir, wie ich das über WinAPI machen kann.

Market Products steht bei VPS von Drittanbietern völlig auf der Bremse. Es kann keine automatische Minimierung vorgenommen werden. Das Ausblenden von Diagrammen ist dasselbe. Außerdem gibt es keine Möglichkeit, das langsame GetMicrosecondsCount durch ein Analogon mit Millisekundenquantisierung zu ersetzen. Es wird ein grober GetTickCount mit 16 ms vorgeschrieben, was für die Mechanismen der Snapshot-Handelsumgebung zu viel ist.

Nicht für die Vermarktung Ihres VPS-Dienstes, beschränken Sie es so? Ich schätze, das war noch nicht relevant. Sie hat jedoch bereits Lösungen für die Messung und einige Krücken entwickelt.

Wir haben die Hälfte des Terminalcodes in unserem Dienst gestrichen und die Visualisierung komplett entfernt. Die Terminals wurden zu ausführenden Anhängseln von vps-controller und arbeiten nur mit diesem.

Daher ist der Ressourcenbedarf um ein Vielfaches geringer. All dies wird in den Artikeln über den VPS-Service beschrieben.

Das Desktop-Terminal könnte dem Algotrading näher gebracht werden, und der Ressourcenverbrauch könnte durch MQL-Funktionen reduziert werden.

Sagen Sie mir, wenn ich eine Tick-Historie für alle Symbole in Market Watch (Screener) anfordere, speichert der VPS-Service dann 128K Ticks für jedes Symbol als Cache?


Nein.

bool CopyTicksClearCache( const string Symbol );
so dass nur die letzten Ticks ohne große Ressourcen abgefragt werden können, um Übersprünge in OnTick zu vermeiden.
 
Roman:

Dies bezieht sich nicht auf den spezifischen Server des Brokers.
Sie bezieht sich auf die Wahl der Ping-Messung in Ihrem vorgeschlagenen Dienst.
Das heißt, die Karte suggeriert manchmal eine größere Entfernung als der Server des anderen Brokers, obwohl sie sich z.B. beide in LD4 befinden.
Ich werde keine bestimmten Server zum Vergleich nennen, sondern nur beim Durchgehen dieser Server diese Besonderheit feststellen.
Im Allgemeinen wäre es besser, eine Liste mit allen Standorten zur Auswahl zu haben.
Aber im Moment interessiere ich mich für AMPGlobalEU-Live und seinen amerikanischen Server.

AMPGlobalEU-Live mit MetaTrader 4 Server in London auf LD4 zeigt einen Ping von 1,73 ms:


Aber AMPGlobalEU-Live (eigentlich ist es besser, es als AMPGlobalUSA-Live zu suchen) für MetaTrader 5 mit einem physischen Plattformkern in Chicago zeigt tatsächlich 19,53 ms an, da unsere nächsten Server in New York stehen:

Speziell gescannt alle ihre Punkte manuell - das Minimum ist 19 ms.

Wir werden versuchen, in den nächsten Tagen Server in Chicago aufzustellen. Ich bin noch nicht dazu gekommen.

 
Renat Fatkhullin:

AMPGlobalEU-Live mit MetaTrader 4 Server in London auf LD4 zeigt einen Ping von 1,73ms:


Aber AMPGlobalEU-Live (eigentlich ist es besser, danach als AMPGlobalUSA-Live zu suchen) für MetaTrader 5 mit einem physischen Plattformkern in Chicago ist tatsächlich 19,53 ms, da unsere nächsten Server in New York stehen:

Speziell gescannt alle ihre Punkte manuell - das Minimum ist 19 ms.

Wir werden versuchen, in den nächsten Tagen Server in Chicago aufzustellen. Ich bin noch nicht dazu gekommen.

Das habe ich alles gesehen, und auch analysiert ))
Wenn Sie einen Server in Chicago setzen, setzen Sie es direkt in Aurora, wo der Standort des Austauschs und alle Anbieter.

 

Mehr als einmal habe ich Situationen erlebt, in denen Terminal die CPU so stark belastet, dass sie auf nichts mehr reagiert.

Dann schaute ich mir die Protokolle an und sah, dass bei OnTick wildes Überspringen von Ticks auftrat. Wenn ich jedoch einen EA richtig schreibe, wird sich diese katastrophale Situation nicht auf die Handelsergebnisse auswirken. Ich habe es genau analysiert, alles ist klar.

Ich frage mich, wie verbreitet die Mechanismen für den Umgang mit Verzögerungen bei Market Products sind. Ich habe nicht ein einziges Mal gesehen, dass die Maschinenleistung zum Laufen gebracht werden muss. Minimaler Ping - ja.

 
fxsaber:

Warum wird die Aktualisierung nicht mit 20 Hz aufgenommen, wodurch die Bildwiederholrate sinkt? Das Bildmaterial ist ohnehin nur für menschliche Augen bestimmt. Es wird nicht auffallen, ob es 200 fps oder 20 sind.

Denn eine Menge von Nutzern wird mit Anschuldigungen kommen.

Das ist ganz einfach.

Allerdings verwenden wir in der Tat kleine Behälter.


Leider benötigen wir dazu WinAPI. Und wir haben immer noch nicht gelernt, wie man das Fenster Market Watch und Tools schließt. Bitte sagen Sie mir, wie ich das über WinAPI machen kann.

Die MQL5-Funktion, die alle Fenster und die Anwendung selbst minimiert, ist eine großartige Idee. Wir werden uns darum kümmern.

Wer jedoch das Terminal auf dem VPS selbst betreibt, wird sich stark dagegen wehren, dass alles abrupt minimiert wird. Er kann und sollte Windows selbst minimieren, wenn er die RDP-Sitzung verlässt.


Marktprodukte stehen bei VPS von Drittanbietern völlig auf der Bremse. Eine automatisierte Minimierung ist nicht möglich. Definieren Sie Karte versteckt vor den Augen - ähnlich. Außerdem gibt es keine Möglichkeit, das langsame GetMicrosecondsCount durch sein Gegenstück, die Millisekundenquantisierung, zu ersetzen. Es wird ein grober GetTickCount mit 16 ms vorgeschrieben, was für die Snapshot-Mechanismen der Handelsumgebung zu viel ist.

Sie scheinen nichts zu verstehen.

Es ist nicht GetMicrosecondsCount, das Sie verlangsamt, es ist das Betriebssystem, das die CPU-Ressourcen für jeden Thread Ihrer strangulierten vpska quantifiziert. Für jede Funktion, jede Aktion, jedes Programm innerhalb Ihrer UPU.

Nun, keine CPU-Shell kann Ressourcen gerecht aufteilen und zuweisen, wenn sie 20 (das ist immer noch respektabel) Betriebssysteme mit 1500 Threads pro Kopie ausführt. Man nehme 8-16 Kerne und verteile sie auf 20 * 1.500 = 30.000 (dreißigtausend physische Spuren).


Und zum Vergleich haben wir unseren VPS-Host mit 97 aktiven Terminals: nur 3 333 Threads und nur 205 Prozesse - kein einziger System-Overhead


Hier ist jetzt mein Arbeitsrechner zum Vergleich - außer Browsern, einer Kopie von MT5 und einigen Nicht-Kosten-Programmen gibt es nichts anderes: 3 876 Threads sind aktiv



Es hat sich herausgestellt, dass ein VPS-Host mit einer Reihe von Terminals wirtschaftlicher arbeitet als ein Desktop. Der VPS hat 8 Kerne und der Desktop hat 128 Kerne.