Affecter une valeur booléenne à une variable et la conserver jusqu'à ce qu'elle soit à nouveau modifiée
6 réponses
AgatheBauer
Il y a 7 ans #116329
J'utilise un indicateur commercial qui ne prend pas en charge les alarmes, c'est pourquoi je l'ai reprogrammé. C'est en fait assez simple : Une moyenne mobile avec 3 niveaux d'ATR sont tracés au dessus et en dessous (voir capture d'écran). Je veux obtenir un signal lorsque le Ask est supérieur ou égal à MA + 3 fois ATR ou que le Bid est inférieur à MA - 3 fois ATR. Cependant, pour éviter d'obtenir un signal à chaque tick lorsque les conditions sont remplies, je veux mettre une variable booléenne à false après la première détection du signal et n'autoriser le signal à nouveau qu'après la fermeture d'une barre à l'intérieur des "frontières", la variable booléenne est réinitialisée à "true".
Pour les besoins du backtesting, j'ai choisi +/- 1 fois l'ATR pour obtenir plus de signaux. Au milieu de la capture d'écran, vous pouvez facilement repérer une zone où des signaux courts (rouge) sont tracés alors qu'ils ne devraient pas être autorisés par la fonction "reset" (verte) qui réinitialise la var bool à true. Comment cela se fait-il ?
Si quelqu'un a la gentillesse de vérifier, j'ai également joint le fichier sqw.
Une dernière question : Existe-t-il un moyen de faire apparaître les valeurs des variables directement sur le graphique à des fins de débogage ?
tomas262
Il y a 7 ans #141557
tomas262
Il y a 7 ans #141586
AgatheBauer
Il y a 7 ans #141592
J'ai exporté vers un indicateur de signal.
AgatheBauer
Il y a 7 ans #141609
Je n'ai toujours pas trouvé mon erreur.
tomas262
Il y a 7 ans #141679
Bonjour,
vous pouvez essayer de l'exporter en tant que conseiller expert et voyez comment cela fonctionne pour vous. Il ne peut toujours que dessiner une flèche vers le haut ou vers le bas, sans aucune négociation. Il semble qu'il y ait une différence dans l'évaluation du code lorsqu'il est exporté en tant qu'indicateur de signal.
AgatheBauer
Il y a 7 ans #141810
Je vous remercie ! Je vais le corriger à la main.
Affichage de 6 réponses de 1 à 6 (sur un total de 6)