Bibliotheken: MultiTester - Seite 10

 

Die Testreihe wurde kürzlich abgeschlossen. Bei 50 Iterationen gab es keine Doppeldurchläufe.

Ich habe Protokollierung, meist Iterationen 1, weniger oft 0 und 2. Aber manchmal, selten und unbekannt warum, gibt es Ausbrüche bis zu 7-8. Ich werde 50 beibehalten, mit Reserve und ohne negative Auswirkungen davon.

 

In der Datei MTTester.mqh werden die Pfade zum Cache oder den Configs über ::TerminalInfoString(TERMINAL_PATH)+ ermittelt.

Ich persönlich habe es aber in Programmdateien installiert (ich habe alles standardmäßig eingestellt), und das Profil ist separat. Ich habe es auf TERMINAL_DATA_PATH korrigiert.

 
Es kann nützlich sein, nicht nur GetLastOptCache (und folglich GetLastOptCacheFileName) zu erhalten, sondern im Prinzip den letzten überhaupt. Und auch den letzten für ein bestimmtes Zeichen. Ich habe es für mich selbst hinzugefügt, aber es könnte in der allgemeinen Version nützlich sein.
 
traveller00:

Die Testreihe wurde kürzlich abgeschlossen. Bei 50 Iterationen gab es keine Doppeldurchläufe.

Ich habe Protokollierung, meist Iterationen 1, weniger oft 0 und 2. Aber manchmal, selten und unbekannt warum, gibt es Ausbrüche bis zu 7-8. Ich werde 50 beibehalten, mit Reserve und ohne negative Auswirkungen davon.

Ich habe keine negativen Auswirkungen davon gehabt. Vielen Dank für die Info, ich werde 50 setzen, es ist nicht für Lebensmittel fragen, aber es wird für andere zu arbeiten.


traveller00:

In MTTester.mqh werden Dateipfade zu Cache oder Configs über ::TerminalInfoString(TERMINAL_PATH)+ ermittelt.

Aber ich persönlich habe es in Programmdateien installiert (ich habe alles standardmäßig), und das Profil ist separat. Ich habe es auf TERMINAL_DATA_PATH korrigiert.

Ich arbeite nur im portablen Modus, und da ist TERMINAL_PATH == TERMINAL_DATA_PATH. Danke, ich werde dafür sorgen, dass der universelle Modus in allen KB-Jobs funktioniert.



Es könnte nützlich sein, nicht nur GetLastOptCache (und dementsprechend GetLastOptCacheFileName) zu erhalten, sondern im Prinzip den letzten überhaupt. Und auch den letzten für ein bestimmtes Zeichen. Ich habe es für mich selbst hinzugefügt, aber es könnte in der allgemeinen Version nützlich sein.

Beim Schreiben habe ich mich von den Anwendungsszenarien leiten lassen, die mir selbst begegnet sind. Die Option mit dem letzten Cache nach Symbol habe ich nicht in Betracht gezogen, weil ich noch nicht sehe, wo sie nützlich sein könnte.

Sie könnte nützlich sein, um viele Zeichen miteinander zu vergleichen. Mir ist noch kein brauchbares Skript eingefallen.


Wenn Sie eigene Implementierungen oder Anwendungsszenarien haben, posten Sie sie. Auf diese Weise ist es noch konstruktiver.

 

Im Moment befinde ich mich noch in der Phase der Fertigstellung und Ausarbeitung der Werkzeuge. Deshalb habe ich zunächst eine Optimierung für 90 Symbole durchgeführt. Dann beschloss ich, die Ergebnisse nicht von Hand zu analysieren, sondern mit einem Automaten, und interessante Symbole aus dem ganzen Haufen herauszuschütteln, um sie von Hand zu drehen. Dabei scheiterte ich an der Grundfunktionalität, so dass ich eine Filterung nach Symbolen benötigte.

Die Korrekturen waren minimal und kompatibel, ich fügte einen optionalen Parameter const string SymbName = NULL hinzu, schleuste ihn durch ein paar Funktionen und korrigierte GetLastOptCacheFileName leicht

zu

