/*[[ Name := linear regression trendline Author := Copyright © 2004, Nick Bilak Link := Notes := Separate Window := No First Color := Magenta First Draw Type := Line First Symbol := 160 Use Second Data := No Second Color := DimGray Second Draw Type := Line Second Symbol := 218 ]]*/ Inputs: fromBar(0),toBar(20),channel(0.5); var: ka(0),kb(0),sx(0),sy(0),sxy(0),sx2(0),cnt(0),loopBegin(0),i(0),ival(0),ndot(0),cw(0),tmp(0),l1(0),l2(0); ndot=toBar-fromBar+1; sy=0; sx=0; sxy=0; sx2=0; i=1; For cnt=fromBar To toBar Begin sy+=close[cnt]; sx+=i; sx2+=i*i; sxy+=close[cnt]*i; i++; End; kb=(ndot*sxy-sx*sy)/(ndot*sx2-sx*sx); ka=(sy-kb*sx)/ndot; i=1; For cnt=fromBar to toBar Begin ival=ka+kb*i; i++; SetIndexValue(cnt, ival); end; if channel<>0 then { l1=GetIndexValue(fromBar); l2=GetIndexValue(toBar); if l1>l2 then cw=channel*l1/100 else cw=channel*l2/100; MoveObject("upper"+NumberToStr(fromBar,0)+NumberToStr(toBar,0),OBJ_TRENDLINE,time[fromBar],l1+cw,time[toBar],l2+cw,Magenta,1,STYLE_DOT); MoveObject("lower"+NumberToStr(fromBar,0)+NumberToStr(toBar,0),OBJ_TRENDLINE,time[fromBar],l1-cw,time[toBar],l2-cw,Magenta,1,STYLE_DOT); };