logo
Welcome Guest! To enable all features please Login or Register.

Notification

Icon
Error

Options
Go to last post Go to first unread
CN001532  
#1 Posted : Monday, August 22, 2005 3:46:53 AM(UTC)
CN001532

Rank: Advanced Member

Groups: Registered, Registered Users
Joined: 8/22/2005(UTC)
Posts: 30

If been having a devil of a time trying to calculate the actual number of degrees of the slope of the 34 EMA and 25 LSMA. I've got some opensource AMIbroker code and was able to get some information from www.metastocktools.com which get me close but not quite there. I have no trouble creating an exploration using the slope, to produce an equivalent results that I require, however I really would like to be able to calculate the actual number of degrees of both slopes for other purposes. A simple atan function of the slope does not do the trick. Posted below is the relavent open source amibroker code that caclulates the actual number of degrees of the angle of the 34 ema and 25 LSMA. Any help would be most appreciated. I would like to replicate these in Metastock: EMA34 = EMA(C,34); PI = 3.141593; periods = 30; HighHigh = HHV(H, periods); LowLow = LLV(L, periods); range = 25 / (HighHigh - LowLow) * LowLow; x1_EMA34 = 0; x2_EMA34 = 2; y1_EMA34 = 0; y2_EMA34 = (Ref(EMA34, -2) - EMA34) / Avg * range; c_EMA34 = sqrt((x2_EMA34 - x1_EMA34)*(x2_EMA34 - x1_EMA34) + (y2_EMA34 - y1_EMA34)*(y2_EMA34 - y1_EMA34)); angle_EMA34 = round(180 * acos((x2_EMA34 - x1_EMA34)/c_EMA34) / PI); x1_LSMA25 = 0; x2_LSMA25 = 2; y1_LSMA25 = 0; y2_LSMA25 = (Ref(LSMA25, -2) - LSMA25) / Avg * range; c_LSMA25 = sqrt((x2_LSMA25 - x1_LSMA25)*(x2_LSMA25 - x1_LSMA25) + (y2_LSMA25 - y1_LSMA25)*(y2_LSMA25 - y1_LSMA25)); angle_LSMA25 = round(180 * acos((x2_LSMA25 - x1_LSMA25)/c_LSMA25) / PI); I tried using/modifying the following code from metastocktools.com with no luck: 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 and MetaStock -> Tools -> Indicator Builder -> New Copy and paste formula below. ============= EMA - slope % ============= ---8<--------------------------- { EMA slope % v2.0, +/- 0~100% } { ©Copyright 2003 Jose Silva } { http://www.metastocktools.com } pds:=Input("EMA periods",2,2520,21); x:=Input("use Open=1 High=2 Low=3 Close=4 Volume=5 P=6",1,6,4); x:=If(x=1,O,If(x=2,H,If(x=3,L,If(x=5,V,If(x=6,P,C))))); EMA:=Mov(x,pds,E); EMAprev:=Ref(EMA,-1); y:=Min(EMA,EMAprev)/Max(EMA,EMAprev); EMAratio:=(If(EMA>EMAprev,2-y,y)-1)*100; EMAper:=If(EMAratio<0,Atan(EMAratio,1)-360, Atan(EMAratio,1))*10/9; signal:=Mov(EMAper,pds,E); 0;signal;EMAper ---8<--------------------------- http://www.metastocktools.com
kanellop  
#2 Posted : Monday, August 22, 2005 10:45:34 AM(UTC)
kanellop

Rank: Advanced Member

Groups: Registered, Registered Users
Joined: 6/3/2005(UTC)
Posts: 181

Are you sure that these Formulas can get in inside Indicator Builder? I try it to put inside it, (I have Metastock 9.0 Pro for E-Signal Version) without success. I am very curious to see the Results of these Formulas. It is an interesting Idea. Anyway, i want to give you my Congratulations for your Idea! George K.
CN001532  
#3 Posted : Monday, August 22, 2005 11:41:46 AM(UTC)
CN001532

Rank: Advanced Member

Groups: Registered, Registered Users
Joined: 8/22/2005(UTC)
Posts: 30

kanellop I was able to get most of the formula working within Metastock Pro for e-signal in the indicator builder. I need a further definition of what exactly what "Avg" refers to within the AmiBroker code, however my results still differed greatly from the results within AMIbroker and e-signal application itself. THe Amibroker and e-signal matched each other. I'll retry my results metastock indicator code here, how far I got replicating the Amibroker code today. Regards, Joe
CN001532  
#4 Posted : Tuesday, August 23, 2005 1:06:47 AM(UTC)
CN001532

Rank: Advanced Member

Groups: Registered, Registered Users
Joined: 8/22/2005(UTC)
Posts: 30

This is my best stab at converting the AMIBroker code to metastock, it seems that the only values I get are +57 and -57 for the entire Sept EUR 05 data series. EMA34:= Mov(C,34,E); PI:= 3.141593; HighHigh:= HHV(H, 30); LowLow:= LLV(L, 30); range:= 25/(HighHigh - LowLow)*LowLow; x1:= 0; x2:= 2; y1:= 0; y2:= (Ref(EMA34, -2) - EMA34) / ATR(25)*range; c1:= Sqrt((x2 - x1)*(x2 - x1) + (y2 - y1)*(y2 - y1)); angle:= Round(180 * Cos((x2 - x1)/c1) / PI); If(y2 > 0, -angle, angle);
Users browsing this topic
Guest (Hidden)
Similar Topics
Caculating the actual degrees in the EMA (Formula Assistance)
by CN001532 8/22/2005 3:47:42 AM(UTC)
Forum Jump  
You cannot post new topics in this forum.
You cannot reply to topics in this forum.
You cannot delete your posts in this forum.
You cannot edit your posts in this forum.
You cannot create polls in this forum.
You cannot vote in polls in this forum.