return(MTTESTER::GetFreshFileName(::TerminalInfoString(TERMINAL_DATA_PATH)+"\\\\Tester\\\cache\",SymbName != NULL ? "*. "+SymbName+".*.opt" : "*.opt"));

 
traveller00:

Im Moment befinde ich mich noch in der Phase der Fertigstellung und Ausarbeitung der Werkzeuge. Deshalb habe ich zunächst eine Optimierung für 90 Symbole durchgeführt. Dann beschloss ich, die Ergebnisse nicht von Hand zu analysieren, sondern mit einem Automaten, und interessante Symbole aus dem ganzen Haufen herauszuschütteln, um sie von Hand zu drehen. Und da ich mit der Grundfunktionalität scheiterte, brauchte ich eine Filterung nach Zeichen.

Das war's. Dann ist es logisch, auch den Namen des EAs hinzuzufügen.

Die Korrekturen waren minimal und kompatibel, ich fügte einen optionalen Parameter const string SymbName = NULL hinzu, schleuste ihn durch ein paar Funktionen und korrigierte GetLastOptCacheFileName leicht

zu

return(MTTESTER::GetFreshFileName(::TerminalInfoString(TERMINAL_DATA_PATH)+"\\\\Tester\\\cache\",SymbName != NULL ? "*. "+SymbName+".*.opt" : "*.opt")));

Ich werde die Maskengenerierung korrigieren, danke.

[Gelöscht]  

Irgendetwas ist falsch...

2019.11.29 17:21:46.241 MultiTester_Example (FTSE100,D1)        NIKK225 PERIOD_D1 TesterDate -  TesterDate (1/25) - Start.
2019.11.29 17:24:05.099 MultiTester_Example (FTSE100,D1)        NIKK225 PERIOD_D1 TesterDate -  TesterDate (1/25) - Done. Time = 00:02:19
2019.11.29 17:24:05.250 MultiTester_Example (FTSE100,D1)        NIKK225 PERIOD_D1 TesterDate -  TesterDate (2/25) - Start.
2019.11.29 17:25:54.975 MultiTester_Example (FTSE100,D1)        NIKK225 PERIOD_D1 TesterDate -  TesterDate (2/25) - Done. Time = 00:01:49
2019.11.29 17:25:55.136 MultiTester_Example (FTSE100,D1)        NIKK225 PERIOD_D1 TesterDate -  TesterDate (3/25) - Start.
2019.11.29 17:27:30.347 MultiTester_Example (FTSE100,D1)        NIKK225 PERIOD_D1 TesterDate -  TesterDate (3/25) - Done. Time = 00:01:35
2019.11.29 17:27:30.531 MultiTester_Example (FTSE100,D1)        NIKK225 PERIOD_D1 TesterDate -  TesterDate (4/25) - Start.
2019.11.29 17:29:18.129 MultiTester_Example (FTSE100,D1)        NIKK225 PERIOD_D1 TesterDate -  TesterDate (4/25) - Done. Time = 00:01:48
2019.11.29 17:29:18.333 MultiTester_Example (FTSE100,D1)        NIKK225 PERIOD_D1 TesterDate -  TesterDate (5/25) - Start.
2019.11.29 17:31:15.052 MultiTester_Example (FTSE100,D1)        NIKK225 PERIOD_D1 TesterDate -  TesterDate (5/25) - Done. Time = 00:01:57
2019.11.29 17:31:15.170 MultiTester_Example (FTSE100,D1)        SPX500 PERIOD_D1 TesterDate -  TesterDate (6/25) - Start.
2019.11.29 17:33:16.972 MultiTester_Example (FTSE100,D1)        SPX500 PERIOD_D1 TesterDate -  TesterDate (6/25) - Done. Time = 00:02:01
2019.11.29 17:33:17.092 MultiTester_Example (FTSE100,D1)        SPX500 PERIOD_D1 TesterDate -  TesterDate (7/25) - Start.
2019.11.29 17:35:00.090 MultiTester_Example (FTSE100,D1)        SPX500 PERIOD_D1 TesterDate -  TesterDate (7/25) - Done. Time = 00:01:43
2019.11.29 17:35:00.412 MultiTester_Example (FTSE100,D1)        SPX500 PERIOD_D1 TesterDate -  TesterDate (8/25) - Start.
2019.11.29 17:36:45.975 MultiTester_Example (FTSE100,D1)        SPX500 PERIOD_D1 TesterDate -  TesterDate (8/25) - Done. Time = 00:01:45
2019.11.29 17:36:46.092 MultiTester_Example (FTSE100,D1)        SPX500 PERIOD_D1 TesterDate -  TesterDate (9/25) - Start.
2019.11.29 17:38:19.975 MultiTester_Example (FTSE100,D1)        SPX500 PERIOD_D1 TesterDate -  TesterDate (9/25) - Done. Time = 00:01:33
2019.11.29 17:38:20.090 MultiTester_Example (FTSE100,D1)        SPX500 PERIOD_D1 TesterDate -  TesterDate (10/25) - Start.
2019.11.29 17:40:02.238 MultiTester_Example (FTSE100,D1)        SPX500 PERIOD_D1 TesterDate -  TesterDate (10/25) - Done. Time = 00:01:42
2019.11.29 17:40:02.352 MultiTester_Example (FTSE100,D1)        IBEX35 PERIOD_D1 TesterDate -  TesterDate (11/25) - Start.
2019.11.29 17:41:58.122 MultiTester_Example (FTSE100,D1)        IBEX35 PERIOD_D1 TesterDate -  TesterDate (11/25) - Done. Time = 00:01:56
2019.11.29 17:41:58.236 MultiTester_Example (FTSE100,D1)        IBEX35 PERIOD_D1 TesterDate -  TesterDate (12/25) - Start.
2019.11.29 17:43:37.213 MultiTester_Example (FTSE100,D1)        IBEX35 PERIOD_D1 TesterDate -  TesterDate (12/25) - Done. Time = 00:01:39
2019.11.29 17:43:37.324 MultiTester_Example (FTSE100,D1)        IBEX35 PERIOD_D1 TesterDate -  TesterDate (13/25) - Start.
2019.11.29 17:45:30.973 MultiTester_Example (FTSE100,D1)        IBEX35 PERIOD_D1 TesterDate -  TesterDate (13/25) - Done. Time = 00:01:53
2019.11.29 17:45:31.087 MultiTester_Example (FTSE100,D1)        IBEX35 PERIOD_D1 TesterDate -  TesterDate (14/25) - Start.
2019.11.29 17:47:10.246 MultiTester_Example (FTSE100,D1)        IBEX35 PERIOD_D1 TesterDate -  TesterDate (14/25) - Done. Time = 00:01:39
2019.11.29 17:47:10.362 MultiTester_Example (FTSE100,D1)        IBEX35 PERIOD_D1 TesterDate -  TesterDate (15/25) - Start.
2019.11.29 17:48:52.973 MultiTester_Example (FTSE100,D1)        IBEX35 PERIOD_D1 TesterDate -  TesterDate (15/25) - Done. Time = 00:01:42
2019.11.29 17:48:53.086 MultiTester_Example (FTSE100,D1)        DAX30 PERIOD_D1 TesterDate -  TesterDate (16/25) - Start.
2019.11.29 17:50:37.262 MultiTester_Example (FTSE100,D1)        DAX30 PERIOD_D1 TesterDate -  TesterDate (16/25) - Done. Time = 00:01:44
2019.11.29 17:50:37.376 MultiTester_Example (FTSE100,D1)        DAX30 PERIOD_D1 TesterDate -  TesterDate (17/25) - Start.
2019.11.29 17:52:48.973 MultiTester_Example (FTSE100,D1)        DAX30 PERIOD_D1 TesterDate -  TesterDate (17/25) - Done. Time = 00:02:11
2019.11.29 17:52:49.136 MultiTester_Example (FTSE100,D1)        DAX30 PERIOD_D1 TesterDate -  TesterDate (18/25) - Start.
2019.11.29 17:54:22.974 MultiTester_Example (FTSE100,D1)        DAX30 PERIOD_D1 TesterDate -  TesterDate (18/25) - Done. Time = 00:01:33
2019.11.29 17:54:23.210 MultiTester_Example (FTSE100,D1)        DAX30 PERIOD_D1 TesterDate -  TesterDate (19/25) - Start.
2019.11.29 17:56:43.272 MultiTester_Example (FTSE100,D1)        DAX30 PERIOD_D1 TesterDate -  TesterDate (19/25) - Done. Time = 00:02:20
2019.11.29 17:56:43.439 MultiTester_Example (FTSE100,D1)        DAX30 PERIOD_D1 TesterDate -  TesterDate (20/25) - Start.
2019.11.29 17:58:59.975 MultiTester_Example (FTSE100,D1)        DAX30 PERIOD_D1 TesterDate -  TesterDate (20/25) - Done. Time = 00:02:16
2019.11.29 17:59:00.168 MultiTester_Example (FTSE100,D1)        FTSE100 PERIOD_D1 TesterDate -  TesterDate (21/25) - Start.
2019.11.29 18:02:01.111 MultiTester_Example (FTSE100,D1)        FTSE100 PERIOD_D1 TesterDate -  TesterDate (21/25) - Done. Time = 00:03:01
2019.11.29 18:02:01.290 MultiTester_Example (FTSE100,D1)        FTSE100 PERIOD_D1 TesterDate -  TesterDate (22/25) - Start.
2019.11.29 18:05:07.304 MultiTester_Example (FTSE100,D1)        FTSE100 PERIOD_D1 TesterDate -  TesterDate (22/25) - Done. Time = 00:03:06
2019.11.29 18:05:07.474 MultiTester_Example (FTSE100,D1)        FTSE100 PERIOD_D1 TesterDate -  TesterDate (23/25) - Start.
2019.11.29 18:08:17.320 MultiTester_Example (FTSE100,D1)        FTSE100 PERIOD_D1 TesterDate -  TesterDate (23/25) - Done. Time = 00:03:10
2019.11.29 18:08:17.447 MultiTester_Example (FTSE100,D1)        FTSE100 PERIOD_D1 TesterDate -  TesterDate (24/25) - Start.
2019.11.29 18:10:44.184 MultiTester_Example (FTSE100,D1)        FTSE100 PERIOD_D1 TesterDate -  TesterDate (24/25) - Done. Time = 00:02:27
2019.11.29 18:10:44.361 MultiTester_Example (FTSE100,D1)        FTSE100 PERIOD_D1 TesterDate -  TesterDate (25/25) - Start.
2019.11.29 18:14:04.974 MultiTester_Example (FTSE100,D1)        FTSE100 PERIOD_D1 TesterDate -  TesterDate (25/25) - Done. Time = 00:03:20
2019.11.29 18:14:04.975 MultiTester_Example (FTSE100,D1)        Alert: Finish.
2019.11.29 18:14:04.975 MultiTester_Example (FTSE100,D1)        ExpertRemove() function called
2019.11.29 18:14:04.975 MultiTester_Example (FTSE100,D1)        Полное время оптимизации = 00:52:21

Und es gibt nur 3 .opt-Dateien...

Wie ist das möglich?

Ich habe eine manuelle Optimierung an einem der "verlorenen" Zeichen durchgeführt. Alles ist in Ordnung....


 
Сергей Таболин:

Es ist etwas passiert...

Leider aktualisiere ich sie nicht immer in KB, wenn ich Fehler oder Möglichkeiten zur Verbesserung meiner Lösungen finde. Das ist wahrscheinlich hier der Fall.

[Gelöscht]  
fxsaber:

Leider aktualisiere ich sie nicht immer in KB, wenn ich Fehler oder Möglichkeiten zur Verbesserung meiner Lösungen finde. Dies ist wahrscheinlich hier der Fall.

Ich habe also nach der Anpassung an 2190 nichts mehr aktualisiert.

Lassen Sie es uns als Systemfehler abtun. Zumindest bis zum Wiederauftauchen. )))

 
Сергей Таболин:

Ich habe also seit der Anpassung an 2190 nichts mehr aktualisiert.

Ich habe ihn erheblich aktualisiert, weil ich Fallstricke gefunden und beseitigt habe. Ich habe ihn auch für andere Aufgabenstellungen verfeinert.