Comment s'assurer que l'EA ne fonctionne que sur le graphique où il a été déposé pour la première fois ? - page 4

 

C'est probablement comme ça que ça marche :

Commencez par créer une variable globale et un objet sur le graphique (quelque part en dehors du graphique, afin de ne pas le supprimer accidentellement à la main), et "écrivez" une clé commune dans les deux (obtenue par GetTickCount, par exemple).

Les réexécutions sur d'autres graphiques vérifient la présence de la variable globale. si elle existe - cherchez un objet avec la même clé sur NOTRE graphique. si elle n'est pas trouvée - autre graphique - ne fonctionne pas et crie réexécution !

Étant donné que les objets graphiques et les variables globales doivent survivre aux redémarrages et aux recompilations - le contrôle fonctionnera toujours correctement).

 
ForexTools:

C'est probablement comme ça que ça marche :

Commencez par créer une variable globale et un objet sur le graphique (quelque part en dehors du graphique, pour ne pas le supprimer accidentellement à la main) et "écrivez" une clé commune dans les deux (obtenue par GetTickCount, par exemple).

Les réexécutions sur d'autres graphiques vérifient la présence de la variable globale. si elle existe - chercher un objet avec la même clé sur NOTRE graphique. si elle n'est pas trouvée - autre graphique - ne fonctionne pas et crie avec alerte que la réexécution !

Étant donné que les objets graphiques et les variables globales doivent survivre aux redémarrages et aux recompilations - le contrôle fonctionnera toujours correctement).

Parfois, les objets ne sont pas sauvegardés si le terminal s'est planté.
 
ForexTools:

Le conseiller expert ne doit travailler qu'avec "une seule instance". C'est-à-dire la première fois que je l'attache à un graphique et que ça fonctionne. Si je le rattache ensuite, accidentellement ou intentionnellement, à un autre graphique, le deuxième rattachement devrait détecter qu'il est déjà en cours d'exécution et ne rien faire.

Laisser l'étiquette dans une variable globale ne fonctionnera probablement pas. Si j'ai deux EAs attachés et que je recompile son texte, il n'est pas clair lequel des deux fera son init en premier pour créer cette variable globale.

Qui peut suggérer quoi ? Avez-vous des idées sur la façon de procéder ?


Et si à l'initialisation d'ouvrir le fichier pour écrire, à la désinitialisation de le libérer. Logiquement, une nouvelle instance d'EA ne pourra pas ouvrir un fichier qui a été ouvert en écriture auparavant. Si, par exemple, après cinq itérations, nous obtenons systématiquement une erreur d'ouverture d'un fichier en écriture, cela signifie qu'une instance de l'EA est déjà ouverte.

 
exhumer:
Une nouvelle instance de l'EA ne sera pas en mesure d'ouvrir un fichier qui était précédemment ouvert en écriture.

après que le terminal ait planté et redémarré, le fichier sera disponible pour la première personne à l'ouvrir, pas pour la première personne à le réinitialiser :(

Une fois encore, je le répète : vous avez besoin d'un graphique spécifique - d'un conseiller expert spécifique.

 
ForexTools:

votre idée ne fonctionne pas.

Comment ça, ça ne marche pas ? Bien que ce soit une affirmation creuse.
Surtout que vous n'avez rien d'autre qu'une idée (et encore moins une "recette concrète")

.

Que puis-je penser de votre "solution" ? ;)

C'est exactement l'idée. Si vous n'avez pas suffisamment de connaissances pour comprendre comment le vérifier, écrivez-le. En fait, vous l'avez fait, mais vous l'avez écrit comme une affirmation. Au moins la remarque "qu'est-ce que je peux légiférer par votre "solution" ? ;)" ressemble exactement à une réclamation. Et ensuite, pour une raison quelconque, une série de banalités

"devrait" ne veut pas dire "va", "là" est "où" ? si "n'a pas marché"

- comment pouvez-vous donner des conseils sur des solutions non testées ?!

Écoutez, si on ne proposait que des solutions éprouvées, vous chercheriez encore des racines avec un bâton. À qui est ce problème, le mien ou le vôtre ? Pourquoi diable qualifier la suggestion d'une idée de recommandation d'une solution ?

De mon point de vue, l'énoncé de la question est le suivant : je vous donne une idée, vous la testez, si elle fonctionne, vous m'en informez, en guise de remerciement minimal.

P.S. Mec, tu aurais dû regarder dans un fichier chr par curiosité, puisque tu prétends être un pro du travail avec MT.

 
TheXpert:
Ensuite, il suffit de se présenter comme un casier et il n'y a pas de problème.
Pourquoi ne pas utiliser cette option, la plus simple ? Le Conseiller Expert crée un fichier de contrôle et vérifie si le fichier existe avant de le faire. Si le fichier du même nom existe déjà, le Conseiller Expert ne démarrera pas. Si l'EA sort correctement du graphique, il efface le fichier. Si un crash se produit, le fichier restant bloque le lancement de toute instance de l'EA et est supprimé manuellement afin de continuer à fonctionner.
 

Candid:

C'est le problème de qui, le mien ou le vôtre ? Pourquoi diable qualifieriez-vous votre suggestion d'idée de recommandation de solution ?

Parce que c'est exactement ce que j'ai demandé dans mon premier message - c'est pourquoi j'ai pris votre idée comme telle.

Vous semblez prétendre être un pro du travail avec MT.

c'est pourquoi je considère la validité de nombreuses "idées", même de DOTO, comme leur...... ;)

si je me trompe, écrivez un code EA qui ne fait rien d'autre que d'empêcher votre seconde copie de s'exécuter. vérifiez que cela fonctionne vraiment lorsque vous recompilez et redémarrez le terminal et postez le code ici - tout se mettra en place ;)

 
granit77:
Lorsqu'un crash se produit, le fichier restant est bloqué par.....

il y a deux graphiques, l'un d'eux a une EA qui fonctionne et qui détient le fichier, et le second a une copie de l'EA qui ne fonctionne pas à cause d'un fichier verrouillé.

le terminal est en panne ou fermé.

(re)lancez le terminal. sur celui-ci deux EAs commencent à vérifier pour lire le fichier. y a-t-il une garantie que le vrai premier va le saisir en premier et non celui qui a été bloqué la dernière fois ? :(

Pour la troisième fois, je le répète : j'ai besoin d'un lien entre CHART et EXPERT, mais pas de bloquer un Conseiller Expert par un autre.

 
granit77:
Pourquoi ne pas utiliser cette option, la plus simple ?
Non, non, c'est seulement si l'instance à exécuter n'a pas d'importance.