- Katılım
- 23 Eki 2020
- Mesajlar
- 1,826
Instantaneous Trendline and Sinewave Indicator as describedby John Ehlers. Here is the MetaStock 6.52 or higher formula code for the Instantaneous Trendline and Sinewave Indicator as described by John Ehlers in his article "At Last! A Trend-Friendly Oscillator". To implement them the following formulas must be created in MetaStocks Indicator Builder. Each formula mustbe created separately and must be named exactly as it appears below. Only the last two formulas are plotted, so you may wish to prevent the othersfrom being displayed in the Indicator QuickList by unchecking the "DisplayIn QuickList" option when creating the formula. To download and install the formulas use the following steps Download the MS65FORM.DTA file into a temp folder To Download the file for this formula click MS65FORM.DTA Use the following instructions to Import the MS65FORM.DTA file from thetemp file it was downloaded to. 1.Run MetaStock. 2.Choose Indicator Builder from the Tools menu. 3.Click the Organize button to launch the Formula Organizer Wizard. 4.Follow the on-screen instructions. |
|
Hilbert cycle period - 1a value1:=((H+L)/2) - Ref(((H+L)/2),-6); value2:= Ref(value1,-3); value3:=0.75*(value1-Ref(value1,-6)) + 0.25*(Ref(value1,-2)-Ref(value1,-4)); inphase:= 0.33 * value2 + (0.67 * PREV); quad:= 0.2 * value3 + ( 0.8 * PREV); p1:=Atan(Abs(quad+Ref(quad,-1)),Abs(inphase+Ref(inphase,-1))); phase:=If(inphase<0 AND quad>0, 180-p1, If(inphase<0 AND quad<0, 180+p1, If(inphase>0 AND quad<0, 360-p1,p1))); dp:=If(Ref(phase,-1)<90 AND phase>270, 360+Ref(phase,-1)-phase,Ref(phase,-1)-phase); dp2:=If(dp < 1, 1, If(dp > 60, 60, dp)); dp2 |
|
H cycle count 1a value:= Fml("Hilbert cycle period - 1a"); If(Sum(value,6)>=360 AND Sum(value,5)<360 ,6,0) + If(Sum(value,7)>=360 AND Sum(value,6)<360 ,7,0) + If(Sum(value,8)>=360 AND Sum(value,7)<360 ,8,0) + If(Sum(value,9)>=360 AND Sum(value,8)<360 ,9,0) + If(Sum(value,10)>=360 AND Sum(value,9)<360 ,10,0) + If(Sum(value,11)>=360 AND Sum(value,10)<360 ,11,0) + If(Sum(value,12)>=360 AND Sum(value,11)<360 ,12,0) + If(Sum(value,13)>=360 AND Sum(value,12)<360 ,13,0) + If(Sum(value,14)>=360 AND Sum(value,13)<360 ,14,0) + If(Sum(value,15)>=360 AND Sum(value,14)<360 ,15,0) |
H cycle count 2a value:= Fml("Hilbert cycle period - 1a"); If(Sum(value,16)>=360 AND Sum(value,15)<360 ,16,0) + If(Sum(value,17)>=360 AND Sum(value,16)<360 ,17,0) + If(Sum(value,18)>=360 AND Sum(value,17)<360 ,18,0) + If(Sum(value,19)>=360 AND Sum(value,18)<360 ,19,0) + If(Sum(value,20)>=360 AND Sum(value,19)<360 ,20,0) + If(Sum(value,21)>=360 AND Sum(value,20)<360 ,21,0) + If(Sum(value,22)>=360 AND Sum(value,21)<360 ,22,0) + If(Sum(value,23)>=360 AND Sum(value,22)<360 ,23,0) + If(Sum(value,24)>=360 AND Sum(value,23)<360 ,24,0) + If(Sum(value,25)>=360 AND Sum(value,24)<360 ,25,0) |
H cycle count 3a value:= Fml("Hilbert cycle period - 1a"); If(Sum(value,26)>=360 AND Sum(value,25)<360 ,26,0) + If(Sum(value,27)>=360 AND Sum(value,26)<360 ,27,0) + If(Sum(value,28)>=360 AND Sum(value,27)<360 ,28,0) + If(Sum(value,29)>=360 AND Sum(value,28)<360 ,29,0) + If(Sum(value,30)>=360 AND Sum(value,29)<360 ,30,0) + If(Sum(value,31)>=360 AND Sum(value,30)<360 ,31,0) + If(Sum(value,32)>=360 AND Sum(value,31)<360 ,32,0) + If(Sum(value,33)>=360 AND Sum(value,32)<360 ,33,0) + If(Sum(value,34)>=360 AND Sum(value,33)<360 ,34,0) + If(Sum(value,35)>=360 AND Sum(value,34)<360 ,35,0) |
Hilbert cycle period - final-a c1:= Fml( "H cycle count 1a") + Fml( "H cycle count 2a") + Fml( "H cycle count 3a") ; c2:=If(c1=0,PREV,c1); (0.25*c2) + (0.75*PREV) |
H ip sum 1 pd:=Int(Fml("Hilbert cycle period - final-a")); pr:=(H+L)/2; (Cos(0)*pr)+ (Cos(360*(1/pd))*Ref(pr,-1))+ (Cos(360*(2/pd))*Ref(pr,-2))+ (Cos(360*(3/pd))*Ref(pr,-3))+ (Cos(360*(4/pd))*Ref(pr,-4))+ (Cos(360*(5/pd))*Ref(pr,-5))+ If(pd>6, Cos(360*(6/pd))*Ref(pr,-6), 0)+ If(pd>7, Cos(360*(7/pd))*Ref(pr,-7), 0)+ If(pd>8, Cos(360*(8/pd))*Ref(pr,-8), 0)+ If(pd>9, Cos(360*(9/pd))*Ref(pr,-9), 0)+ If(pd>10, Cos(360*(10/pd))*Ref(pr,-10), 0)+ If(pd>11, Cos(360*(11/pd))*Ref(pr,-11), 0)+ If(pd>12, Cos(360*(12/pd))*Ref(pr,-12), 0)+ If(pd>13, Cos(360*(13/pd))*Ref(pr,-13), 0)+ If(pd>14, Cos(360*(14/pd))*Ref(pr,-14), 0) |
H ip sum 2 pd:=Int(Fml("Hilbert cycle period - final-a")); pr:=(H+L)/2; If(pd>15, Cos(360*(15/pd))*Ref(pr,-15), 0)+ If(pd>16, Cos(360*(16/pd))*Ref(pr,-16), 0)+ If(pd>17, Cos(360*(17/pd))*Ref(pr,-17), 0)+ If(pd>18, Cos(360*(18/pd))*Ref(pr,-18), 0)+ If(pd>19, Cos(360*(19/pd))*Ref(pr,-19), 0)+ If(pd>20, Cos(360*(20/pd))*Ref(pr,-20), 0)+ If(pd>21, Cos(360*(21/pd))*Ref(pr,-21), 0)+ If(pd>22, Cos(360*(22/pd))*Ref(pr,-22), 0)+ If(pd>23, Cos(360*(23/pd))*Ref(pr,-23), 0)+ If(pd>24, Cos(360*(24/pd))*Ref(pr,-24), 0) |
H ip sum 3 pd:=Int(Fml("Hilbert cycle period - final-a")); pr:=(H+L)/2; If(pd>25, Cos(360*(25/pd))*Ref(pr,-25), 0)+ If(pd>26, Cos(360*(26/pd))*Ref(pr,-26), 0)+ If(pd>27, Cos(360*(27/pd))*Ref(pr,-27), 0)+ If(pd>28, Cos(360*(28/pd))*Ref(pr,-28), 0)+ If(pd>29, Cos(360*(29/pd))*Ref(pr,-29), 0)+ If(pd>30, Cos(360*(30/pd))*Ref(pr,-30), 0)+ If(pd>31, Cos(360*(31/pd))*Ref(pr,-31), 0)+ If(pd>32, Cos(360*(32/pd))*Ref(pr,-32), 0)+ If(pd>33, Cos(360*(33/pd))*Ref(pr,-33), 0)+ If(pd>34, Cos(360*(34/pd))*Ref(pr,-34), 0) |
H rp sum 1 pd:=Int(Fml("Hilbert cycle period - final-a")); pr:=(H+L)/2; (Sin(0)*pr)+ (Sin(360*(1/pd))*Ref(pr,-1))+ (Sin(360*(2/pd))*Ref(pr,-2))+ (Sin(360*(3/pd))*Ref(pr,-3))+ (Sin(360*(4/pd))*Ref(pr,-4))+ (Sin(360*(5/pd))*Ref(pr,-5))+ If(pd>6, Sin(360*(6/pd))*Ref(pr,-6), 0)+ If(pd>7, Sin(360*(7/pd))*Ref(pr,-7), 0)+ If(pd>8, Sin(360*(8/pd))*Ref(pr,-8), 0)+ If(pd>9, Sin(360*(9/pd))*Ref(pr,-9), 0)+ If(pd>10, Sin(360*(10/pd))*Ref(pr,-10), 0)+ If(pd>11, Sin(360*(11/pd))*Ref(pr,-11), 0)+ If(pd>12, Sin(360*(12/pd))*Ref(pr,-12), 0)+ If(pd>13, Sin(360*(13/pd))*Ref(pr,-13), 0)+ If(pd>14, Sin(360*(14/pd))*Ref(pr,-14), 0) |
H rp sum 2 pd:=Int(Fml("Hilbert cycle period - final-a")); pr:=(H+L)/2; If(pd>15, Sin(360*(15/pd))*Ref(pr,-15), 0)+ If(pd>16, Sin(360*(16/pd))*Ref(pr,-16), 0)+ If(pd>17, Sin(360*(17/pd))*Ref(pr,-17), 0)+ If(pd>18, Sin(360*(18/pd))*Ref(pr,-18), 0)+ If(pd>19, Sin(360*(19/pd))*Ref(pr,-19), 0)+ If(pd>20, Sin(360*(20/pd))*Ref(pr,-20), 0)+ If(pd>21, Sin(360*(21/pd))*Ref(pr,-21), 0)+ If(pd>22, Sin(360*(22/pd))*Ref(pr,-22), 0)+ If(pd>23, Sin(360*(23/pd))*Ref(pr,-23), 0)+ If(pd>24, Sin(360*(24/pd))*Ref(pr,-24), 0) |
|
H rp sum 3 pd:=Int(Fml("Hilbert cycle period - final-a")); pr:=(H+L)/2; If(pd>25, Sin(360*(25/pd))*Ref(pr,-25), 0)+ If(pd>26, Sin(360*(26/pd))*Ref(pr,-26), 0)+ If(pd>27, Sin(360*(27/pd))*Ref(pr,-27), 0)+ If(pd>28, Sin(360*(28/pd))*Ref(pr,-28), 0)+ If(pd>29, Sin(360*(29/pd))*Ref(pr,-29), 0)+ If(pd>30, Sin(360*(30/pd))*Ref(pr,-30), 0)+ If(pd>31, Sin(360*(31/pd))*Ref(pr,-31), 0)+ If(pd>32, Sin(360*(32/pd))*Ref(pr,-32), 0)+ If(pd>33, Sin(360*(33/pd))*Ref(pr,-33), 0)+ If(pd>34, Sin(360*(34/pd))*Ref(pr,-34), 0) |
|
H TL sum 1 value:=Int(Fml("Hilbert cycle period - final-a")); If(value=6, Mov((H+L)/2,8,S),0) + If(value=7, Mov((H+L)/2,9,S),0) + If(value=8, Mov((H+L)/2,10,S),0) + If(value=9, Mov((H+L)/2,11,S),0) + If(value=10, Mov((H+L)/2,12,S),0) + If(value=11, Mov((H+L)/2,13,S),0) + If(value=12, Mov((H+L)/2,14,S),0) + If(value=13, Mov((H+L)/2,15,S),0) + If(value=14, Mov((H+L)/2,16,S),0) + If(value=15, Mov((H+L)/2,17,S),0) |
|
H TL sum 2 value:=Int(Fml("Hilbert cycle period - final-a")); If(value=16, Mov((H+L)/2,18,S),0) + If(value=17, Mov((H+L)/2,19,S),0) + If(value=18, Mov((H+L)/2,20,S),0) + If(value=19, Mov((H+L)/2,21,S),0) + If(value=20, Mov((H+L)/2,22,S),0) + If(value=21, Mov((H+L)/2,23,S),0) + If(value=22, Mov((H+L)/2,24,S),0) + If(value=23, Mov((H+L)/2,25,S),0) + If(value=24, Mov((H+L)/2,26,S),0) + If(value=25, Mov((H+L)/2,27,S),0) |
|
H TL sum 3 value:=Int(Fml("Hilbert cycle period - final-a")); If(value=26, Mov((H+L)/2,28,S),0) + If(value=27, Mov((H+L)/2,29,S),0) + If(value=28, Mov((H+L)/2,30,S),0) + If(value=29, Mov((H+L)/2,31,S),0) + If(value=30, Mov((H+L)/2,32,S),0) + If(value=31, Mov((H+L)/2,33,S),0) + If(value=32, Mov((H+L)/2,34,S),0) + If(value=33, Mov((H+L)/2,35,S),0) + If(value=34, Mov((H+L)/2,36,S),0) + If(value=35, Mov((H+L)/2,37,S),0) |
|
Instantaneous Trend Line pr:=(H+L)/2; (Fml("H TL sum 1") + Fml("H TL sum 2") + Fml("H TL sum 3")); 0.33*(pr + (0.5*(pr-Ref(pr,-3)))) + (0.67*PREV) |
|
Sinewave Indicator pd:=Int(Fml("Hilbert cycle period - final-a")); cp:=Fml("Hilbert cycle period - final-a"); ip:=Fml( "H ip sum 1") + Fml( "H ip sum 2") + Fml( "H ip sum 3"); rp:=Fml( "H rp sum 1") + Fml( "H rp sum 2") + Fml( "H rp sum 3"); dc1:=If(Abs(ip)>0.001, Atan(rp/ip,1), 90*If(rp>=0,1,-1)); dc2:=If(ip<0, dc1+270, dc1+90); dcp:=If(dc2>315, dc2-360, dc2); Sin(dcp); Sin(dcp+45) |
Cheryl Abram, Equis International, Inc. | |
| |
Source / From: |