PureBytes Links
Trading Reference Links
|
Hi Preston,
You posted the codes below last August and I have only now
had a chance to have a play with them. On first blush they seem to be very
good, so thank you for sharing.
I notice however when set as indicators within a template,
that when opening charts, I receive consistent error warnings: "Division by
zero errors".
Is there anyway with your metastock wizardry, that these
division by zero warnings can be reduced or eliminated?
Again my thanks for posting the codes in the first instance.
Kevin
There are bold mushroom pickers and there are old mushroom pickers,
but there are no bold old mushroom pickers.
-----Original Message-----
From: equismetastock@xxxxxxxxxxxxxxx [mailto:equismetastock@xxxxxxxxxxxxxxx]
On Behalf Of pumrysh
Sent: Friday, 12 August 2005 2:03 AM
To: equismetastock@xxxxxxxxxxxxxxx
Subject: [EquisMetaStock Group] Re: DMX
sumamura,
Try one of these and see which one comes the closest. Two versions
here. Version A does not allow DMI periods to be set and has limited
lag periods. Version B gives more flexibility by utilizing some of
Jose's coding techniques. You will need to compare these to Jurik's
DMX to see which one comes closer.
Preston
{Dynamic Momentum Xa (DMX)}
{version A - Does not allow DMI periods to be set}
{A low lag version of DMI written by Preston Umrysh}
{Indicator uses Dll developed by MetaStock Forum Crew }
{Available at <http://forum.equis.com> }
{For personal use only }
x:=Input("normal ouput=1 Biplolar index=2",1,2,1);
Period:= Input("ZeroLag Period ",1,6,5);
{Division errors occur with lag beyond 6}
EMA1:= Mov(C,Period,E);
EMA2:= Mov(EMA1,Period,E);
Difference:= EMA1 - EMA2;
Z:= EMA1 + Difference;
Vt:=(Stdev(C,5)/Mov(Stdev(C,5),10,S))*10;
Umom:=If(Z>Ref(Z,-1),Z-Ref(Z,-1),0);
Dmom:=If(Z<Ref(Z,-1),Ref(Z,-1)-Z,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);
SDM:=If(x=1,DMnm,DMin);
PLOT:=Input("[1]WMA [2]Wilders",1,2,2);
SPD:= Input("Final Smoothing Periods",1,100,3);
X:=Mov(SDM,SPD,W);{weighted}
Y:=Wilders(SDM,SPD);{wilders}
If(PLOT=1,X,Y)
{end}
{Dynamic Momentum Xb (DMX)}
{version B - Allows DMI periods to be set}
{A low lag version of DMI written by Preston Umrysh}
{Indicator uses Dll developed by MetaStock Forum Crew }
{Available at <http://forum.equis.com> }
{with coding ideas from Jose Silva }
{<http://www.metastocktools.com> }
{For personal use only }
pds:=Input("DMI PERIODS",6,100,14);
Period:= Input("Lag Period ",1,50,10);
EMA1:= Mov(C,Period,E);
EMA2:= Mov(EMA1,Period,E);
Difference:= EMA1 - EMA2;
X:= EMA1 + Difference;
Vt:=Stdev(x,5)/Mov(Stdev(x,5),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);
PDX:=ExtFml("ForumDll.VarMOV",Up,pds,e);
MDX:=ExtFml("ForumDll.VarMOV",Dw,pds,e);
DSPL:=Input("[1]Normal [2]Bipolar",1,2,1);
PLOT:=Input("[1]WMA [2]Wilders",1,2,2);
SPD:= Input("Final Smoothing Periods",1,100,3);
CDM:=PDX/ MDX;
NDM:=100-(100/(1+CDM));
BDM:=100*(PDX - MDX)/
(PDX + MDX);
SDM:=If(DSPL=1,NDM,BDM);
X:=Mov(SDM,SPD,W);{weighted}
Y:=Wilders(SDM,SPD);{wilders}
If(PLOT=1,X,Y)
{end}
Yahoo! Groups Links
------------------------ Yahoo! Groups Sponsor --------------------~-->
Try Online Currency Trading with GFT. Free 50K Demo. Trade
24 Hours. Commission-Free.
http://us.click.yahoo.com/RvFikB/9M2KAA/U1CZAA/BefplB/TM
--------------------------------------------------------------------~->
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/
|