Caractéristiques du langage mql5, subtilités et techniques - page 131

 
fxsaber:

Lalibération de la mémoire est la seule raison.

Quel type de mémoire ? Si elle est redondante, alorsreserve_size=-1 est suffisante, comme cela a déjà été dit. Seule la personne présente a manifestement eu un problème avec les mesures de vitesse (conditions de test incorrectes, je suppose).

 

J'ai remarqué une possibilité intéressante, que j'appellerai récursion des indicateurs.

Lorsque vous pouvez calculer un indicateur à partir de lui-même :

handle=iMA(_Symbol,_Period,per1,0,MaMethod,PriceBase);  
for(int i=0;i<N;i++) handle=iMA(_Symbol,_Period,per2,0,MaMethod,handle);

Il peut être utile pour les fans d'indicateurs...

Au cas où ce sujet aurait déjà été abordé, la répétition est la mère de l'apprentissage.

Pour démontrer cette fonctionnalité, j'ai spécialement écrit un indicateur en QB.

 
Nikolai Semko:

J'ai remarqué une possibilité intéressante, que j'appellerai récursion des indicateurs.

Lorsque vous pouvez calculer un indicateur à partir de lui-même :

Il peut être utile pour les fans d'indicateurs...

Au cas où ce sujet aurait déjà été abordé, la répétition est la mère de l'apprentissage.

Pour démontrer cette fonctionnalité, j'ai spécialement écrit un indicateur en QB.

Oui... Je ne pensais pas que c'était une fonction spéciale. Une fois que j'en ai eu besoin, je l'ai écrit de cette façon, en donnant des noms de variables différents aux poignées. Je pensais que tout le monde l'utilisait quand il le fallait...

 
Alexey Viktorov:

Oui... Je ne pensais pas que c'était une fonctionnalité. Une fois que j'en ai eu besoin, je l'ai simplement écrit comme ça, mais avec des noms de variables différents pour les poignées. Je pensais que tout le monde l'utilisait quand il le fallait...

Je n'ai pensé à le mettre en boucle que maintenant. Vous pouvez reproduire l'indicateur 100 fois, mais il n'y a qu'une seule poignée.

 
Nikolai Semko:

Je viens juste de penser à le mettre en boucle. Vous pouvez reproduire l'indicateur au moins 100 fois, mais il n'y a qu'une seule poignée.

Ce n'est pas une poignée unique, vous avez une variable. Vous avez perdu les valeurs des poignées précédentes. Et comment les fermer ?

 
Alexey Navoykov:

Ce n'est pas une poignée unique, vous avez une variable. Vous avez perdu les valeurs des poignées précédentes. Et comment les fermer ?

Eh bien...

Il consomme beaucoup de mémoire. En réalité, ce n'est qu'en changeant de TF que vous pouvez libérer lestampons d'indicateurs internes qui ne sont plus nécessaires. ))

Il n'y a aucun moyen de visser dans ArrayFree.

 
Nikolai Semko: En réalité, ce n'est qu'en modifiant le TF que vous pouvez libérer lestampons d'indicateurs internes qui ne sont pas nécessaires. ))

Il n'y a aucun moyen d'attacher ArrayFree.

La modification du TF crée une nouvelle copie de l'indicateur et détruit l'ancienne.

 
Igor Makanu:

le changement de TF crée une nouvelle copie de l'indicateur et détruit l'ancienne.

C'est compréhensible.

Je viens de regarder l'utilisation de la mémoire lors du chargement avec les paramètres maximum de mon indicateur (curseurs à droite jusqu'au bord). De 50 Mo, la mémoire est passée à environ 400 Mo. Mais lorsque j'ai ramené l'indicateur au minimum (curseurs vers la gauche), la mémoire reste toujours bloquée à 400 Mo.

Cela signifie que les 100 indicateurs calculés sont suspendus dans la mémoire, bien qu'ils ne soient pas utilisés.
Le changement de TF l'efface.

 
Nikolai Semko:

Eh bien, c'est compréhensible.

C'est juste que j'ai regardé l'utilisation de la mémoire pendant le démarrage selon les réglages maximum de mon indicateur (curseurs à droite jusqu'au bord). La mémoire est passée de 50 Mo à environ 400 Mo. Mais lorsque j'ai ramené l'indicateur au minimum (curseurs vers la gauche), la mémoire reste toujours bloquée à 400 Mo.

Ainsi, les 100 indicateurs calculés restent en mémoire, bien qu'ils ne soient plus utilisés.
Le changement de TF l'efface.

Enveloppez-le dans l'indicateur de calcul de la classe - liez les tampons aux champs de la classe.

 
Igor Makanu:

envelopper le calcul de l'indicateur dans une classe - lier les tampons aux champs de la classe

Oui, je vais devoir l'essayer. Merci.
Raison: