L'optimisation dans le testeur de stratégie

 
S'il vous plaît, aidez-moi à le comprendre.

Par exemple, j'ai choisi le conseiller expert standard de la livraison "Moving Average.mq5" (pour éviter les questions sur le code dans le conseiller expert).
Données initiales :
EURUSD, Quotidien, du 01.07.2010 au 31.08.2010, prix ouverts uniquement, mode sans optimisation (c'est-à-dire un seul passage du testeur).
Le fichier journal StrategyTester_1pass.log est joint.

Voici ce que nous voyons : le temps de fonctionnement total du testeur est de 8 secondes, dont SEULEMENT 546 ms ont été consacrées au test du conseiller expert. Tout le reste du temps était consacré aux travaux préparatoires.

Ensuite, j'ai défini l'optimisation d'un paramètre d'entrée parmi 5 valeurs (pour cinq passages du testeur).

Voici une capture d'écran du journal

journal du testeur

et le fichier StrategyTester_5passes.log sont joints.

Le journal montre que chaque itération prend 7 à 9 secondes, c'est-à-dire que nous avons un cycle complet d'itérations simples à chaque fois !
Par conséquent, le temps total d'optimisation est de 25 secondes sur un processeur double cœur (il faudrait 45 secondes sur un seul cœur, au lieu des 3 secondes de test réel de l'EA).

Et que faire si nous devons optimiser 3 paramètres d'entrée pour au moins 10 valeurs (10 * 10 * 10 = 1000) ? Dans MT4, l'optimisation était plus rapide de plusieurs ordres de grandeur.

J'ai trouvé des questions sur le même problème dans l'un des fils du forum https://www.mql5.com/ru/forum/852/page14, mais toutes ont été envoyées soit à mon compte personnel, soit à servicedesk.

Veuillez expliquer quel est le problème et comment optimiser correctement dans le testeur de stratégie.

 

Je l'ai remarqué aussi... mais j'ai mis ça sur le compte des "imperfections" de mql5 -))

J'optimise 5 paramètres... Je prends le signal élémentaire comme entrée... pas de calculs... J'ai supprimé tout ce que je pouvais...

en conséquence 1200 runs sur un processeur 4-core prend toute la soirée... et c'est juste en un mois...

j'ai cherché un moyen d'accélérer les choses... j'ai limité l'eXpert à vérifier les conditions une fois toutes les 5 minutes... ça n'a pas marché... pas une seconde plus rapide...

donc, depuis une quinzaine de jours, je teste et teste encore... et je suis enclin à penser que je devrais simplement entrer les paramètres sans aucune optimisation...

 
maryan.dirtyn:

Je l'ai remarqué aussi... mais j'ai mis ça sur le compte des "imperfections" de mql5 -))

J'optimise 5 paramètres... je prends le signal élémentaire comme entrée... pas de calculs... j'ai supprimé tout ce que je pouvais...

en conséquence 1200 runs sur un processeur 4-core prend toute la soirée... et c'est juste en un mois...

j'ai cherché un moyen d'accélérer les choses... j'ai limité l'eXpert à vérifier les conditions une fois toutes les 5 minutes... ça n'a pas marché... pas une seconde plus rapide...

donc, depuis une quinzaine de jours, je teste et teste encore... et je suis enclin à penser que je devrais simplement entrer les paramètres sans aucune optimisation...

Au début, je pensais aussi qu'il y avait une erreur dans mon code. J'ai cherché et simplifié, puis je suis arrivé à ceci (...) : "expert".

input int          X = 100;

int OnInit()
  {
   return(0);
  }

void OnDeinit(const int reason)
  {
  }

void OnTick()
  {
   Print("Тик-Так.");
  }

Le résultat était le même.

Un passage prend 7 à 9 secondes. Il s'avère qu'une telle absurdité.

 
Batohov:

Une passe dure 7 à 9 secondes. C'est le genre d'absurdité que vous obtenez.

+1.

même pour les prix d'ouverture.

à l'Armée Rouge une telle optimisation...

Документация по MQL5: Стандартные константы, перечисления и структуры / Константы индикаторов / Ценовые константы
Документация по MQL5: Стандартные константы, перечисления и структуры / Константы индикаторов / Ценовые константы
  • www.mql5.com
Стандартные константы, перечисления и структуры / Константы индикаторов / Ценовые константы - Документация по MQL5
 
Je suis en train d'optimiser depuis un mois maintenant))) et il semble qu'il n'y aura pas de fin à cela) mais "l'optimisation par OOP" couvre tous les aspects possibles de la stupidité humaine... peut-être que c'est seulement nous qui le faisons depuis si longtemps... )) puisque personne d'autre ne vient ici... Je peux imaginer combien de temps le test prendrait, si j'attachais"Contrôle de l'inclinaison de la courbe d'équilibre pendant l'activité de l'Expert Advisor" à amoebaic eXpert.
 
Oui, c'est ce que je fais en ce moment.... c'est aussi fastidieux que de télécharger un film avec le GPRS....
 
maryan.dirtyn:
Je suis en train d'optimiser depuis un mois maintenant))) et il semble qu'il n'y ait pas de fin en vue... Je suppose que c'est juste nous depuis si longtemps... ))) puisque personne d'autre ne regarde ici...
Oui, tout le monde le fait :) Il n'y a rien à dire. Je suis plutôt habitué à 5-6 jours d'optimisation rapide sur un processeur à 2 cœurs sur "tous les ticks" de 10,5 milliers de pas. Aucune plainte.
 
Yedelkin:
Oui, tout le monde s'arrête :) Il n'y a rien à dire. Je suis habitué au fait que, sur un processeur à deux cœurs, l'optimisation rapide sur "tous les tics" de 10,5 milliers de pas prend 5 à 6 jours. Aucune plainte.
Mais avant, c'était beaucoup plus rapide
 
maryan.dirtyn:
Mais c'était beaucoup plus rapide avant

Mon ordinateur ne s'est pas arrêté depuis le mois de mai - il est constamment en train d'optimiser. C'est pourquoi je ne sais déjà plus si c'était plus rapide ou non.

Ajout : je viens de constater que le compilateur est devenu 10 fois plus rapide.

 
Yedelkin:

Mon ordinateur ne s'est pas arrêté depuis le mois de mai - il est constamment en train d'optimiser. Donc je ne sais déjà plus si c'était plus rapide ou non.

effrayant
 

Et j'ai sélectionné quelques paramètres, cliqué sur le test... le matin, j'ai compté le nombre de courses et combien il en restait... a calculé qu'il y avait 50 jours avant la fin de l'optimisation... mon ordinateur a 4 cœurs + 2 agents de cœur... Je n'ai pas besoin de cette optimisation, alors je l'ai désactivée...