Bonjour a tous,
Pourriez vous m’aider à coder ceci :
Je cherche à créer une condition de vente : Condvente1Ok
- On identifie le plus haut et le plus bas des 30 dernières bougies. Le plus haut sera nommer HAUT et le plus bas sera BAS.
- La bougie de BAS doit se trouver après la bougie de HAUT
- Les clôtures des 5 bougies précédente à la bougie de HAUT sont inférieures à la clôture de la bougie de HAUT
- La clôture actuelle croise à la hausse la clôture de la bougie BAS + 60% de la distance entre HAUT et BAS.
Je vous remercie par avance.
Je pense avoir correctement résumé en code les conditions que tu énonces, à vérifier :
haut = highest[30](high)
bas = lowest[30](low)
if haut<>haut[1] then
hautbar = barindex
endif
if bas<>bas[1] then
basbar = barindex
basclose = close
endif
test = basbar>hautbar and summation[5](close<haut)[max(1,barindex-hautbar)] and close crosses over basclose+(haut-bas)*0.6
return test
Les variables “haut” et “bas” sont basées sur les High et Low.
Bonjour Nicolas,
Merci pour ton aide.
Je viens de tester, et cela semble bon.
Par contre le screener me renvoi une valeur différente à chaque fois que la condition est vrai. Cela ne devrait-il pas être 1 pour vrai et 0 pour faux ?
De plus je n’arrive pas à créer le code pour la condition inverse :
- On identifie le plus haut et le plus bas des 30 dernières bougies. Le plus haut sera nommer HAUT et le plus bas sera BAS.
- La bougie de HAUT doit se trouver après la bougie de BAS
- Les clôtures des 5 bougies précédente à la bougie de BAS sont Supérieures à la clôture de la bougie de BAS.
- La clôture actuelle croise à la baisse la clôture de la bougie HAUT – 60% de la distance entre HAUT et BAS.
ligne = 0
haut = highest[40](high)
bas = lowest[40](low)
if haut<>haut[1] then
hautbar = barindex
endif
if bas<>bas[1] then
basbar = barindex
basclose = close
endif
if basbar>hautbar and summation[3](close<haut)[max(1,barindex-hautbar)] and close crosses over basclose+(haut-bas)*0.6 and close < haut then
test = -1
elsif basbar<hautbar and summation[3](close>bas)[max(1,barindex-basbar)] and close crosses under basclose-(haut-bas)*0.6 and close > bas then
test = +1
endif
return test, ligne
Je comprends pas…
Merci encore 🙂
+1 n’est pas une valeur numérique valable, +1 c’est 1 tout simplement.
en effet, mais je ne crois pas que le problème vienne de là puisque le code suivant ne me renvoi aucun signal :
test =0
haut = highest[20](high)
bas = lowest[20](low)
if haut<>haut[1] then
hautbar = barindex
endif
if bas<>bas[1] then
basbar = barindex
basclose = close
endif
if basbar>hautbar and summation[3](close<haut)[max(1,barindex-hautbar)] and close crosses over basclose+(haut-bas)*0.1 then
test = -1
elsif basbar<hautbar and summation[3](close>bas)[max(1,barindex-basbar)] and close crosses under basclose-(haut-bas)*0.1 then
test = 1
endif
return test
Pourquoi ne pas plutôt essayer de créer un screener séparé pour la condition inverse, cela te permettrait de bien comprendre la logique. Tu pourras ensuite compiler les deux dans le même screener si tu veux.