LinearRegression debut et fin
- This topic has 3 replies, 3 voices, and was last updated 2 years ago by .
Viewing 4 posts - 1 through 4 (of 4 total)
Viewing 4 posts - 1 through 4 (of 4 total)
Forums › ProRealTime forum Français › Support ProBuilder › LinearRegression debut et fin
Bonjour,
Le code
N=20
LR = LinearRegression[N](close)
donne bien la valeur de l’extrémité droite d’une droite de régression sur 20 périodes.
Mais comment je fais pour avoir la valeur de l’extrémité gauche de cette même droite ?
Merci
Avec le code ci-dessous, tu obtiendras la valeur du premier point de la régression linéaire (courbe en jaune, soit où est localisé le point jaune).
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
//PRC_Std and Ste LinRegChannel | indicator //Standard Deviation and Standard Error //Linear Regression Channel //12.03.2019 //Nicolas @ www.prorealcode.com //Sharing ProRealTime knowledge defparam drawonlastbaronly=true defparam calculateonlastbars=1000 // --- settings lookback= 20 //channel period // --- end of settings sumx = 0 sumy = 0 sumxy = 0 sumx2 = 0 for cmpt = lookback downto 0 do tmpx = cmpt tmpy = close[cmpt] sumy = sumy+tmpy sumx = sumx+tmpx sumx2 = sumx2 + (tmpx*tmpx) sumxy = sumxy + (tmpy*tmpx) next n = lookback+1 if (sumx2 = sumx * sumx) then // protection to avoid infinite values b = sumxy - sumx * sumy else b = (n * sumxy - sumx * sumy) / (n * sumx2 - sumx * sumx) endif a = (sumy - b * sumx) / n drawsegment(barindex[lookback],a+b*lookback,barindex,a+b*0) drawpoint(barindex[lookback],a+b*lookback,3) coloured("yellow") return linearregression[lookback] coloured("red"), a+b*lookback coloured("yellow") |
Sinon, il y a aussi cette alternative en utilisant les 2 fonctions de probuilder : linearregression et linearregressionslope
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
k = 20 // à ajouter en variable dans la configuration dpok2=DPO[k*2](close) if dpok2=dpok2[1] and dpok2[1]=dpok2[2] and dpok2[2]<>dpok2[3] then start=1 endif if start=1 and start[1]=0 then StartIndex = Barindex Endif If barindex-k+1 = Startindex then b=linearregression[k](close) a=linearregressionslope[k](close) y=b-a*(k-1) Drawsegment(Startindex,y,barindex,b)Style(dottedline2,4) Coloured("green",255) endif return |