Bonjour,
J’ai créé un indicateur qui dessine une ligne sur le graphique de prix correspondant au range moyen daily, ce qui me permet d’avoir une idée du potentiel d’un titre pour la séance. J’aimerais ajouter un libellé sur cette ligne, comme cela existe par défaut pour les lignes horizontales dynamiques qui indiquent le plus haut, le plus bas, la clôture de la veille, etc. (voir capture d’écran). Je sais qu’il faut utiliser la fonction DRAWTEXT, mais je n’arrive pas à paramétrer les coordonnées x et y pour que le texte s’affiche au-dessus et au début de la ligne (voir capture d’écran). Quelqu’un sait-il comment faire ? Merci d’avance pour votre aide.
// indication du range moyen sous forme de ligne sur le graphique
DEFPARAM CALCULATEONLASTBARS = 200
DEFPARAM DRAWONLASTBARONLY = true
// Calcul du range daily moyen en % "RM30DPct"
// c'est la SMA à 30 jours du range daily en %
RangeDailyPercent = 0
FOR i=0 TO 29 DO
RangeDailyPercent = (((DHigh(i) - DLow(i)) / DLow(i)) * 100) + RangeDailyPercent
NEXT
RM30DPct = RangeDailyPercent / 30
// Ordonnées pour la ligne horizontale à dessiner
y1 = DLow(0) + (DLow(0) * RM30DPct/100)
y2 = DHigh(0) - (DHigh(0) * RM30DPct/100)
// Conditions et dessins
IF Close > DHigh(1) THEN
DRAWHLINE(y1) COLOURED(0,0,0) STYLE(dottedline)
ELSIF Close < DLow(1) THEN
DRAWHLINE(y2) COLOURED(0,0,0) STYLE(dottedline)
ENDIF
RETURN
Bonjour DavidZ
Vous pouvez utiliser la commande ‘Anchor’ avec ‘DrawText’ , mise à jour dans PRT V11 je crois.
Cela permet au texte d’être ancré à une position dans la fenêtre de l’indicateur. Vous devrez probablement modifier les valeurs de décalage pour positionner correctement votre étiquette.
New drawing instructions: anchoring in pixels
Salutations
// indication du range moyen sous forme de ligne sur le graphique
DEFPARAM CALCULATEONLASTBARS = 200
DEFPARAM DRAWONLASTBARONLY = true
// Calcul du range daily moyen en % "RM30DPct"
// c'est la SMA à 30 jours du range daily en %
RangeDailyPercent = 0
FOR i=0 TO 29 DO
RangeDailyPercent = (((DHigh(i) - DLow(i)) / DLow(i)) * 100) + RangeDailyPercent
NEXT
RM30DPct = RangeDailyPercent / 30
// Ordonnées pour la ligne horizontale à dessiner
y1 = DLow(0) + (DLow(0) * RM30DPct/100)
y2 = DHigh(0) - (DHigh(0) * RM30DPct/100)
// Conditions et dessins
IF Close > DHigh(1) THEN
DRAWHLINE(y1) COLOURED(0,0,0) STYLE(dottedline)
DRAWTEXT(" y1 Close > DHigh(1)",50,y1+100)anchor(bottomLeft,xShift,value)coloured("red")
ELSIF Close < DLow(1) THEN
DRAWHLINE(y2) COLOURED(0,0,0) STYLE(dottedline)
DRAWTEXT(" y2 Close > DHigh(1)",50,y2+100)anchor(bottomLeft,xShift,value)coloured("red")
ENDIF
RETURN
Bonjour, ça marche très bien. Merci beaucoup !