Toute question des nouveaux arrivants sur MQL4 et MQL5, aide et discussion sur les algorithmes et les codes. - page 593

 

Autre question, le testeur fonctionne-t-il bien avec les EA qui copient les données de plusieurs TF ?

Si c'est exact, quel TF choisir lors des tests, cela a-t-il de l'importance ?

 
Juer:

Une erreur de mémoire s'affiche lors de l'exécution d'un test (il ne démarre pas). Comment le réparer ?

Après avoir redémarré le terminal, les tests commencent, puis après plusieurs tests, il n'y a plus de mémoire.

Réduisez le nombre de barres visibles et de barres dans l'historique (mais dans ce cas, l'historique des cotations profondes disparaîtra, c'est à vous de décider ce qui est le plus important). Il est également possible que trop de graphiques soient ouverts dans le terminal. Il arrive qu'un utilisateur ouvre une cinquantaine de graphiques avec un million de barres d'historique. Aucune mémoire n'est suffisante dans ce cas.

 
Artyom Trishkin:

C'est là qu' ils pourront répondre exactement.

Il y a plusieurs dizaines de milliers de lignes dans le code. Dans les journaux des erreurs seulement après avoir testé xxx objets non supprimés restants. Je peux exécuter environ 9 tests en moyenne et ensuite manquer de mémoire.

 
Ihor Herasko:

Réduisez le nombre de barres visibles et de barres dans l'historique (dans ce cas seulement, l'historique des cotations profondes disparaîtra, c'est à vous de décider ce qui est le plus important). Il est également possible que trop de graphiques soient ouverts dans le terminal. Il arrive qu'un utilisateur ouvre une cinquantaine de graphiques avec un million de barres d'historique. Aucune mémoire n'est suffisante dans ce cas.

Non, cela n'aide ou n'affecte rien. Je teste avec un seul graphique et en réduisant l'historique au minimum. Je le répète, il peut être testé, mais seulement un nombre limité de fois. Au dixième test environ, une erreur de mémoire s'affiche.

 
Juer:

Il y a plusieurs dizaines de milliers de lignes dans le code. Dans les journaux des erreurs seulement après avoir testé xxx objets non supprimés restants. En moyenne, je peux exécuter 9 tests et ensuite manquer de mémoire.

Ce sont toutes des fuites de mémoire. Il faut les éliminer en libérant la mémoire allouée à chacun des objets via la commande delete.

 
Ihor Herasko:

Ce sont toutes des fuites de mémoire. Ils doivent être éliminés en libérant la mémoire allouée à chacun des objets via la commande delete.

Pour clarifier : supprimer tous les objets dans OnDeinit() - graphiques, objets de classe s'il y en a...

 
Artyom Trishkin:

Pour clarifier : supprimer tous les objets dans OnDeinit() - graphiques, objets de classe s'il y en a...

Comment les supprimer s'ils ne sont pas visibles...

J'ai une collection d'objets (classe héritée de CArrayObj), ils sont à leur tour ajoutés à une liste d'objets similaires, et ceux-ci à l'objet final (également hérité de CArrayObj), qui est déjà visible au niveau global et que je supprime dans OnDeinit... Et je ne les supprime pas quand je les supprime, j'en ai besoin pendant que le programme fonctionne.

 
Juer:

Comment les supprimer s'ils ne sont pas visibles...

J'ai une collection d'objets (classe héritée de CArrayObj), ils sont à leur tour ajoutés à une liste d'objets similaires, et ceux-ci à l'objet final (également hérité de CArrayObj), qui est déjà visible au niveau global et que je supprime dans OnDeinit... Et je ne les supprime pas quand je les supprime, j'en ai besoin pendant que le programme fonctionne.

Il n'arrive pas que les objets que vous créez soient invisibles.

Ils peuvent être inaccessibles depuis une fonction ou une autre, mais ils doivent être accessibles dans l'objet lui-même. C'est l'objet où vous devez effacer la mémoire. Cela se fait généralement avec le destructeur de la classe. Pour en être sûr, mettez Prints dans tous les destructeurs et dans OnDeinit.

 
S'il vous plaît, qui sait, proposez un moyen d'identifier la présence d'un panneau OCT sur un graphique.
 
Stanislav Dray:
S'il vous plaît, qui sait, dites-moi comment identifier la présence d'un panneau OCT sur un graphique

Qu'est-ce qu'un panneau OCT ?