Variables globales versus FileWrite

 

J'ai environ 8-10 variables qui ne peuvent pas être recalculées à la volée sans aggravation substantielle (elles sont dérivées d'appels iCustom potentiellement passés depuis longtemps).

Sachant que j'exécute normalement 5 à 10 instances de l'EA par terminal et que je veux créer un niveau de persistance, quelle est ma meilleure option en termes de fiabilité et de rapidité ?

1. Variables globales ; ou

2. FileWrite

Je suis sûr que je pourrai faire ce dont j'ai besoin avec l'un ou l'autre de ces systèmes, mais je ne sais pas exactement quelle est la meilleure voie à suivre.

Toute réflexion sera grandement appréciée.

 
toast:

J'ai environ 8-10 variables qui ne peuvent pas être recalculées à la volée sans aggravation substantielle (elles sont dérivées d'appels iCustom potentiellement passés depuis longtemps).

Sachant que j'exécute normalement 5 à 10 instances de l'EA par terminal et que je veux créer un niveau de persistance, quelle est ma meilleure option en termes de fiabilité et de rapidité ?

1. Variables globales ; ou

2. FileWrite

Je suis sûr que je pourrai faire ce dont j'ai besoin avec l'un ou l'autre de ces systèmes, mais je ne sais pas exactement quelle est la meilleure voie à suivre.

Toute réflexion sera grandement appréciée.

Les variables globales du terminal sont plus faciles à utiliser, vous pouvez également les modifier manuellement dans le terminal. Mais l'écriture dans un fichier est plus souple.
 
angevoyageur:
Mais l'écriture dans un fichier est plus souple.

mais plus fiable
 

Les variables globales peuvent être fiables si vous codez votre ea correctement. C'est la même chose pour l'écriture dans un fichier.

Rien n'est fiable si le code de votre ea n'est pas fait correctement pour gérer les Variables Globales ou l'écriture dans un fichier.

Les Variables Globales ou l'écriture dans un fichier sont juste des saveurs à votre goût en fait.

 

vous avez raison ! !!

Je me souviens de l'époque (il y a quelques années) où les variables globales étaient sauvegardées dans un fichier uniquement à la fermeture du terminal.

ce qui signifie que s'il y a un crash du terminal/ordinateur/électricité, elles n'ont pas été sauvegardées

il semble que les choses aient changé depuis et maintenant elles sont sauvegardées immédiatement dans un fichier.

merci pour l'info

 
Merci beaucoup à tous pour la rapidité de vos réponses - rapides et instructives, comme toujours !
 
qjol:

vous avez raison ! !!

Je me souviens de l'époque (il y a quelques années) où les variables globales étaient sauvegardées dans un fichier uniquement à la fermeture du terminal.

ce qui signifie que s'il y a un crash du terminal/ordinateur/électricité, elles n'ont pas été sauvegardées

il semble que les choses aient changé depuis et qu' elles soient maintenant sauvegardées immédiatement dans un fichier.

merci pour l'info


GV devient plus fiable ces jours-ci.

C'est bien, n'est-ce pas ? J'espère que MetaQuotes pourra le rendre encore plus agréable :)

 

Si je peux vous déranger avec une autre question :

L'utilisation de ChartID() est-elle un moyen fiable de nommer les variables globales ? Est-il toujours unique, et ne change-t-il pas une fois assigné à un graphique particulier ?

Je pensais utiliser une combinaison du numéro magique et de Symbol(), mais mon inquiétude est que quelqu'un modifie le numéro magique avec les transactions actives. Si cela se produit, les GV utilisés pour gérer les transactions ne seront pas correctement récupérés.


(Veuillez noter que je ne partage pas les GV entre différents graphiques ou EA et que je n'ai donc pas à m'inquiéter de la capacité d'un autre EA à récupérer le GV. Je les utilise uniquement pour la persistance).

 
toast:

Si je peux vous déranger avec une autre question :

L'utilisation de ChartID() est-elle un moyen fiable de nommer les variables globales ? Est-il toujours unique, et ne change-t-il pas une fois assigné à un graphique particulier ?

Je pensais utiliser une combinaison du numéro magique et de Symbol(), mais mon inquiétude est que quelqu'un modifie le numéro magique avec les transactions actives. Si cela se produit, les GV utilisés pour gérer les transactions ne seront pas correctement récupérés.


(Veuillez noter que je ne partage pas les GV entre différents graphiques ou EA et que je n'ai donc pas à m'inquiéter de la capacité d'un autre EA à récupérer le GV. Je les utilise uniquement pour la persistance).


Le numéro magique ne peut pas être modifié une fois qu'il est dans les ordres (en attente ou sur le marché).
 

Merci pour la réponse.

Oui, je suis d'accord.

Mais le problème sera le suivant :

Une transaction est ouverte avec le numéro magique 123.

Lors de la gestion de cette transaction, l'EA recherche le GV avec le nom 123xxxxxx.

L'utilisateur modifie le paramètre de l'EA pour le numéro magique en 789 alors que la position est toujours active.

L'EA recherche donc maintenant le GV avec le nom 789xxxxx (qui n'existe pas).

Essentiellement, je cherche une convention d'appellation des GV qui ne puisse pas être modifiée par l'utilisateur.

 
toast:

Merci pour la réponse.

Oui, je suis d'accord.

Mais le problème sera le suivant :

Une transaction est ouverte avec le numéro magique 123.

Lors de la gestion de cette transaction, l'EA recherche le GV avec le nom 123xxxxxx.

L'utilisateur modifie le paramètre de l'EA pour le numéro magique en 789 alors que la position est toujours active.

L'EA recherche donc maintenant le GV avec le nom 789xxxxx (qui n'existe pas).

Essentiellement, je cherche une convention d'appellation des GV qui ne puisse pas être modifiée par l'utilisateur.

Ne permettez pas de changer le nombre magique s'il y a encore des transactions ouvertes avec l'ancienne magie.
Raison: