MetaStock -> Tools -> Indicator Builder -> New Copy and paste formula below. ============================ Linear Regression true slope ============================ ---8<--------------------------- { Linear Regression true Slope v3.5 } { -100~+100% / -90~+90 degrees } { ©Copyright 2003-2004 Jose Silva } { http://www.metastocktools.com } pds:= Input("Linear Regression periods",2,2520,21); pds1:= Input("Lin Reg Signal periods",1,252,5); x:=Input("Open=1, High=2, Low=3, Close=4, Volume=5, P=6",1,6,4); display:=Input("display -100~100%=1, -90~90 degrees=2",1,2,1); hist:=Input("display positive histogram fill (on=1, off=0)",0,1,1); plot:=Input("[1] LinReg Slope, [2] signals", 1,2,1); x:=If(x=1,O,If(x=2,H,If(x=3,L, If(x=5,V,If(x=6,P,C))))); LRlast:=LinearReg(x,pds); LRS:=LinRegSlope(x,pds); LRprev:=LRlast-LRS; {LRstart:=Ref(LRlast-LRS*(pds-1),pds-1);} a:=Min(LRlast,LRprev)/Max(LRlast,LRprev); LRratio:=(If(LRlast>LRprev,2-a,a)-1)*80; LRSdeg:=If(LRratio<0,Atan(LRratio,1)-360, Atan(LRratio,1)); LRSper:=LRSdeg*10/9; LRStrue:=If(display=2,LRSdeg,LRSper); signal:=Mov(LRStrue,pds1,E); BuySell:= Cross(LRStrue,signal)-Cross(signal,LRStrue); odd:=Cum(1)/2=Int(Cum(1)/2); odd:=If(hist=1 AND LRStrue>signal, If(odd,signal,LRStrue),LRStrue); If(plot=1,odd,0); If(plot=1,signal,0); If(plot=1,LRStrue,BuySell) ---8<--------------------------- http://www.metastocktools.com