Calcul d'un seul tableau pendant l'optimisation

 

Il existe un tableau qui ne change pas pendant toute l'optimisation. Est-il possible de le calculer une fois et de ne s'y référer qu'à chaque passage pendant toute l'optimisation sans le recalculer ?

 
Alors calculez-le dans OnInint()
 
Alexey Viktorov:
Alors calculez-le dans OnInint()

Dans MQL4, je lisais les données du fichier dans l'inite, mais cela prenait beaucoup de temps. Je ne sais pas si l'initeest utilisée à chaque nouveau passage ou non ?

Je l'ai trouvé sur le forum, à chaque fois que l'inite est utilisé, c'est à dire que le tableau sera recalculé.

https://www.mql5.com/ru/forum/104222

 

Bien sûr que non.

Oups... Je n'ai pas lu attentivement et j'ai mal compris la question.

 
forexman77:

Dans MQL4, je lisais les données du fichier dans l'inite, mais cela prenait beaucoup de temps. Je ne sais pas si l'initeest utilisée à chaque nouveau passage ou non ?

Je l'ai trouvé sur le forum, à chaque fois que l'inite est utilisé, c'est à dire que le tableau sera recalculé.

https://www.mql5.com/ru/forum/104222

C'est élémentaire. Vous vérifiez la taille du tableau à chaque exécution. Si le tableau est vide ou si le drapeau de calcul est faux, vous le recalculez :

if(ArraySize(optimize_array) == 0)
   CalculateArray();
 
Vasiliy Sokolov:

C'est élémentaire. Vous vérifiez la taille du tableau à chaque fois que vous l'exécutez. Si le tableau est vide ou si le drapeau de calcul est faux, vous le recalculez :

Je ne l'ai pas encore testé, cependant. Mais, je demande et que le tableau sera sauvegardé de la première passe (où il sera calculé) et sera disponible dans les passes suivantes ?

 
forexman77:

Je ne l'ai pas encore testé, cependant. Mais, je vais demander et que le tableau sera sauvegardé de la première passe (où il sera calculé) et sera disponible pour les passes suivantes ?

Il ne le fera pas. Vous devez le recalculer, ou l'enregistrer dans un fichier et le lire.
 
Dmitry Fedoseev:
Ça n'arrivera pas. Vous devez le recalculer, ou l'enregistrer dans un fichier et le lire.

Je suis donc confronté à un dilemme : comment faire en sorte qu'il soit possible de lire un fichier une fois, de remplir un tableau avec celui-ci et d'utiliser ce tableau à chaque passage.

J'en ai besoin pour réduire le temps d'optimisation, car le tableau restera toujours inchangé et il sera coûteux de le lire à chaque fois.

 
forexman77:

Je suis donc confronté à un dilemme : comment faire en sorte qu'il soit possible de lire un fichier une fois, de remplir un tableau avec celui-ci et d'utiliser ce tableau à chaque passage.

J'en ai besoin pour réduire le temps d'optimisation, car le tableau sera toujours inchangé et il est coûteux de le lire à chaque fois.

Dans MT5 il y a un événement pour démarrer l'optimisation, calculer le tableau dans celui-ci, le sauvegarder dans un fichier et le lire dans l'init de l'EA.
 

Attachement des ressources. Ne demandez pas comment. Je n'ai pas écrit le code source.

Il faudra le lire dans l'inite. Mais il ne sera pas lu depuis le disque, mais depuis la mémoire. Donc, en fait, le tableau sera en mémoire.

 
Dmitry Fedoseev:
Dans MT5 il y a un événement pour démarrer l'optimisation, dans lequel on calcule le tableau, on le sauvegarde dans un fichier, et dans le init de l'EA on le lit.
Devrez-vous le lire dans l'init à chaque passage ?
Raison: