L'optimisation dans le testeur de stratégie - page 2

 

J'ai écrit un EA, j'ai lancé l'optimisation, regardez ..... et hors... Il me semble que https://www.mql5.com/ru/docs/series Copie... travaillent lentement.

Документация по MQL5: Доступ к таймсериям и индикаторам
Документация по MQL5: Доступ к таймсериям и индикаторам
  • www.mql5.com
Доступ к таймсериям и индикаторам - Документация по MQL5
 

Je suis en train d'optimiser rapidement. Je n'ai pas à me plaindre. Ces derniers temps, cependant, l'optimisation ne démarre pas tout de suite, mais se bloque sur place (vous pouvez entendre le disque travailler dur pour faire quelque chose). Je dois constamment passer d'un point d' accès à un autre. Ce n'est qu'alors que l'optimisation commence à fonctionner.

 
gumgum:

et hors... Il me semble quehttps://www.mql5.com/ru/docs/seriesCopie... fonctionne lentement.

Ce que vous entendez par là n'est pas très clair.

Expliquez plus précisément.

 
gpwr:

Je suis en train d'optimiser rapidement. Je n'ai pas à me plaindre. Ces derniers temps, cependant, l'optimisation ne démarre pas tout de suite, mais se bloque sur place (vous pouvez entendre le disque travailler dur pour faire quelque chose). Je dois constamment passer d'un point d'accès à un autre. Ce n'est qu'alors que l'optimisation commence à fonctionner.

Pourriez-vous décrire la situation de manière plus détaillée, si possible ? Combien de temps devez-vous attendre ? Qu'est-ce qui est écrit (le cas échéant) dans le journal de bord ?

 
Dmitriy2:

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...

Essayez d'optimiser d'abord certains paramètres, puis d'autres, en augmentant le pas. Vous pouvez ensuite l'exécuter une fois de plus à l'intérieur de l'échantillon.
 
alexvd:

Ce que vous voulez dire n'est pas très clair.

Expliquez plus précisément.

Par exemple :

double open(string sym,ENUM_TIMEFRAMES tf,int ps)
{
double ren[1]={EMPTY_VALUE};
CopyOpen(sym,tf,ps,1,ren); 
return(ren[0]); 
}

Si vous demandez les 50000 dernières valeurs et mesurez le temps de lecture du fichier, la différence est de ~0%~30%. 50000 valeurs et mesurer le temps, écrire dans le fichier, puis mesurer le temps de lecture du fichier, alors la différence est de ~0%~30% en faveur du premier.

Документация по MQL5: Файловые операции / FileWrite
Документация по MQL5: Файловые операции / FileWrite
  • www.mql5.com
Файловые операции / FileWrite - Документация по MQL5
 
gumgum:

Voici un exemple :

alors la différence est de ~0%~30% en faveur de la première.

Donc il lit plus rapidement à partir du fichier ?

Pourquoi copier une valeur à la fois quand on peut en copier 50 000 d'un coup (si on en a autant) ?

 
alexvd:

Donc il lit plus rapidement à partir du fichier ?

Pourquoi copier une valeur à la fois quand on peut en copier 50 000 d'un coup (si on en a autant) ?

A partir du fichier, c'est plus lent. Alors pourquoi une telle différence entre "à la fois 50000" et le dernier appel ?

 
gumgum:

Alors pourquoi y a-t-il une telle différence entre "au moins 50.000" et le dernier appel ?

L'arithmétique est simple (les chiffres sont approximatifs, mais l'ordre de grandeur est important).

Accéder à un élément de tableau ~ 5 cycles CPU.

L'appel de fonction est de ~100 cycles d'horloge.

La différence est qu'un seul appel de fonction pour obtenir la quantité requise de données à la fois est plus économique en termes de vitesse d'exécution.

 

La discussion semble avoir porté sur les spécificités du code d'un EA particulier. Mais j'ai remarqué que la quasi-totalité du temps est consacrée au travail préparatoire (plus de 90%), quel que soit l'EA optimisé. Et il en est ainsi à chaque exécution (passage dans le journal) avec de nouveaux paramètres d'entrée optimisés. Ainsi, quelle que soit la façon dont vous optimisez votre code, vous n'obtiendrez qu'un gain de performance de quelques pour cent.

Àalexvd: Veuillez consulter les premier et troisième messages de ce fil de discussion : je les ai décrits en détail avec des échantillons et des journaux.

Si un testeur pouvait effectuer le travail préliminaire une seule fois pendant l'optimisation, puis calculer le conseiller expert en énumérant les données d'entrée, le temps d'optimisation serait au moins un ordre de grandeur plus court. Ensuite, nous pourrions parler du code du conseiller expert lui-même.

Raison: