Ich schlage vor, Statistiken über die Leistung der verschiedenen Prozessoren zu sammeln, um ihre Effizienz zu schätzen, damit der Strategietester im Optimierungsmodus arbeiten kann.
Gute Initiative, ich unterstütze sie.
Ich erhalte beim Kompilieren eine Warnung:
implicit conversion from 'number' to 'string' Tree_Brut_TestPL.mq5 2567 16
Ist das so gewollt?
if(FrameAdd(Test_P,1,0,stat_values)==false)
Ich schlage vor, Statistiken über die Leistung der verschiedenen Prozessoren zu erstellen, um ihre Effektivität für den Strategy Tester im Optimierungsmodus abzuschätzen.
Um objektiver zu sein, schlage ich vor, einen Expert Advisor zu verwenden, der im Modus"Mathematisches Rechnen" läuft, der es Ihnen ermöglicht, die Nutzung der Festplatte und des Speichers Ihres Computers zu minimieren. Wenn möglich, geben Sie den Namen des Prozessors, der Hauptplatine und die Frequenz des Arbeitsspeichers an.
Der Expert Advisor hat nur einen Parameter, der optimiert werden sollte (in der Tat ist es nichts und die Daten sind identisch für alle Agenten - um objektiv zu sein), geben Sie die Anzahl der Durchläufe gleich der Anzahl der Threads und wählen Sie Agenten durch die Anzahl der Prozessorkerne (kein Hypertruding!).
Ich hoffe, dass die gesammelten Daten den Leuten bei der Wahl einer Hardware für die Optimierung helfen werden, die vernünftigerweise nicht in erster Linie zu nehmen ist, zumindest war das in letzter Zeit so, aber einige Dinge können sich geändert haben.
Der Expert Advisor selbst ist ein Ausschnitt aus einem echten EA, den ich in einer ähnlichen Aufgabe verwende, um Blätter aus einem Entscheidungsbaum auszuwählen, d.h. es ist eine echte MoD-Aufgabe, und wenn es Ideen gibt, wie man den Code beschleunigen kann, wäre ich sehr daran interessiert, sie zu hören. Es gibt nur 1000 Blätter im Code, in Wirklichkeit sind es bereits mehr als 70.000, also werden sie in eine Funktion eingefügt, um eine akzeptable Kompilierzeit zu erreichen.
Gute Initiative, ich unterstütze sie.
Beim Kompilieren wird eine Warnung ausgegeben:
Ist das der richtige Weg?
Zeile:
Korrigiert und relauncht!
Testen Sie es.
Über welchen Zeitraum soll optimiert werden und in welchem Zeitrahmen? Ist das Werkzeug wichtig?
Immathematischen Berechnungsmodus spielt das keine Rolle, dort werden keine Ticks erzeugt!
Was gibt es da draußen? Ist der Stumpf der späten 2000er Jahre nicht mehr im Kommen? :D
Probieren Sie Ihren Prozessor aus und posten Sie Ihre Ergebnisse - mal sehen, ob er abhebt oder nur rollt!
Verdirbt ein altes Pferd die Furche?
Ergebnisse:
2019.08.09 23:22:07.472 Tester set "Custom max" as optimization criterion for mathematical calculations 2019.08.09 23:22:07.540 Experts optimization frame expert Tree_Brut_TestPL (EURUSD.m,H1) processing started 2019.08.09 23:22:07.592 Tester cache file 'tester\cache\Tree_Brut_TestPL.30.DFF2DB61B8A3751199D61AD0A0F226D3.opt' deleted 2019.08.09 23:22:07.623 Tester Experts\Tree_Brut_TestPL.ex5 math calculations test means no history and no symbol info for EURUSD.m 2019.08.09 23:22:07.623 Tester complete optimization started 2019.08.09 23:22:07.648 Core 1 agent process started on 127.0.0.1:3008 2019.08.09 23:22:07.650 Core 2 agent process started on 127.0.0.1:3009 2019.08.09 23:22:07.652 Core 3 agent process started on 127.0.0.1:3010 2019.08.09 23:22:07.654 Core 4 agent process started on 127.0.0.1:3011 2019.08.09 23:22:07.657 Core 5 agent process started on 127.0.0.1:3012 2019.08.09 23:22:07.659 Core 6 agent process started on 127.0.0.1:3013 2019.08.09 23:22:07.662 Core 7 agent process started on 127.0.0.1:3014 2019.08.09 23:22:07.664 Core 8 agent process started on 127.0.0.1:3015 2019.08.09 23:22:07.972 Core 1 connecting to 127.0.0.1:3008 2019.08.09 23:22:07.973 Core 1 connected 2019.08.09 23:22:07.983 Core 1 authorized (agent build 2097) 2019.08.09 23:22:07.997 Core 1 common synchronization completed 2019.08.09 23:22:08.035 Core 3 connecting to 127.0.0.1:3010 2019.08.09 23:22:08.036 Core 3 connected 2019.08.09 23:22:08.046 Core 3 authorized (agent build 2097) 2019.08.09 23:22:08.056 Core 2 connecting to 127.0.0.1:3009 2019.08.09 23:22:08.057 Core 2 connected 2019.08.09 23:22:08.059 Core 3 common synchronization completed 2019.08.09 23:22:08.067 Core 5 connecting to 127.0.0.1:3012 2019.08.09 23:22:08.068 Core 5 connected 2019.08.09 23:22:08.068 Core 2 authorized (agent build 2097) 2019.08.09 23:22:08.082 Core 2 common synchronization completed 2019.08.09 23:22:08.083 Core 5 authorized (agent build 2097) 2019.08.09 23:22:08.103 Core 7 connecting to 127.0.0.1:3014 2019.08.09 23:22:08.104 Core 7 connected 2019.08.09 23:22:08.119 Core 7 authorized (agent build 2097) 2019.08.09 23:22:08.125 Core 5 common synchronization completed 2019.08.09 23:22:08.140 Core 7 common synchronization completed 2019.08.09 23:22:08.150 Core 4 connecting to 127.0.0.1:3011 2019.08.09 23:22:08.151 Core 4 connected 2019.08.09 23:22:08.151 Core 8 connecting to 127.0.0.1:3015 2019.08.09 23:22:08.151 Core 8 connected 2019.08.09 23:22:08.162 Core 8 authorized (agent build 2097) 2019.08.09 23:22:08.164 Core 4 authorized (agent build 2097) 2019.08.09 23:22:08.184 Core 6 connecting to 127.0.0.1:3013 2019.08.09 23:22:08.185 Core 6 connected 2019.08.09 23:22:08.208 Core 6 authorized (agent build 2097) 2019.08.09 23:22:08.228 Core 4 common synchronization completed 2019.08.09 23:22:08.240 Core 6 common synchronization completed 2019.08.09 23:22:08.250 Core 8 common synchronization completed 2019.08.09 23:24:45.931 Tester optimization finished, total passes 8 2019.08.09 23:24:45.941 Statistics optimization done in 2 minutes 38 seconds 2019.08.09 23:24:45.941 Statistics shortest pass 0:02:35.945, longest pass 0:02:37.669, average pass 0:02:37.006 2019.08.09 23:24:45.941 Statistics 8000 frames (3.14 Mb total, 412 bytes per frame) received 2019.08.09 23:24:45.941 Statistics local 8 tasks (100%), remote 0 tasks (0%), cloud 0 tasks (0%) 2019.08.09 23:24:45.988 Tester 8 new records saved to cache file 'tester\cache\Tree_Brut_TestPL.30.DFF2DB61B8A3751199D61AD0A0F226D3.opt'
Terminal-Version:
2019.08.09 23:20:35.776 Terminal MetaTrader 5 x64 build 2085 started (MetaQuotes Software Corp.) 2019.08.09 23:20:35.778 Terminal Windows 10 (build 17763) x64, IE 11, UAC, AMD FX-8300 Eight-Core Processor , Memory: 17102 / 24574 Mb, Disk: 2407 / 2441 Gb, GMT+2
Verdirbt ein altes Pferd die Furche?
Ergebnisse:
Terminal-Version:
Es scheint, dass Sie 8 Agenten beteiligt sind, und Sie brauchen 4, weil FPU in FX nur 4 und 8 ALUs haben, und es ist FPU, die während der Optimierung geladen wird. Warum so - ist nicht klar - Frage an die Entwickler, denn der Code ist weitgehend auf den Vergleich gebaut, aber offenbar der Verbrauch von Gleitkomma-Berechnung herrscht oder mal langsamer, so stellt sich heraus, dass es notwendig ist, um die Anzahl der Coprozessoren setzen, dann 1 Pass wird schneller und die durchschnittliche Zeit wird die gleiche bleiben.
Es scheint, dass Sie 8 Agenten beteiligt sind und Sie brauchen 4, da die FPU in FX nur 4 und 8 APUs hat, und es ist die FPU, die während der Optimierung geladen wird. Warum es so ist - ist nicht klar - Frage an die Entwickler, weil der Code meistens auf dem Vergleich basiert, aber anscheinend überwiegt der Verbrauch der Gleitkommaberechnung oder ist mal langsamer, so stellt es sich heraus, dass es notwendig ist, genau die Anzahl der Koprozessoren zu stellen, dann wird 1 Durchgang schneller sein und die durchschnittliche Zeit wird ungefähr gleich bleiben.
Bitte klären Sie das. Schalte ich 4 Agenten aus und stelle den zu optimierenden Parameter so ein, dass ich 4 Optimierungsdurchgänge oder 8 Durchgänge erhalte?
8 geht an 4 Agenten vorbei, quasi analog zum Hypertrading - entsprechend der Anzahl der Threads.
Aktivieren Sie"Vollständiges Optimierungsprotokoll", um die Zeit jedes Durchgangs zu sehen.![MQL5 - Sprache von Handelsstrategien, eingebaut ins Kundenterminal MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
- Freie Handelsapplikationen
- Über 8.000 Signale zum Kopieren
- Wirtschaftsnachrichten für die Lage an den Finanzmärkte
Sie stimmen der Website-Richtlinie und den Nutzungsbedingungen zu.
Ich schlage vor, Statistiken über die Leistung der verschiedenen Prozessoren zu erstellen, um ihre Effektivität für den Strategy Tester im Optimierungsmodus abzuschätzen.
Um objektiver zu sein, schlage ich vor, einen Expert Advisor zu verwenden, der im Modus"Mathematisches Rechnen" läuft, der es Ihnen ermöglicht, die Nutzung der Festplatte und des Speichers Ihres Computers zu minimieren. Wenn möglich, geben Sie den Namen des Prozessors, der Hauptplatine und die Frequenz des Arbeitsspeichers an.
Der Expert Advisor hat nur einen Parameter, der optimiert werden sollte (in der Tat, es ist nichts und die Daten sind identisch für alle Agenten - um objektiv zu sein), geben Sie die Anzahl der Durchläufe gleich der Anzahl der Threads und wählen Sie Agenten durch die Anzahl der Prozessorkerne (kein Hypertraining!).
Ich hoffe, dass die gesammelten Daten den Menschen bei der Auswahl einer Hardware für die Optimierung, die vernünftig ist, nicht von der ersten Ordnung zu nehmen, zumindest war es so in letzter Zeit, aber etwas ändern kann.
Der Expert Advisor selbst ist ein Fragment eines echten EA, den ich in einer ähnlichen Aufgabe verwende, um Blätter aus einem Entscheidungsbaum auszuwählen, d.h. es ist eine echte MoD-Aufgabe, und wenn Sie Ideen haben, wie man den Code beschleunigen kann, würde ich mich freuen, sie zu hören. Es gibt nur 1000 Blätter im Code, in Wirklichkeit sind es aber schon mehr als 70.000, also werden sie in eine Funktion eingefügt, um eine akzeptable Wartezeit für das Ergebnis der Kompilierung zu haben.
Aktivieren Sie im Protokoll des Strategietesters über das Kontextmenü die Option "Vollständiges Optimierungsprotokoll".Hinzugefügt: In diesem Thread hat sich herausgestellt, dass die Dateigröße in einigen (das ist noch herauszufinden) Prozessoren die Leistung des Systems als Ganzes beeinflusst, obwohl sich der Code strukturell nicht viel ändert. Deshalb bitte ich jeden, zwei Tester zu testen.
Beispiel für Testereinstellungen - Symbol, Periode und Zeitrahmen sind nicht wichtig - die anderen Einstellungen sind relevant. Der Screenshot zeigt einen anderen EA, aber die Einstellungen sind korrekt
Bis jetzt haben wir die folgende Bewertung, bei der die durchschnittliche Zeit in Sekunden verwendet wurde - die beiden letzten Spalten und die letzte Spalte zeigen die Anzahl der Durchläufe des Prozessors in einer Stunde.
Die Tabelle wird nach der letzten Spalte gefiltert, die den höchsten Verbrauch an Rechenressourcen für die EA-Option angibt.