Répondre

Affichage d'un texte sur un graphique

4 réponses

Paul

Abonné, bbp_participant, communauté, 7 réponses.

Visiter le profil

il y a 10 ans #111323

Voici un code permettant d'afficher jusqu'à 6 lignes de texte sur un graphique, ce qui est très pratique pour afficher des variables lors de tests en direct d'EAs.

Copiez et collez les lignes ObjectCreate et les lignes ObjectSetText correspondantes dans le champ Commande de l'action personnalisée.
Par exemple, si vous n'avez besoin que de 2 lignes de texte, copiez et collez ObjectCreate("Line1" et 2, et ObjectSetText("Line1 et 2, ce qui donne 4 commandes d'actions personnalisées.

 

Personnalisez les données suivantes dans les lignes ObjectSetText :
Mon tableau" est un tableau de texte pour les données que vous souhaitez afficher.
ma variable" est la variable dont vous souhaitez afficher les données.
Veillez à laisser la syntaxe des autres lignes exactement comme indiqué.

 

La capture d'écran ci-jointe devrait permettre d'y voir plus clair.

 

Santé,

Paul

 

ObjectCreate("Line1", OBJ_LABEL, 0, 0 , 0) ; ObjectSet("Line1", OBJPROP_CORNER, 0) ; ObjectSet("Line1", OBJPROP_XDISTANCE, 10) ; ObjectSet("Line1", OBJPROP_YDISTANCE, 130) ;

 

ObjectCreate("Line2", OBJ_LABEL, 0, 0 , 0) ; ObjectSet("Line2", OBJPROP_CORNER, 0) ; ObjectSet("Line2", OBJPROP_XDISTANCE, 10) ; ObjectSet("Line2", OBJPROP_YDISTANCE, 150) ;

 

ObjectCreate("Line3", OBJ_LABEL, 0, 0 , 0) ; ObjectSet("Line3", OBJPROP_CORNER, 0) ; ObjectSet("Line3", OBJPROP_XDISTANCE, 10) ; ObjectSet("Line3", OBJPROP_YDISTANCE, 170) ;

 

ObjectCreate("Line4", OBJ_LABEL, 0, 0 , 0) ; ObjectSet("Line4", OBJPROP_CORNER, 0) ; ObjectSet("Line4", OBJPROP_XDISTANCE, 10) ; ObjectSet("Line4", OBJPROP_YDISTANCE, 190) ;

 

ObjectCreate("Line5", OBJ_LABEL, 0, 0 , 0) ; ObjectSet("Line5", OBJPROP_CORNER, 0) ; ObjectSet("Line5", OBJPROP_XDISTANCE, 10) ; ObjectSet("Line5", OBJPROP_YDISTANCE, 210) ;

 

ObjectCreate("Line6", OBJ_LABEL, 0, 0 , 0) ; ObjectSet("Line6", OBJPROP_CORNER, 0) ; ObjectSet("Line6", OBJPROP_XDISTANCE, 10) ; ObjectSet("Line6", OBJPROP_YDISTANCE, 230) ;

 

ObjectSetText("Line1", "My Lable 1 : " + my variable 1, 10, "Arial", White) ;

 

ObjectSetText("Line2", "My Lable 2 : " + my variable 2, 10, "Arial", White) ;

 

ObjectSetText("Line3", "My Lable 3 : " + my variable 3, 10, "Arial", White) ;

 

ObjectSetText("Line4", "My Lable 4 : " + my variable 4, 10, "Arial", White) ;

 

ObjectSetText("Line5", "My Lable 5 : " + my variable 5, 10, "Arial", White) ;

 

ObjectSetText("Line6", "My Lable 6 : " + my variable 6, 10, "Arial", White) ;

Fichier : exemple.JPGexemple.JPG

0

JS17

Client, bbp_participant, communauté, 73 réponses.

Visiter le profil

il y a 10 ans #122023

Très bon article, merci beaucoup 🙂 .

 

Juste une petite question si je peux me permettre, votre post dit jusqu'à 6 lignes, est-ce que 6 lignes est une limite dans le langage de programmation ?

0

Mark Fric

Administrateur, sq-ultimate, 2 réponses.

Visiter le profil

il y a 10 ans #122090

non, il n'y a pas de limite au nombre d'objets texte que vous pouvez afficher.

 

Il suffit de créer d'autres objets texte à l'aide de la fonction ObjectCreate(), puis de définir leur valeur à l'aide de la fonction ObjectSetText().

 

Marque
StratégieArchitecte de Quantités

0

Brian Caudill

Client, bbp_participant, communauté, 0 réponses.

Visiter le profil

il y a 5 ans #234676

Voici un moyen simple d'ajouter autant d'objets que vous le souhaitez au graphique

int n=8;//changer ce nombre pour le nombre d'objets que vous voulez créer
int distance_horizontal=10;//la position horizontale
int distance_between_verticle=40;//la distance entre chaque objet
int top_offset = 100 ; /à quelle distance du sommet voulez-vous commencer à imprimer les objets (si vous ne voulez pas qu'ils soient tout contre le sommet du graphique).
int text_color= clrAntiqueWhite ; //la couleur que vous voulez pour le texte dans les cases
for(int i=0;i<n;i++){
ObjectCreate("Line "+i, OBJ_LABEL, 0, 0 , 0) ;
ObjectSet("Ligne "+i, OBJPROP_CORNER, 0) ;
ObjectSet("Ligne "+i, OBJPROP_XDISTANCE, distance_horizontale) ;
ObjectSet("Line "+i, OBJPROP_YDISTANCE, (distance_between_verticle * i)+ top_offset) ;
ObjectSetText("Line "+i, "My Lable "+i, 10, "Arial", White) ;
}

0

stickytrader

Abonné, bbp_participant, 38 réponses.

Visiter le profil

Il y a 4 ans #249063

Merci d'avoir partagé cette fonction personnalisée. Existe-t-il une solution pour afficher un texte sur le graphique pour le back testing ? par exemple, au lieu de dessiner une flèche sur le graphique, imprimer "Buy Signal" sur le back test.

0

Affichage de 4 réponses de 1 à 4 (sur un total de 4)