Bonsoir à tous,
Mon code ignore totalement une la condition CV3CRE d’une boucle IF:
IF CA1CRE THEN
IF(NOT CV2CRE AND CV3CRE = 1 AND timeEnterBefore AND timeEnterAfter AND not daysForbiddenEntry) THEN
BUY 1 CONTRACT AT MARKET
CV3CRE = 0
ELSIF(CV2CRE OR CV3CRE = 0 OR NOT timeEnterBefore OR NOT timeEnterAfter OR daysForbiddenEntry) THEN
CV3CRE = 0
ENDIF
ENDIF
J’ai tracé le graphique de cette condition. Résultat, même lorsque CV3CRE = 0, le code passe à la ligne “BUY 1 CONTRACT”.
CV3CRE peut prendre deux valeurs uniquement : 0 ou 1.
Je suis aussi interpelé par le fait que PROORDER ne fait pas automatiquement les tabulations de ma boucle IF. Y a-t-il un lien?
Quelle est la condition qui passe ta variable CV3CVE à vrai? Attention à bien avoir en tête que lesquelles conditions ne sont testées qu’à la fin de bougie et reste valable donc toute une barre à minima.
Le code sert à passer CV3CRE à 1 si cela fait au moins 60 minutes qu’il est à 0.
IF NOT CV3CRE THEN
IF(HOUR - HTradeCRE > 1) THEN
CV3CRE = 1
ELSIF(HOUR = HTradeCRE AND MTradeCRE - MINUTE > 60 ) THEN
CV3CRE = 1
ELSIF(60 - MTradeCRE + MINUTE > 60 ) THEN
CV3CRE = 1
ENDIF
ENDIF
Avec HTradeCRE et HTradeCRE, heure et minutes du dernier trade, donc du dernier passage à 0
Avant d’aller plus loin dans la compréhension de ton code, as-tu essayé de “grapher” la ligne 2 du premier code que tu as posté ?
[scode] graph NOT CV2CRE AND CV3CRE = 1 AND timeEnterBefore AND timeEnterAfter AND not daysForbiddenEntry [/scode]
Tu auras une vision plus claire sur ton graphique, et tu pourras ensuite débugger chacune des variables pour voir laquelle est “vraie” alors qu’elle ne devrait pas l’être.
Bonjour Nicolas,
Merci pour les conseils, je me suis attelé à la vérification de toutes mes variables.
Le problème venait d’une variable positionner dans le mauvais “IF”. J’ai des “IF” imbriqué dans d’autre “IF”.
Le code fonctionne maintenant très bien 😀