4801Participant
Junior
Bonjour à tous,
Je bloque sur un code d’ indicateur :
Repérer quand un HIGH est plus haut que les HIGH des 2 bars précédentes ainsi que des 2 HIGH des bars qui le suivent. Autrement dit pour 5 bars ( 1,2,3,4,5) le HIGH de la 3 est plus haut que les HIGH des bars 1,2,4,5 .
Même recherche pour le LOW le plus bas par rapport aux 2 bars précédentes ainsi que pour les 2 low des 2 bars qui le suivent.
// sur 5 bougies,le HIGH de celle du milieu est supérieur aux HIGH des bars qui l’ encadrent
A = HIGH[2] > HIGH [1] AND HIGH[2] > HIGH
B = HIGH[2] > HIGH [3] AND HIGH[2] > HIGH[4]
IF A AND B THEN
SOMMET = HIGH[2]
ENDIF
// sur 5 bougies,le LOW de celle du milieu est inférieure aux LOW des bars qui l’ encadrent
C = LOW[2] < LOW [1] AND LOW[2] < LOW
D = LOW[2] < LOW [3] AND LOW[2] < LOW[4]
IF C AND D THEN
CREUX = LOW[2]
ENDIF
DRAWPOINT (SOMMET,2)COLOURED(0,0,255)
DRAWPOINT (CREUX,2) COLOURED(255,0,0)
RETURN
Merci et bonne soirée à tous.
tu as essayé avec min ou max
Bonsoir,
Dans l’usage de drawpoint il manque la coordonnée horizontale barindex[2], et son placement serait plutôt dans les blocs if … endif aussi, à tester:
// sur 5 bougies,le HIGH de celle du milieu est supérieur aux HIGH des bars qui l’ encadrent
A = HIGH[2] > HIGH [1] AND HIGH[2] > HIGH
B = HIGH[2] > HIGH [3] AND HIGH[2] > HIGH[4]
IF A AND B THEN
SOMMET = HIGH[2]
DRAWPOINT(barindex[2],SOMMET,2)COLOURED(0,0,255)
ENDIF
// sur 5 bougies,le LOW de celle du milieu est inférieure aux LOW des bars qui l’ encadrent
C = LOW[2] < LOW [1] AND LOW[2] < LOW
D = LOW[2] < LOW [3] AND LOW[2] < LOW[4]
IF C AND D THEN
CREUX = LOW[2]
DRAWPOINT(barindex[2],CREUX,2) COLOURED(255,0,0)
ENDIF
RETURN
Autrement dit pour 5 bars ( 1,2,3,4,5) le HIGH de la 3 est plus haut que les HIGH des bars 1,2,4,5 .
Il suffit de traduire la phrase littéralement…
n étant le nombre de bars avant et après :
Sommet = High[n]=Highest[2*n+1](high) // avec n=2 cela fait 2*n+1 => 5 et High[n] n étant la bar du milieu, l’avant avant dernière avec n=2
de même,
Creux = Low[n]=lowest[2*n+1](low)
Si l’on veut un nombre de bar à gauche (ng) différent du nombre de bar à droite (nd), c’est à peu près pareil :
Sommet = High[nd]=Highest[ng+nd+1](high)
Creux = Low[nd]=lowest[ng+nd+1](low)
JSParticipant
Senior
Vous pouvez également l’afficher de cette façon :
If High[2]=Highest[2*2+1](High) then
DrawPoint(BarIndex[2],High[2],2)Coloured("Green")
EndIf
If Low[2]=Lowest[2*2+1](Low) then
DrawPoint(BarIndex[2],Low[2],2)Coloured("Red")
EndIf
Return
4801Participant
Junior
Merci à tous . C’ est OK pour moi ça fonctionne, j’ avais oublié que pour tracer 1 point il fallait 2 coordonnées. Dans mon cas : barindex[2] et sommet ou creux.
Bonne journée à tous.