Sie verpassen Handelsmöglichkeiten:
- Freie Handelsapplikationen
- Über 8.000 Signale zum Kopieren
- Wirtschaftsnachrichten für die Lage an den Finanzmärkte
Registrierung
Einloggen
Sie stimmen der Website-Richtlinie und den Nutzungsbedingungen zu.
Wenn Sie kein Benutzerkonto haben, registrieren Sie sich
Es wäre interessant, das gleiche Skript mit anderen Handelsplattformen zu vergleichen.
MT4 b1280.
Es gab nur drei Ausrutscher, und die tauchten sehr selten auf. Es muss schwierig sein, eine Bremse zu erstellen, da es keine HistorySelect und CopyTicks gibt.
so sind sie beide Haswell, Xeon hat viel niedrigeren Betriebsfrequenz, wird es Leistungsabfall in der Leistung und einzelne Tests, nur in Multi-Thread-Optimierung wird ein Vorteil sein. Der i3 der neuesten Modelle sollte viel schneller laufen
Fragen Sie die Entwickler nach den Auswirkungen des Cache-Levels auf die Geschwindigkeit und allgemein nach der Geschwindigkeit von Zen2 und dem neuesten Intel
hinzufügen.
Ryzen 3700x Ich habe, können Sie Tests mit Intel tun
zum Beispiel mit diesem Skript MQL5\Scripts\UnitTests\Stat\TestStatBenchmark.mq5
mehrere Schleifen mit einem Timer
Wir sprechen hier nicht von Tests, sondern von Verzögerungen bei der Auftragsausführung. Diese Verzögerung gibt es und sie ist fließend. Und das stört sowohl den TS als auch mich sehr.
Nur drei Dinge tauchten auf, und die auch nur sehr selten. Es muss schwierig sein, eine Bremse zu erstellen, da es keine HistorySelect und CopyTicks gibt.
Auch auf MT4 wurde gewartet.
ZeitLokal in 36 Millisekunden. Wählen Sie ein Symbol mit einem größeren Tickvolumen.
Für alle Interessierten gibt es hier die Anleitung zum Abspielen.
Wer glaubt, dass es nicht angetastet wird.
Wählen Sie ein Symbol mit einem größeren Tickvolumen.
Ich werde es nicht einmal überprüfen. Stellen Sie sich das beliebteste FORTS-Symbol mit einem Tick-Abo vor. Anstelle der OnTick-Logik in OnBookEvent. Die Verzögerungen müssen schrecklich sein.
Ich brauche einen offiziellen Rat, was ich tun kann, um die Verzögerungen zu minimieren.
Um die Bremsen zu reproduzieren, müssen Sie das Skript auf mehreren EIN-Zeichen-Diagrammen ausführen und dafür sorgen, dass OnTick gleichzeitig aufgerufen wird. Dann werden die Alarme bei jedem Tick ausgelöst.
Das CPU-Lastdiagramm zeigt, dass terminal64.exe bis zu 30 % der acht logischen Kerne belastet. Das sind nur vier EURUSD-Charts, auf denen das Skript läuft. Sie können deutlich sehen, wie viel jedes Diagramm gleichzeitig geladen wird.
Wohin gehen so viele Ressourcen?
Diese Frage ist leicht zu beantworten.
Hier kopieren Sie eine Vielzahl von Daten:
Sie geben eigentlich einen Befehl, um alle verfügbaren Handelsdaten aus der Terminal-Datenbank in die EA-Umgebung zu übernehmen, um sie später zu verwenden. Sie versuchen absichtlich, einen möglichen Caching-Algorithmus für identische Anfragen auszuschalten.
Sie verwenden aber nicht alle diese Daten, sondern setzen sie in der nächsten Zeile sofort zurück:
Offensichtlich ist die Terminalbasis hier eine gemeinsam genutzte Ressource mit synchronisiertem Zugriff. Und Sie haben absichtlich Tausende von Aufträgen und Geschäften darin angelegt.
All diese sinnlosen Aktionen werden bei jedem Tick von mehreren Threads gleichzeitig 10 Mal wiederholt. Und Sie lassen diese Aktionen absichtlich in mehreren Threads gleichzeitig ablaufen.
Sie wissen also sehr genau, was Sie tun und warum, wo Ressourcen verbraucht werden, und gleichzeitig behaupten Sie, dass "die Verzögerung durch eine übermäßige CPU-Belastung von MT5 verursacht wird".
Abgesehen davon haben Sie eindeutig ein Problem mit Ihrem Computer. D.h., ja, Sie verschieben aktiv beträchtliche Mengen an Speicher, aber das sollte die Ausführungszeit der Funktionen nicht beeinflussen, insbesondere nicht in Verbindung mit HistorySelect().
In unseren Tests b2582, selbst mit 1000 Zeiten pro Tick und 5 EAs auf einem Zeichen-Chart, d.h. um Größenordnungen größer als Ihre Standardbedingungen, wurde kein einziger Alert beobachtet.
Unser Testsystem: Windows 10 Build 18363, Intel Xeon E5-2630 v4 @ 2.20GHz
Diese Frage ist leicht zu beantworten.
Hier kopieren Sie eine Menge Daten:
Sie geben eigentlich einen Befehl, um alle verfügbaren Handelsdaten aus der Terminal-Datenbank in die EA-Umgebung zu übernehmen, um sie später zu verwenden. Absichtlich wird versucht, den möglichen Caching-Algorithmus für identische Anfragen zu stören.
Sie verwenden aber nicht alle diese Daten, sondern setzen sie in der nächsten Zeile sofort zurück:
Offensichtlich ist die Terminalbasis hier eine gemeinsam genutzte Ressource mit synchronisiertem Zugriff. Und Sie haben absichtlich Tausende von Aufträgen und Geschäften darin angelegt.
All diese sinnlosen Aktionen werden bei jedem Tick von mehreren Threads gleichzeitig 10 Mal wiederholt. Und Sie lassen diese Aktionen absichtlich in mehreren Threads gleichzeitig ablaufen.
Sie wissen also sehr genau, was Sie tun und warum, wo Ressourcen verbraucht werden, und gleichzeitig behaupten Sie, dass "die Verzögerung durch eine übermäßige CPU-Belastung von MT5 verursacht wird".
Abgesehen davon haben Sie eindeutig ein Problem mit Ihrem Computer. D.h., ja, Sie verschieben aktiv beträchtliche Mengen an Speicher, aber das sollte die Ausführungszeit der Funktionen nicht beeinflussen, insbesondere nicht in Verbindung mit HistorySelect().
In unseren Tests b2582, selbst mit 1000 Zeiten pro Tick und 5 EAs auf einem Zeichen-Chart, d.h. um Größenordnungen größer als Ihre Standardbedingungen, wurde kein einziger Alert beobachtet.
Unser Testsystem: Windows 10 Build 18363, Intel Xeon E5-2630 v4 @ 2.20GHz
Kolleginnen und Kollegen,
es ist an der Zeit, dass Sie aus dem Kreis der Flugzeugmodellbauer heraustreten.
Hier sind die Kampfbedingungen: 4 Terminals, etwa 300 Expert Advisors, etwa 30 Instrumente. Ein Drittel der Expert Advisors sind auf Tumblers abonniert. All dies auf FORTS. Simulieren Sie unter diesen Bedingungen.
Kolleginnen und Kollegen,
es ist an der Zeit, dass Sie aus dem Kreis der Flugzeugmodellbauer aussteigen.
Hier sind die Kampfbedingungen: 4 Terminals, rund 300 EAs, rund 30 Instrumente. Ein Drittel der EAs sind auf Zuhaltungen abonniert. All dies auf FORTS. Simulieren Sie unter diesen Bedingungen.
"Here you go" wird als Zip-Datei akzeptiert, zusammen mit einer detaillierten Beschreibung des Problems. Sonst ist es ein leeres Gespräch.
Was hier diskutiert wird, ist der Code des eingereichten EA und die Wirksamkeit seiner Ausführung. Auf der Grundlage der festgestellten Probleme wurde an der Optimierung des Terminalcodes gearbeitet.
"Here you go" wird als Zip-Datei akzeptiert, zusammen mit einer detaillierten Beschreibung des Problems. Andernfalls ist es eine leere Unterhaltung.
In diesem Fall geht es um den vom EA vorgelegten Code und die Effizienz seiner Ausführung. Der Terminalcode wurde im Hinblick auf die festgestellten Probleme optimiert.
Ich habe keine Probleme, es gibt nichts zu senden.
fxsaber hat Probleme. 16 Seiten hat er hier schon geschrieben.
Und Mikhail hat seit 2014 die gleichen Probleme, er hat bereits 149 Seiten geschrieben: https://www.mql5.com/ru/forum/38456/page149.
Sie sind beide qualifiziert genug, um Ihnen alle erforderlichen Informationen zu geben.
Diese Frage ist leicht zu beantworten.
Hier kopieren Sie eine Menge Daten:
Sie geben eigentlich einen Befehl, um alle verfügbaren Handelsdaten aus der Terminal-Datenbank in die EA-Umgebung zu übernehmen, um sie später zu verwenden. Gezielte Zufallsauswahl, um den möglichen Caching-Algorithmus für identische Anfragen zu stören.
Sie haben die Chronologie der Entwicklung dieses Threads nicht verfolgt, daher erlauben Sie sich anklagende Anmerkungen in Ihren Aussagen.
Ich habe die MathRand-Zeile entfernt. Hier ist ein kurzes Protokoll.
Aber Sie verwenden nicht alle diese Daten, sondern lassen sie gleich in der nächsten Zeile verschwinden:
Natürlich ist die Terminalbasis hier eine gemeinsam genutzte Ressource mit synchronisiertem Zugang. Und Sie haben absichtlich Tausende von Aufträgen und Geschäften darin angelegt.
Ich teste es an echten Konten, bei denen Aufträge über 10.000 die Norm sind. Dabei handelt es sich nicht um gefälschte Aufträge, da mehr als 70 % von ihnen ausgeführt wurden.
Auf dem Bildschirmfoto ist übrigens 9331+576 != 12529.
All diese unsinnigen Vorgänge werden bei jedem Tick 10 Mal von mehreren Threads gleichzeitig wiederholt. Und Sie lassen diese Aktionen absichtlich in mehreren Threads gleichzeitig ablaufen.
Ich habe Probleme mit verschiedenen Charakteren. Um das Problem schneller zu reproduzieren, wird ein einzelnes Symbol vorgeschlagen.
Die 10-malige Wiederholung bei jedem Ticken ist eine unabdingbare Notwendigkeit. Da es normal ist, dass ein EA ein Dutzend TCs mit unterschiedlichen Schwerpunkten enthält.
Sie wissen also sehr genau, was Sie tun und warum und wohin die Ressourcen gehen, und dennoch behaupten Sie, dass "die Latenz auf eine übermäßige CPU-Belastung von MT5 zurückzuführen ist".
Abgesehen davon haben Sie eindeutig ein Problem mit Ihrem Computer. Ich meine, ja, Sie verschieben aktiv erhebliche Mengen an Speicher, aber es sollte nicht die Ausführungszeit von Funktionen beeinflussen, insbesondere nicht in Verbindung mit HistorySelect() in irgendeiner Weise.
Ich kann Sie nicht der Inkompetenz bezichtigen, aber was Sie geschrieben haben, ist, gelinde gesagt, verwirrend. HistorySelect ist die Suche nach vier Indizes (Anfang/Ende für die Tabelle der Aufträge und Anfang/Ende für die Tabelle der Geschäfte). Die Tabellen sind nach Zeit sortiert, so dass es schlimmstenfalls eine binäre Suche gibt (geben sollte). Bei 10K Aufträgen ist es sofort (berechnen Sie den binären Logarithmus). Welches Gedächtnisvolumen Bewegung! Niemand spricht hier von dem gefürchteten HistorySelectByPosition. Der elementare HistorySelect ist betroffen.
Bei unseren Tests mit b2582 wurde selbst bei 1000 Zeiten pro Tick und 5 EAs auf einstelligen Charts, d.h. um Größenordnungen mehr als Ihre Standardbedingungen, kein einziger Alert beobachtet.
Unser Testsystem: Windows 10 Build 18363, Intel Xeon E5-2630 v4 @ 2.20GHz
Bitte geben Sie hier die Anmeldedaten für das Handelskonto an, mit dem die Tests durchgeführt wurden.