Bonjour à tous.
Je viens ici demander de l’aide. J’ai besoin de tracer une ligne de résistance entre le points A & B. (voir graphe “Exercice”) Mais il se trouve que le point B , détecté (alors que je croyais détenir plutôt le premier point A) en premier EST LE “PLUS HAUT DES plus hauts” sur la période choisie. J’ai donc besoin de trouver mon vrai point A qui existe bien sur ce graphique, mais mon programme pour le détecter ne l’affiche pas. (J’ai raisonné que ce serait le plus des plus sur une autre période mais, il doit être inférieur au plus haut des hauts du point B) Je n’ai aucun message d’erreur!
Mais rien ne se pas lorsque je le valide. Bien vouloir corriger s’il vous plaît.
Ci_joint le programme en 3 parties et la section concernée est entourée.
MERCI D’AVANCE.
GENTRY
Pour accroitre la probabilité d’attirer des réponses d’autres forumeurs, on peut leur rendre la tâche de lecture plus facile grâce aux fonctionnalités mises en place exprès, telles que l’insertion de code prt dans le corps du message, joliment formaté avec le bouton adéquat “insert prt code”, cf image jointe pour le localiser si besoin
Merci de poster le code en version texte plutôt qu’en image, ce sera plus simple pour le copier/coller et pour comprendre ce que tu souhaites réaliser 😀
Bonjour à tous.
Je viens ici demander de l’aide. J’ai besoin de tracer une ligne de résistance entre le points A & B. (voir graphe “Exercice”) Mais il se trouve que le point B , détecté (alors que je croyais détenir plutôt le premier point A) en premier EST LE “PLUS HAUT DES plus hauts” sur la période choisie. J’ai donc besoin de trouver mon vrai point A qui existe bien sur ce graphique, mais mon programme pour le détecter ne l’affiche pas. (J’ai raisonné que ce serait le plus des plus sur une autre période mais, il doit être inférieur au plus haut des hauts du point B) Je n’ai aucun message d’erreur!
Mais rien ne se pas lorsque je le valide. Bien vouloir corriger s’il vous plaît.
Ci_joint le programme en 3 parties et la section concernée est entourée.
MERCI D’AVANCE.
GENTRY
//D'abord Recherche des points A et B du support de coordonées respectives x1y1 et x2y2. A sera recherché sur les 70 drenières périodes et B sur les 25.
DEFPARAM drawonlastbaronly=true
y1=lowest[70](low)
y2=lowest[25](low)
y3=highest[25](high)
y4=highest[70](high)
//Coordonée x1 du Point A
//Boucle 1 pour rechercher x1 et y1
for i=70 downto 0 do
if low[i]=y1 then
x1=barindex[i]
drawtext("x1,y1", barindex[i],low[i])
break
endif
next
//Coordonée x2 du point B
for i=25 downto 0 do
if low[i]=y2 then
x2=barindex[i]
drawtext("x2,y2", barindex[i], low[i])
break
endif
next
//Ensuite, trouver les points C & D de la résistance de coordonnées respectives x3 y3 et x4 y4.
//Coordonée x3 du point C.
for i=25 downto 0 do
if high[i]=y3 then
x3=barindex[i]
drawtext("x3,y3", barindex[i], high[i])
break
endif
next
//Coordonée x4 du Point D
for i=0 to 70 do
if high[i]=y4 then
if y4<y3 then
x4=barindex[i]
drawtext("x4,y4",barindex[i], high[i])
break
else
x4=undefined
endif
endif
next
//Traçage de la ligne de tendace inf.
drawline(x1,y1, x2, y2) coloured (0,255,0)
return^l
Le problème vient du fait que tu testes dans le passé une valeur du présent. A l’instant où tu lances tes boucles, le plus haut des 70 dernières périodes est forcément plus haut que celui des 25 dernières donc ton test à la ligne 45 ne peut fonctionner.
Merci Nicolas pour ton observation.
J’ai corrigé et ça marche. (voir modification et graphique)
//ce programme va détecter des coordonnées graphiques pour tracer des lignes de tendance
//D'abord Recherche des points A et B du support de coordonées respectives x1y1 et x2y2. A sera recherché sur les 70 drenières périodes et B sur les 25.
DEFPARAM drawonlastbaronly=true
y1=lowest[70](low)
y2=lowest[25](low)
y3=highest[70](high)
y4=highest[25](high)
//Coordonnée x1 du Point A
//Boucle 1 pour rechercher x1 et y1
for i=70 downto 0 do
if low[i]=y1 then
x1=barindex[i]
drawtext("x1,y1", barindex[i],low[i])
break
endif
next
//Coordonnées x2 du point B
for i=25 downto 0 do
if low[i]=y2 then
x2=barindex[i]
drawtext("x2,y2", barindex[i], low[i])
break
endif
next
//Ensuite, trouver les points C & D de la résistance de coordonnées respectives x3 y3 et x4 y4.
//Coordonée x3 du point C.
for i=25 to 70 do
if high[i]=y3 then
x3=barindex[i]
drawtext("x3,y3", barindex[i], high[i])
break
endif
next
//Coordonnée x4 du Point D
for i=0 to 25 do
if high[i]=y4 then
x4=barindex[i]
drawtext("x4,y4",barindex[i], high[i])
break
endif
next
//Traçage de la ligne de tendance inf.
drawline(x1,y1, x2, y2) coloured (0,255,0)
//Traçage de la ligne de tendance sup
drawline(x4,y4, x3, y3) coloured (255,0,0)
return
che: voir code ci_joint et un graphique correspondant.
GENTRY
@Nicolas
Bonjour, je suis novice dans le codage. Serait-il possible de tracer un rectangle à la place d’une ligne (ou deux lignes parallèles, je ne sais pas…) ?
Merci beaucoup de votre aide
Un rectangle resterait avec des bords horizontaux et verticaux, l’instruction “drawrectangle” ne les dessine pas inclinés, il faut passer par ton autre suggestion: les 2 lignes parallèles. Voici une proposition de modification du code (lignes ajoutées 6, 7, 56, 59) avec possibilité de changer la valeur de “decalage” en points dans la ligne 6 pour customiser l’espace entre les parallèles:
//ce programme va détecter des coordonnées graphiques pour tracer des lignes de tendance
//D'abord Recherche des points A et B du support de coordonées respectives x1y1 et x2y2. A sera recherché sur les 70 drenières périodes et B sur les 25.
DEFPARAM drawonlastbaronly=true
decalage=5
deca=decalage*pipsize
y1=lowest[70](low)
y2=lowest[25](low)
y3=highest[70](high)
y4=highest[25](high)
//Coordonnée x1 du Point A
//Boucle 1 pour rechercher x1 et y1
for i=70 downto 0 do
if low[i]=y1 then
x1=barindex[i]
drawtext("x1,y1", barindex[i],low[i])
break
endif
next
//Coordonnées x2 du point B
for i=25 downto 0 do
if low[i]=y2 then
x2=barindex[i]
drawtext("x2,y2", barindex[i], low[i])
break
endif
next
//Ensuite, trouver les points C & D de la résistance de coordonnées respectives x3 y3 et x4 y4.
//Coordonée x3 du point C.
for i=25 to 70 do
if high[i]=y3 then
x3=barindex[i]
drawtext("x3,y3", barindex[i], high[i])
break
endif
next
//Coordonnée x4 du Point D
for i=0 to 25 do
if high[i]=y4 then
x4=barindex[i]
drawtext("x4,y4",barindex[i], high[i])
break
endif
next
//Traçage de la ligne de tendance inf.
drawline(x1,y1, x2, y2) coloured (0,255,0)
drawline(x1,y1-deca, x2, y2-deca) coloured (0,255,0)
//Traçage de la ligne de tendance sup
drawline(x4,y4, x3, y3) coloured (255,0,0)
drawline(x4,y4+deca, x3, y3+deca) coloured (255,0,0)
return