un autre lissage de courbes
Forums › ProRealTime forum Français › Support ProBuilder › un autre lissage de courbes
- This topic has 4 replies, 2 voices, and was last updated 1 year ago by 7tonjamais.
-
-
04/13/2023 at 5:48 PM #213250
Toutes les moyennes mobiles ne représentent plus la réalité des prix.
Pour avoir un tableau de prix à la fermeture, il suffit de programmer :
mm1 = average[1](close)
mais comment remplir average[1](close) sur une condition de période pour tracer des segments.
Sur du 1 minute, mm1 se remplirait des valeurs A,B,C,D,E.
mais sur du 5 minutes, mm1 se remplrait de A et de E.
comment remplire mm1-modifié par :
- A
- B = A+ (A-E)/4
- C= A+ 2*((A-E)/4)
- D= A+ 3*((A-E)/4)
- E= E
pour réaliser ce que je veux, faut-il utiliser des tableaux ?
peut etre existe t-il déjà un sujet qui répond à ma question.
Merci de vos réponses.
bye.
04/14/2023 at 8:12 AM #213271Inutile de programmer une moyenne mobile, la constante du prix à sa fermeture est Close[0] et cette constante est déjà accessible sous forme de tableau, on accède aux autres colonnes (valeurs du passé) avec un décalage de X: Close[X]
Pour obtenir le prix dans un autre timeframe, on peut utiliser l’instruction timeframe:
12timeframe(5 minutes, updateonclose)closeM5 = closeavec l’option “updateonclose” dans cette instruction on update la valeur de la variable à la fermeture de la bougie, donc ici on obtient la valeur de la dernière bougie M5 clôturée. ex: si il est 11h58, closeM5 = valeur de 11h55
J’espère avoir été clair 🙂09/04/2023 at 5:40 PM #220325Voici une programmation d’un autre lissage de prix ! J’utilise des tableaux, mais ceux-ci, en proreal code sont difficile à comprendre. Je pense que c’est ma programmation le fond du probleme!
Je n’obtiens pas la même représentation par RETURN $TprixHaut QUE PAR drawsegement DRAWSEGMENT(x1, y1, x2, y2)
J’aurais aimé mettre une image, mais je ne sais comment ajouter une image dans ce forum….
Je ne comprends pas pourquoi $TPRIXhAUT n’affiche que les prix en courbe sur la moitié de la période…
Quelle erreeur de programmation est faite ???
MERCI SI VOUS POUVEZ ME DIRE
12345678910111213141516171819202122232425262728293031DEFPARAM DRAWONLASTBARONLY=truemmHAUTE=average[1](High )Periode = 48// variable de période$Ttemps[barindex] = BarIndex$Tprix[barindex] = high$Tprixhaut [barindex] = highNb=ROUND((LastSet($Tprix )/ Periode))For i=Nb downto 0 doif i>=1 thenfor j=0 TO Periode-1 DOu=i*periode-jprixInt = ($Tprix[i*periode]-$Tprix[i*periode-periode])/periode$Tprixhaut[i*periode-j] = $Tprix[i*periode]-j*prixIntDRAWPOINT($Ttemps[i*periode-j], $Tprixhaut [i*periode-j],1)x1=$Ttemps[i*periode-j+1]y1=$Tprixhaut [i*periode-j+1]x2=$Ttemps[i*periode-j]y2=$Tprixhaut [i*periode-j]DRAWSEGMENT(x1, y1, x2, y2)nextENDIFnextFor i=LastSet($Tprix ) downto 0 do//DRAWPOINT($Ttemps[i], $Tprix[i],2) coloured(255,0,255)//DRAWTEXT("i=#i#", $Ttemps[i], $Tprix[i]+5)coloured(255,0,255)//v=$Ttemps[i]//DRAWTEXT("barindex=#v#", $Ttemps[i], $Tprix[i]-25)coloured(255,0,255)nextRETURN mmHAUTE , $Tprix[barindex], $Tprixhaut[barindex] coloured (250,0,0)12345678910111213141516171819202122232425262728293031DEFPARAM DRAWONLASTBARONLY=truemmHAUTE=average[1](High )Periode = 48// variable de période$Ttemps[barindex] = BarIndex$Tprix[barindex] = high$Tprixhaut [barindex] = highNb=ROUND((LastSet($Tprix )/ Periode))For i=Nb downto 0 doif i>=1 thenfor j=0 TO Periode-1 DOu=i*periode-jprixInt = ($Tprix[i*periode]-$Tprix[i*periode-periode])/periode$Tprixhaut[i*periode-j] = $Tprix[i*periode]-j*prixIntDRAWPOINT($Ttemps[i*periode-j], $Tprixhaut [i*periode-j],1)x1=$Ttemps[i*periode-j+1]y1=$Tprixhaut [i*periode-j+1]x2=$Ttemps[i*periode-j]y2=$Tprixhaut [i*periode-j]DRAWSEGMENT(x1, y1, x2, y2)nextENDIFnextFor i=LastSet($Tprix ) downto 0 do//DRAWPOINT($Ttemps[i], $Tprix[i],2) coloured(255,0,255)//DRAWTEXT("i=#i#", $Ttemps[i], $Tprix[i]+5)coloured(255,0,255)//v=$Ttemps[i]//DRAWTEXT("barindex=#v#", $Ttemps[i], $Tprix[i]-25)coloured(255,0,255)nextRETURN mmHAUTE , $Tprix[barindex], $Tprixhaut[barindex] coloured (250,0,0)09/05/2023 at 2:41 PM #220368Tout cela m’a l’air bien compliqué 🙂 Désolé j’ai du mal à comprendre ce que tu cherches à faire. Pourrais-tu simplement l’expliquer de manière exhaustive en quelques lignes ?
J’arrive à faire fonctionner ton code (voir image jointe). Pour attacher une image à un post, tu cliques sur “select” dans la section Attachments (en dessous de l’éditeur de texte).
09/07/2023 at 11:21 PM #220527Bonjour Nicolas et merci de votre intérêt.
Comme l’indique le titre de ce sujet, je cherche un moyen de lisser le signale du prix, pour une utilisation de celui-ci comme indicateur.
Je reconnais que c’est compliquer d’utiliser les tableaux, surtout dans le futur. Mais ils se remplissent d’une information qui donne une variation du prix en fonction du temps. Quand le prix ne varie pas de plus de 0.25 point minute, il ne faut rien faire, et si au contraire cela varie de 10 points par minute, il faut prendre position. Les hauts et les bas deviennent visibles, mais pas forcément en retard.
Le principe est simple, entre une période, il y a le prix A qui est retranché au prix B d’arrivé, et cette différence de prix divisé par le nombre de la période, permet de segmenter la courbe du prix. C’est une forme de moyennage du prix sur une période.Le problème, c’est que j’affiche bien mes segment (sauf le futur et l’attente de fin de période).
Par contre, en rouge, j’affiche sur une moitié de période le prix, et l’autre moitié de période, j’ai une ligne droite…. Que contient vraiment le tableau $TprixHaut ???
Mon code peut-il s’améliorer ?
Quelle astuce utiliser pour détecter les plus hauts des plus bas, pour avoir une période flottante ? Encore que mon résultat puisse se passer d’exactitude, car parfois j’aurais un signal qui serait un peux en avance…. -
AuthorPosts
Find exclusive trading pro-tools on