j’ai constaté une petite erreur sur la documentation sur la page 20/47
1
2
3
4
5
6
7
8
9
10
11
12
13
line=0
Increase=(Close-Close[1])>0
i=0
WHILEIncrease[i]DO
i=i+1
// Si high - low, on sort de la boucle pour éviter une division par zéro.
IF(high-low)=0then
BREAK
ENDIF
osc=(close–low)/(high–low)
line=AVERAGE[i](osc)
WEND
RETURNline
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 :
1
2
3
4
5
6
7
8
9
10
11
WHILEIncrease[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 🙂 ,
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 ?
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.