Exemple d’utilisation de DRAWTEXT :
Dans cet exemple, j’utilise les informations générées par l’indicateur Forex Fisher Moving Average pour différencier sur le graphique des potentiels mouvements d’achat et de vente :

period = 30
MA1period = 20
MaxH = highest[period](high)
MinL = lowest[period](low)
price = customclose
if(barindex>period) then
Value = 0.33*2*((price-MinL)/(MaxH-MinL)-0.5) + 0.67*Value[1]
Fish = 0.5*LOG((1+Value)/(1-Value))+0.5*Fish[1]
MA1 = Average[MA1period](Fish)
endif
// text conditions :
if Fish>MA1 then
DRAWTEXT("│", barindex, average[period*2](low), Dialog, Bold, 12) COLOURED(10,255,10,255)
endif
if Fish<MA1 then
DRAWTEXT("│", barindex, average[period*2](high), Dialog, Bold, 12) COLOURED(255,10,10,255)
endif
RETURN
Si la variable Fish se situe au dessus de la MA1 alors je crée un texte avec le caractère ascii | (barre verticale), placé sur le graphique au barindex courant et situé sur le prix relatif à une moyenne mobile de period*2 pour obtenir quelque chose de lisse et vice-versa en modifiant la couleur pour les potentiels zones de vente.
En ajoutant un filtre pour tester si le prix se situe dessus ou dessous de cette zone de vente, j’ajoute une instruction affichant des barres grises quand les conditions ne sont pas réunis :

if Fish>MA1 and close>=average[period*2](low) then
DRAWTEXT("│", barindex, average[period*2](low), Dialog, Bold, 12) COLOURED(10,255,10,255)
elsif Fish<MA1 and close<=average[period*2](low) then
DRAWTEXT("│", barindex, average[period*2](high), Dialog, Bold, 12) COLOURED(255,10,10,255)
else
DRAWTEXT("||", barindex, average[period*2](high), Dialog, Bold, 12) COLOURED(224,224,224)
endif