Die neue MetaTrader 5 Plattform Build 2615: Grundlegende Analyse und komplexe Kriterien im Strategietester
Hmm.... Der neue Profiler steigt aus ohne Infos ...
TestCode
int test_1() { switch(10) { case 0: return 1 ; case 1: return 1; case 2: return 1; case 3: return 1; case 4: return 1 ; case 5: return 1; case 6: return 1; case 7: return 1 ; case 8: return 1; case 9: return 1 ; case 10: return 1 ; default: return 0; } return 2; } int test_2() { switch(3) { case 0: return 1 ; case 1: return 1; case 2: return 1; case 3: return 1; default: return 0; } return 2; } void OnTick() { for(int x=1;x<=100000; x++) { int res1 = test_1(); } for(int x=1;x<=100000; x++) { int res2 = test_2(); } // TesterStop(); }
Wollte mals sehen wie der Compiler intern arbeitet.
Manche Compiler lassen die lange version von switch case länger laufen
Fehler :
DQ 0 17:10:46.783 Tester Intel Core i7-6700HQ @ 2.60GHz, 32632 MB IH 0 17:10:46.851 Symbols EURUSD: symbol to be synchronized KL 0 17:10:46.852 Symbols EURUSD: symbol synchronized already, 18 bytes received GF 0 17:10:46.852 History EURUSD: history synchronization started KN 0 17:10:46.855 History EURUSD: load 27 bytes of history data to synchronize in 0:00:00.002 KM 0 17:10:46.855 History EURUSD: history synchronized from 2015.01.02 to 2020.08.25 MH 0 17:10:46.962 History EURUSD,H1: history cache allocated for 7764 bars and contains 7078 bars from 2019.01.02 06:00 to 2020.02.21 23:00 JK 0 17:10:46.962 History EURUSD,H1: history begins from 2019.01.02 06:00 DM 0 17:10:46.962 Tester EURUSD,H1 (MetaQuotes-Demo): every tick generating HN 0 17:10:46.962 Tester EURUSD,H1: testing of Experts\of_else_vs_switch_case_performance.ex5 from 2020.02.24 00:00 to 2020.04.02 00:00 started QM 2 17:10:46.986 of_else_vs_switch_case_performance (EURUSD,H1) 2020.02.24 00:00:00 EX5 loading failed FH 2 17:10:46.986 Tester global initialization failed DR 2 17:10:46.986 Tester global initialization critical error GK 2 17:10:46.986 Tester tester stopped because expert initialization fail550E5F075\Agent-127.0.0.1-3000\logs\20200911.log" written NF 0 17:10:47.004 test Experts\of_else_vs_switch_case_performance.ex5 on EURUSD,H1 thread finished QD 0 17:10:47.041 127.0.0.1 prepare for shutdown
Der alte konnte das noch.
Ups .. hab noch Build 2596.... 2605 kommt ert noch.
Na ja der Fehler ist trotzdem aktuell.
Bericht mit 2605 folgt.
Die gewschwindigkeit des testers ist ja absolut unterirdisch
Verzeih, aber in der Regel liegt das am Code.
Verzeih, aber in der Regel liegt das am Code.
Ein, das liegt nicht am code, ich hab den gleichen ea durch den alten tester gejagt, da war das gar kein thema, da ist genau ein macd indicator drin, und bei ontick fragt er nur ab wenn keine position offen ist
also an dem liegts nicht
Die speicherauslastung und der prozessor liegt alles im grünen bereich
Auch mit Build 2605 bricht er beim laden ab
Nö , alles richtig. Renat sagt der Compiler optimiert den Code bis nix mehr in der OnTick() ist.
Was ja richtig ist, da im Code nix passiert.
So funktioniert der Profiler:
int MathRandomBounds(int minValue, int maxValue){ return minValue + MathRound((maxValue-minValue)*(MathRand()/32767.0)); } int test_1() { switch(MathRandomBounds(0,11)) { case 0: return 0 ; case 1: return 1; case 2: return 2; case 3: return 3; case 4: return 4 ; case 5: return 5; case 6: return 6; case 7: return 7 ; case 8: return 8; case 9: return 9 ; case 10: return 10 ; default: return -1; } return(2); } //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ int test_2() { switch(MathRandomBounds(0,4)) { case 0: return 0; case 1: return 1; case 2: return 2; case 3: return 3; default: return -1; } return 2; } //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ void OnTick() { for(int x=1; x<=100000; x++) { int res1 = test_1(); } for(int y=1; y<=100000; y++) { int res2 = test_2(); } }
Hast Du alle mal getestet ohne Grafik, bzw. den Indikator unten? Grafik ist eine tolle Bremse.
Ohne Grafik läuft alles ganz normal, ich wollte aber sehen wie der grafik mode funktioniert

- 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.
Die aktualisierte Version der MetaTrader 5 Plattform wird am 17. September 2020 veröffentlicht. Die neue Version realisiert folgende Änderungen:
Neue Handelsinstrument-Eigenschaften hinzugefügt, die eine genauere Kategorisierung der Symbole ermöglichen:
Basierend auf diesen Eigenschaften wurde in Market Watch ein separates System implementiert, das effiziente Operationen mit Symbolen ermöglicht. Wählen Sie eine Kategorie aus dem Menü aus, und alle verfügbaren Instrumente werden einer Liste für eine eingehende Analyse hinzugefügt:
Relevante Eigenschaften wurden den Vertragsspezifikationen hinzugefügt:
Zudem können Fundamentaldaten zu Handelssymbolen nun direkt von der Plattform aus geöffnet werden. Links zu den größten Aggregatoren wurden dem Kontextmenü von Market Watch hinzugefügt:
<
Weitere Verbesserungen betreffen die Bereichsgestaltung. Dazu gehören hellere Tastenfarben, größere MQL5-Anmeldeschaltflächen und andere Verbesserungen.
Die Enumeration verfügt über folgende Werte:
Verwenden Sie Folgendes, um die Gültigkeit einer Zahl zu prüfen:
Die Eigenschaften werden in Textform zurückgegeben.
Der Sektor und die Branche, zu der das Handelsinstrument gehört, kann als Wert einer Enumeration ermittelt werden. Dazu können die folgenden Eigenschaften mit der Funktion SymbolInfoInteger abgefragt werden:
Für die Arbeit mit diesen Eigenschaften wurden die Enumerationen ENUM_SYMBOL_SECTOR und ENUM_SYMBOL_INDUSTRY hinzugefügt.
Die Entwicklung des Profiler wird fortgesetzt. Weitere Verbesserungen werden in kommenden Plattformversionen verfügbar werden.
Der höchste Wert eines Parameters (zum Beispiel des Gewinns) ist nicht immer die beste Option im Hinblick auf die komplexe Analyse. Das komplexe Kriterium wählt nach und nach die besten Durchläufe aus: Zunächst nach der Anzahl der Deals, dann nach dem Expected Payoff, dem Erholungsfaktor und so weiter. Die neue Option ermöglicht den Erhalt der besten Optimierungsdurchläufe in Abhängigkeit von allen Parametern. Außerdem können Sie den optimalen Durchlauf auf der Grundlage des gewünschten Parameters auswählen, wie z.B. den höchsten Gewinn.
Wählen Sie das neue Kriterium in den Einstellungen des Strategietesters und starten Sie die Optimierung.
Der Wert "Komplexes Kriterium max" wird in einem separaten Register "Ergebnis" in den Optimierungsergebnissen angezeigt. Die Durchläufe können nach dieser Spalte sortiert werden. Das neue Kriterium unterstützt farbige Kennzeichnungen, um die besten Durchläufe visuell hervorzuheben. Werte unter 20 werden rot hervorgehoben, und Werte über 80 werden dunkelgrün dargestellt.
Die Aktualisierung wird über das Live-Update-System verfügbar sein.