Bonjour au moérateur,
j’ai constaté une petite erreur sur la documentation sur la page 20/47
line = 0
Increase = (Close - Close[1]) > 0
i = 0
WHILE Increase[i] DO
i = i + 1
// Si high - low, on sort de la boucle pour éviter une division par zéro.
IF (high-low) = 0 then
BREAK
ENDIF
osc = (close – low) / (high – low)
line = AVERAGE [i] (osc)
WEND
RETURN line
on utilise le mot line comme une variable mais je vois que c’est une fonction à mon avis ça doit être un problème de mise à jour je tenais à le signaler pour les débutants comme moi
En gros si je comprends bien le IF ici il nous sert juste éviter la division par 0 mais il n’arrête pas la boucle while ?
D’où dans l’hypothèse ou High et le Low sont toujours différents, on pourrez écrire de cette façon :
WHILE Increase[i] DO
i = i + 1
osc = (close - low) / (high - low)
lines = AVERAGE [i] (osc)
WEND
// est ce que la valeur suivante peut être égale à 0 ?, si OUI alors la boucle ne peut pas démarrer ?
Increase[0]
// même question pour l'AVERAGE lorsque le i = 0 ?
lines = AVERAGE [0] (osc)
quelqu’un pourrait me traduire ce langage simple en langage courant 🙂 ,
Merci d’avance pour vos lumières
Je me réponds à moi-même 🙂
la première valeur de “i” dans la boucle while sera = 1, donc il est tout à fait possible de calculer une moyenne d’une période
et la valeur osc cette valeur va oscillé entre 0 et 1 max, mais je ne vois pas l’utilité de ce calcul, peut être est-ce juste pour montrer la fonction du While ?
Bonjour,
Contrairement a FOR qui repete un calcul sur une periode fixe, WHILE est utilise pour continuer le calcul tant que Increase > 0 (cela peut arriver sur plusieurs periodes d’une maniere irreguliere)
Donc la variable finale va osciller entre 0 et la moyennes des osc pour lequels Increase est successivement positif.
Merci, très bonne explication 😉