Bibliothèque: MultiTester - page 10

 

L'ensemble de tests a été récemment terminé. Avec 50 itérations, il n'y a pas eu de double passage.

J'ai enregistré, la plupart du temps, les itérations 1, plus rarement 0 et 2. Mais parfois, rarement et sans que l'on sache pourquoi, il y a des rafales jusqu'à 7-8. Je garderai 50 itérations, avec réserve et sans effets négatifs.

 

Dans le fichier MTTester.mqh, les chemins vers le cache ou les configs sont obtenus via ::TerminalInfoString(TERMINAL_PATH)+.

Mais personnellement, je l'ai installé (j'ai tout paramétré par défaut) dans Programme Files, et le profil est séparé. J'ai corrigé en TERMINAL_DATA_PATH.

 
Il peut être utile d'obtenir non seulement GetLastOptCache (et par conséquent GetLastOptCacheFileName), mais aussi le dernier. Et aussi le dernier pour un caractère particulier. Je l'ai ajouté pour moi, mais cela pourrait être utile dans la version générale.
 
traveller00:

L'ensemble de tests a été récemment terminé. Avec 50 itérations, il n'y a pas eu de double passage.

J'ai enregistré, la plupart du temps, les itérations 1, plus rarement 0 et 2. Mais parfois, rarement et sans que l'on sache pourquoi, il y a des rafales jusqu'à 7-8. Je vais garder 50 itérations, avec une réserve et sans effets négatifs.

Je n'ai pas eu d'effets négatifs. Merci pour l'info, je vais mettre 50, ça ne demande pas à être mangé, mais ça peut marcher pour d'autres.


traveller00:

Dans MTTester.mqh, les chemins d'accès aux caches ou aux configurations sont obtenus via ::TerminalInfoString(TERMINAL_PATH)+

Mais personnellement je l'ai installé (je mets tout par défaut) dans Programme Files, et le profil est séparé. J'ai corrigé en TERMINAL_DATA_PATH.

Je ne travaille qu'en portable, et là TERMINAL_PATH == TERMINAL_DATA_PATH. Merci, je vais faire en sorte que le mode universel fonctionne dans tous les jobs KB.



Il pourrait être utile d'obtenir non seulement GetLastOptCache (et corrélativement GetLastOptCacheFileName) en principe le dernier. Et aussi le dernier sur un caractère particulier. Je l'ai ajouté pour moi, mais cela peut être utile dans la version générale.

En l'écrivant, je suis guidé par les scénarios d'utilisation que j'ai moi-même rencontrés. Je n'ai pas envisagé l'option avec le dernier cache par symbole, car je ne vois pas encore où elle peut être utile.

Elle pourrait être utile pour comparer plusieurs caractères entre eux. Je n'ai pas encore trouvé de script utile.


Si vous avez vos propres implémentations ou scénarios d'utilisation, postez-les. C'est encore plus constructif.

 

Pour l'instant, je n'en suis qu'au stade de la finalisation et de l'élaboration des outils. C'est pourquoi j'ai d'abord effectué une optimisation sur 90 symboles. Ensuite, j'ai décidé de ne pas analyser les résultats à la main, mais par automate, et d'extraire les symboles intéressants de toute la pile pour les tourner à la main. Et j'ai échoué avec la fonctionnalité de base, j'ai donc eu besoin d'un filtrage par symbole.

Les corrections ont été minimales et compatibles, j'ai ajouté un paramètre optionnel const string SymbName = NULL, je l'ai passé dans quelques fonctions et j'ai légèrement corrigé GetLastOptCacheFileName

en

return(MTTESTER::GetFreshFileName(::TerminalInfoString(TERMINAL_DATA_PATH)+"\\NTester\NCache\N",SymbName != NULL ? "*. "+NomSymb+".*.opt" : "*.opt")) ;

 
traveller00:

Pour l'instant, je n'en suis qu'au stade de la finalisation et de l'élaboration des outils. C'est pourquoi j'ai d'abord effectué une optimisation sur 90 symboles. Ensuite, j'ai décidé de ne pas analyser les résultats à la main, mais d'utiliser un automate, et d'extraire les symboles intéressants de l'ensemble de la pile pour les tourner à la main. Et j'ai échoué avec la fonctionnalité de base, c'est alors que j'ai eu besoin d'un filtrage par caractère.

J'ai compris. Il est donc logique d'ajouter également le nom de l'EA.

Les corrections ont été minimales et compatibles, j'ai ajouté un paramètre optionnel const string SymbName = NULL, je l'ai passé dans quelques fonctions et j'ai légèrement corrigé GetLastOptCacheFileName

en

return(MTTESTER::GetFreshFileName(::TerminalInfoString(TERMINAL_DATA_PATH)+"\\NTester\NCache\N",SymbName != NULL ? "*. "+NomSymb+".*.opt" : "*.opt")) ;)

Je vais corriger la génération du masque, merci.

[Supprimé]  

Quelque chose ne va pas...

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

Et il n'y a que 3 fichiers .opt...

Comment est-ce possible ?

J'ai effectué une optimisation manuelle sur l'un des caractères "perdus". Tout va bien....


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

Il s'est passé quelque chose...

Malheureusement, je ne les mets pas toujours à jour dans KB lorsque je trouve des bugs ou des moyens d'améliorer mes solutions. C'est probablement le cas ici.

[Supprimé]  
fxsaber:

Malheureusement, je ne les mets pas toujours à jour dans KB lorsque je trouve des bogues ou des moyens d'améliorer mes solutions. C'est probablement le cas ici.

Je n'ai donc rien mis à jour après m'être adapté au 2190.

Considérons qu'il s'agit d'un problème de système. Au moins jusqu'à la réapparition. )))

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

Je n'ai donc rien mis à jour depuis l'adaptation au 2190.

Je l'ai considérablement mis à jour, car j'ai trouvé et éliminé des pièges. Je l'ai également affiné pour d'autres types de tâches.