Je suppose que tu ne veux bougie=1 que quand il faut compter, du coup les lignes 6-12 gagneraient à être modifiées ainsi, pour que bougie=-1 aussi quand condA est fausse (sinon le dernier état connu de bougie, donc aussi bien -1 que +1, n’était pas modifié quand condA passait de vraie à fausse):
1
2
3
4
5
IfCondAandClose>Openthen
bougie=1
else
bougie=-1
endif
Ensuite, si cptH est pour ton compte de bougies consécutives, c’est bon. D’ailleurs, à moins d’avoir besoin de bougie =1 ou -1 pour un autre usage, ça pouvait même être inséré directement dans la boucle précédente sans avoir besoin de la variable bougie.
A noter que là c’est juste avec close>open, pas avec close>close[1], au cas où il y ait besoin de revoir cette partie selon qu’on définisse “croissante” par rapport à l’open ou par rapport à la close précédente.
Enfin, je ne sais pas ce qu’est PH créé en soustrayant 2 à cptH[1], soit ce n’est pas lié à la requête, soit c’est une partie pour laquelle tu espères recevoir une suggestion de modification reliée à la partie “les additioner” de la requête (donc avoir un autre compte au-delà des cptH?). Si besoin d’intervenir dans cette partie, il faudrait probablemente détailler à quoi PH defrait correspondre.
Ok, si la question est d’additioner les PH tels que déjà calculés, je pense voir ce qui a pu bloquer au moment d’essayer de le faire: ton PH n’existe que si cptH[1] existe, donc au départ il ne peut pas exister en barindex=0 et c’est sans doute pour ça que ça ne te l’a pas affiché si tu as déjà essayé sans vérifier le barindex. Tu pourras obtenir le cumul des PH avec: