[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[EquisMetaStock Group] Re: Dynamic Momentum Index (DMI)



PureBytes Links

Trading Reference Links

> The time periods the DMI can reach is around a maximum of 30 and a
> minimum of 3.

The dynamic component of MetaStock's standard Dynamic Momentum Index 
seems to be even narrower, beginning or ending around 15 periods 
from memory.

Take a look at the DMI version below - and note the two PREV 
functions, which may explain why the MetaStock version is so slow.  
Using a variable-input EMA dll will speed up processing, something 
that is necessary if contemplating using the DMI in any exploration.


MetaStock -> Tools -> Indicator Builder -> New
-> Copy and paste formula below.


========================
Dynamic Mom Index - jose
========================
---8<---------------------------

{ Jose's Dynamic Momentum Index v3.1, 0~100% }
{ ?Copyright 2003-2004 Jose Silva }
{ http://www.metastocktools.com }

pds:=Input("avg DyMoIdx periods",3,252,21);
Stpds:=
 Input("Standard Deviation periods",2,252,5);
x:=Input("use Open=1 High=2 Low=3 Close=4 Volume=5 P=6",1,6,4);
plot:=Input("[1]Dynamic Momentum Idx,  [2]dynamic periods 
used",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)))));
Vt:=Stdev(x,Stpds)/Mov(Stdev(x,Stpds),10,S);
pds:=pds/(Vt+.14142);
pds:=If(pds>Cum(IsDefined(x))-13,
 Cum(IsDefined(x))-13,pds);
pds:=If(pds<2,2,pds);

Up:=If(x>Ref(x,-1),x-Ref(x,-1),0);
Dw:=If(x<Ref(x,-1),Ref(x,-1)-x,0);
UpAvg:=Up*2/pds+PREV*(1-2/pds);
DwAvg:=Dw*2/pds+PREV*(1-2/pds);
DyMoIdx:=
 100-(100/(1+UpAvg/If(DwAvg>0,DwAvg,.000001)));

If(plot=1,DyMoIdx,pds)

---8<---------------------------


jose '-)
http://www.metastocktools.com



--- In equismetastock@xxxxxxxxxxxxxxx, pumrysh <no_reply@xxxx> wrote:
> An indicator I think you will enjoy.
> 
> Preston
> 
> 
> Description:
> 
> The Dynamic Momentum Index (DMI) was developed by Tushar Chande
> and Stanley Kroll. The indicator is covered in detail in their
> book The New Technical Trader.
> 
> The DMI is identical to Welles Wilder's Relative Strength Index 
> except the number of periods is variable rather than fixed. The 
> variability of the time periods used in the DMI is controlled by
> the recent volatility of prices. The more volatile the prices, the
> more sensitive the DMI is to price changes. In other words, the
> DMI will use more time periods during quiet markets, and less
> during active markets. The  time periods the DMI can reach is
> around a maximum of 30 and a minimum of 3. The volatility index
> used in controlling the time periods in the DMI is based on a
> calculation using a five period standard deviation and a ten
> period average of the standard deviation. The advantage of using a
> variable length time period when calculating the RSI is that it
> overcomes the negative effects of smoothing, which often obscure
> short-term moves.
> In this indicator the option to use a bipolar index is also 
> introduced. The formula for a bipolar index is Bipolar =( up - 
> down ) / ( up + down )
> 
> Interpretation:
> Chande recommends using the DMI much the same as the RSI. However, 
> because the DMI is more sensitive to market dynamics, it often
> leads the RSI into overbought / oversold territories by one or two
> days. 
> 
> Like the RSI, look for overbought (bearish) conditions above 70
> and oversold (bullish) conditions below 30. However, before basing
> any trade off of strict overbought/oversold levels using DMI or
> any overbought/oversold indicator, Chande recommends that you
> first qualify the trendiness of the market using indicators such
> as r-squared or CMO. If these indicators suggest a non-trending
> market, then trades based on strict overbought/oversold levels
> should produce the best results. If a trending market is
> suggested, you can use the DMI to enter trades in the direction of
> the trend.
> Formula:
> {Dynamic Momentum Index (DMI)}
> {written by Preston Umrysh}
> {This indicator uses Dll software developed by MetaStock Forum
> Crew}
> {http://forum.equis.com)}
> x:=Input("normal ouput=1 Biplolar index=2",1,2,1);
> Vt:=(Stdev(C,5)/Mov(Stdev(C,5),10,S))*10;
> Umom:=If(C>Ref(C,-1),C-Ref(C,-1),0);
> Dmom:=If(C<Ref(C,-1),Ref(C,-1)-C,0);
> UPS:= ExtFml( "ForumDll.VarSUM", Umom,Vt);
> DNS:= ExtFml( "ForumDll.VarSUM", Dmom,Vt);
> SumU:=ExtFml("ForumDll.VarMOV",UPS,Vt,e)/Vt;
> SumD:=ExtFml("ForumDll.VarMOV",DNS,Vt,e)/Vt;
> RS:=SumU/SumD;
> DMnm:=100-(100/(1+RS));
> DMIn:=(SumU-SumD)/(SumU+SumD);
> If(x=1,DMnm,DMin); {end}





------------------------ Yahoo! Groups Sponsor --------------------~--> 
<font face=arial size=-1><a href="http://us.ard.yahoo.com/SIG=12hqpsfa6/M=362343.6886682.7839641.1493532/D=groups/S=1705375617:TM/Y=YAHOO/EXP=1123666306/A=2894350/R=0/SIG=10tj5mr8v/*http://www.globalgiving.com";>Make a difference. Find and fund world-changing projects at GlobalGiving</a>.</font>
--------------------------------------------------------------------~-> 

 
Yahoo! Groups Links

<*> To visit your group on the web, go to:
    http://groups.yahoo.com/group/equismetastock/

<*> To unsubscribe from this group, send an email to:
    equismetastock-unsubscribe@xxxxxxxxxxxxxxx

<*> Your use of Yahoo! Groups is subject to:
    http://docs.yahoo.com/info/terms/