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

 

J'ai besoin de faire fonctionner l'EA avec seulement "une instance". C'est-à-dire que je l'attache à n'importe quel graphique pour la première fois et cela fonctionne. Si je le rattache ensuite, accidentellement ou intentionnellement, à un autre graphique, le deuxième rattachement devrait reconnaître qu'il est déjà en cours 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 fonctionnera en premier avec son init où cette variable globale pourrait être créée.

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

 

La recompilation est une solution, mais que faire en cas de redémarrage du terminal ?

Et les variables globales sont mauvaises, car si le terminal se plante, alors qu'il a préalablement écrit les variables globales dans le fichier, alors tout se plantera.

Vous pouvez aussi garder la main sur quelque chose.

 

TheXpert:

.... tout

c'est la question :((
 
mais juste pour ne pas enchaîner deux fois l'EA sur le graphique, n'est-ce pas faisable ?
 
Techno:
mais il ne faut pas lier deux fois l'EA au graphique, est-ce impossible ?

J'ai besoin d'une GARANTIE que ni moi ni personne d'autre ne le fera accidentellement ou délibérément ;)

Imaginez un peu : l'EA reçoit des commandes "externes" pour ouvrir des ordres. Même une copie supplémentaire est (théoriquement) un ordre supplémentaire.

 
ForexTools:
c'est la question :((

Non, ce sont les détails de l'implémentation, le problème principal est le redémarrage et la recompilation.

Oh, il y a un sujet, il faut juste vérifier -- est-ce que l'EA est restauré lors du redémarrage et de la recompilation, si avant il se plantait, par exemple, sur la division par 0 ?

Sinon, c'est la voie à suivre.

 
TheXpert:

Non, c'est un détail d'implémentation, le problème principal est le rechargement et la recompilation.


La recompilation ne devrait pas être le problème.
 
PapaYozh:

Le problème ne devrait pas se poser lors de la recompilation.

comment cela se fait-il ? disons que nous avons trois copies de l'EA (sans aucune astuce - juste des copies propres). vous l'avez recompilé. la "commande" est allée dans le terminal. les EAs ont commencé à s'initialiser.... dans quel ordre doivent-ils être réinitialisés ?
 
ForexTools:

disons que nous avons trois copies de l'EA (sans aucune astuce - juste des copies propres). vous l'avez recompilé. la "commande" est allée dans le terminal. les EAs ont commencé à s'initialiser.... dans quel ordre doivent-ils être réinitialisés ?
puis il s'avère que l'un d'entre eux faisait du commerce, mais après le redémarrage, le droit d'être le leader sera donné à l'autre et le premier perdra ce droit, alors quelle différence cela fait-il s'ils sont les mêmes ? l'essentiel est que l'un ait fait du commerce. Utilisez une variable globale et c'est tout. Dans la fonction inite écrire une espérance aléatoire pour chaque EA à sleep(), celui qui se réveille en premier, compte la variable globale et la supprime, à deinit la restaure à nouveau. Le premier à compter et à supprimer fonctionnera. En résumé, vous générez un nombre aléatoire pour sleep()
 
ForexTools:

disons que nous avons trois copies de l'EA (sans aucune astuce - juste des copies propres). vous l'avez recompilé. la "commande" est allée dans le terminal. les EAs ont commencé à s'initialiser.... dans quel ordre doivent-ils être réinitialisés ?

Et vous n'excluez pas d'avoir les mêmes graphiques ? C'est à dire que l'EA qui démarre sur 2 graphiques avec le même symbole et la même période doit être traité ?
 
Techno:
Il s'avère ensuite que l'un d'entre eux a échangé, mais après avoir rechargé, l'autre obtiendra le droit de plomb et le premier perdra ce droit, et quelle différence cela fait-il s'ils sont identiques ? Utilisez une variable globale et c'est tout. Dans la fonction inite écrivez une espérance aléatoire pour chaque EA sleep(), celui qui se réveille en premier, compte la variable globale et la supprime, à deinit restaure à nouveau. Le premier à compter et à supprimer fonctionnera. En résumé, vous générez un nombre aléatoire pour sleep()

Au fait, oui. Si 2 instances d'EA sont inacceptables, alors peu importe laquelle commence en premier.