Droite régression avec les derniers plus haut
Forums › ProRealTime forum Français › Support ProBuilder › Droite régression avec les derniers plus haut
- This topic has 9 replies, 2 voices, and was last updated 4 years ago by Nicolas.
-
-
05/06/2020 at 2:41 PM #130245
Bonjour je souhaiterai visualiser sur le graphique des cours la droite de régression linéaire basée sur les critères suivants :
-droite de régression calculée sur au moins 4 derniers plus hauts (voire plus si besoin)
-période de max 40 bougies journalières
-coefficient de régression linéaire >0.95
ce serait top de l’afficher ainsi que son équation
pouvez vous m’aider pour cela
je vous remercie
05/06/2020 at 4:18 PM #130274-droite de régression calculée sur au moins 4 derniers plus hauts
Merci de définir comment trouver ces 4 derniers plus hauts.
05/06/2020 at 4:27 PM #130276Pour un plus haut il faudra les conditions suivantes :
-écart d’au moins 5 bougies avec le plus haut précédent
-le plus haut de la bougie du jour (ombre supérieures) est plus haut que le plus haut (ombre supérieure) du jour de la bougie précédente et que le plus haut du jour(ombre supérieure) de la bougie suivante
merci
05/07/2020 at 9:00 AM #130387Le code ci-dessous trace la régression linéaire des X derniers plus hauts telle que décrit.
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768defparam drawonlastbaronly=truedefparam calculateonlastbars=1000topc = high<high[1] and high[1]>high[2] and topbar<barindex-5//botc = low>low[1] and low[1]<low[2] and botbar<barindex-5if topc thentopbar=barindex[1]top=high[1]//elsif botc then//botbar=barindex[1]//bot=low[1]endif//PRC_Std and Ste LinRegChannel | indicator//Standard Deviation and Standard Error//Linear Regression Channel//12.03.2019//Nicolas @ www.prorealcode.com//Sharing ProRealTime knowledge// --- settingslookback= 40 //channel periodChannelType = 1 //1= Standard Deviation ; 2= Standard ErrorMinTop = 5colorRed = 255colorGreen = 255colorBlue = 0// --- end of settingssumx = 0sumy = 0sumxy = 0sumx2 = 0count=0prev=0for cmpt = 0 to lookback dotmpx = cmpttmpy = top[cmpt]sumy = sumy+tmpysumx = sumx+tmpxsumx2 = sumx2 + (tmpx*tmpx)sumxy = sumxy + (tmpy*tmpx)if tmpy<>prev thendrawtext("*",topbar[cmpt],top[cmpt],dialog,bold,16)count=count+1prev=tmpyendifif count>=MinTop thenlookback=cmptbreakendifnextn = lookback+1if (sumx2 = sumx * sumx) then // protection to avoid infinite valuesb = sumxy - sumx * sumyelseb = (n * sumxy - sumx * sumy) / (n * sumx2 - sumx * sumx)endifa = (sumy - b * sumx) / nif count>=MinTop thendrawsegment(barindex[lookback],a+b*lookback,barindex,a+b*0) coloured(colorRed,colorGreen,colorBlue)endifreturn //a05/07/2020 at 9:48 AM #13039805/07/2020 at 12:57 PM #130434Autre version corrigée ci-dessous
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970defparam drawonlastbaronly=truedefparam calculateonlastbars=1000topc = high<high[1] and high[1]>high[2] and topbar<barindex-5//botc = low>low[1] and low[1]<low[2] and botbar<barindex-5if topc thentopbar=barindex[1]top=high[1]//elsif botc then//botbar=barindex[1]//bot=low[1]endif//PRC_Std and Ste LinRegChannel | indicator//Standard Deviation and Standard Error//Linear Regression Channel//12.03.2019//Nicolas @ www.prorealcode.com//Sharing ProRealTime knowledge// --- settingslookback= 40 //channel periodMinTop = 5colorRed = 255colorGreen = 255colorBlue = 0// --- end of settingssumx = 0sumy = 0sumxy = 0sumx2 = 0count=1prev=topfor cmpt = 0 to lookback doif cmpt=0 thendrawtext("#count#",topbar[cmpt],top[cmpt],dialog,bold,16)endiftmpx = cmpttmpy = top[cmpt]sumy = sumy+tmpysumx = sumx+tmpxsumx2 = sumx2 + (tmpx*tmpx)sumxy = sumxy + (tmpy*tmpx)if tmpy<>prev thencount=count+1drawtext("#count#",topbar[cmpt],top[cmpt],dialog,bold,16)prev=tmpyif count=MinTop thenlb=cmptbreakendifendifnextn = lb+1if (sumx2 = sumx * sumx) then // protection to avoid infinite valuesb = sumxy - sumx * sumyelseb = (n * sumxy - sumx * sumy) / (n * sumx2 - sumx * sumx)endifa = (sumy - b * sumx) / nif count>=MinTop thendrawsegment(barindex[lookback],a+b*lookback,barindex,a+b*0) coloured(colorRed,colorGreen,colorBlue)endifreturn top,lookback//a05/07/2020 at 3:45 PM #130468Merci bcp j’ai juste quelques petites questions si ce n’est pas trop prendre sur ton temps.
Si j’ai bien compris le compteur de 40 peux être changé , je l’ai mis à 80 mais il ne marque pas les plus hauts (voir ex sur PEUGEOT en PJ°
D’autre part est-il possible de connaitre le coefficient de régression linéaire
Enfin sur mes graphes il remplit en noir le dessus du graphe je ne comprends pas pourquoi
merci Nicolas
05/07/2020 at 4:17 PM #130480J’ai à nouveau corrigé le code pour être plus en adéquation avec ta demande initiale, ci-joint.
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071defparam drawonlastbaronly=truedefparam calculateonlastbars=1000topc = high<high[1] and high[1]>high[2] and topbar<barindex-5//botc = low>low[1] and low[1]<low[2] and botbar<barindex-5if topc thentopbar=barindex[1]top=high[1]//elsif botc then//botbar=barindex[1]//bot=low[1]endif//PRC_Std and Ste LinRegChannel | indicator//Standard Deviation and Standard Error//Linear Regression Channel//12.03.2019//Nicolas @ www.prorealcode.com//Sharing ProRealTime knowledge// --- settingslookback= 40 //channel periodMinTop = 5colorRed = 255colorGreen = 255colorBlue = 0// --- end of settingssumx = 0sumy = 0sumxy = 0sumx2 = 0count=1prev=topfor cmpt = 0 to lookback doif cmpt=0 thendrawtext("#count#",topbar[cmpt],top[cmpt],dialog,bold,16)endiftmpx = cmptif topbar[cmpt]>barindex-lookback thentmpy = top[cmpt]endifsumy = sumy+tmpysumx = sumx+tmpxsumx2 = sumx2 + (tmpx*tmpx)sumxy = sumxy + (tmpy*tmpx)if tmpy<>prev thencount=count+1drawtext("#count#",topbar[cmpt],top[cmpt],dialog,bold,16)prev=tmpyendifnextn = lookback+1if (sumx2 = sumx * sumx) then // protection to avoid infinite valuesb = sumxy - sumx * sumyelseb = (n * sumxy - sumx * sumy) / (n * sumx2 - sumx * sumx)endifa = (sumy - b * sumx) / nif count>=MinTop thendrawsegment(barindex[lookback],a+b*lookback,barindex,a+b) coloured(colorRed,colorGreen,colorBlue)endifreturn05/07/2020 at 4:58 PM #130487Merci Nicolas c’est TIP TOP maintenant. je vais essayer de coupler cela pour tracer des droites de tendance significatives. En gros je prends les 4 derniers plus haut (ou plus bas), je fais toutes les combinaisons de calculs de régression et je garde la meilleure avec un critère d’un R>0.99 alors on a une droite significative puis je remonte dans le temps pour chaque nouveau point haut : 2 possibilités il s’intègre à la régression=> on le rajoute, sinon on cherche celui d’avant et on refait les combinaisons
Merci en tout cas de ton aide tu as été au Top comme d’habitude
05/10/2020 at 2:38 PM #130912 -
AuthorPosts
Find exclusive trading pro-tools on