Metastock Formulas - M 1
Click here to go back to Metastock Formula Index

IMPORTANT: These formulas aren't my complete collection. For my complete collection of instantly usable, profitable and powerful MetaStock formulas Click Here

Would You Like To Use MetaStock To Its Full Potential? Discover the Amazingly Simple Secret to Master Metastock Step-By-Step - click here


A | A 1 | B | B 1 | C | C 1 | D | D 1 | E | F | G | H | I | J | K | L | M | M 1 | N | O | P | R | S | S 1 | T | U | V | W | Z |

Missing trading days
Momentum - normalized
Momentum, LRS-smoothed

Missing trading days

{ Plots missing daily (weekday) bars count }{ ©Copyright 2003-2004 Jose Silva }{ [email protected] }

ChkVol:=Input("Zero-volume days = missing data days?  Yes=1, No=0",0,1,1);
VolMissing:=If(ChkVol,V=0,0);

limit:=1960;  {do not change limit year}
LimLeap:=Frac(limit/4)=0 AND Frac(limit/100)<>0
 OR Frac(limit/400)=0;
NoCount:=limit*365+Int(limit/4)
 -Int(limit/100)+Int(limit/400)-LimLeap;
leap:=Frac(Year()/4)=0 AND Frac(Year()/100)<>0
 OR Frac(Year()/400)=0;
y:=Year()*365+Int(Year()/4)
 -Int(Year()/100)+Int(Year()/400)-NoCount;
m:=
 If(Month()=2,31-leap,
 If(Month()=3,59,
 If(Month()=4,90,
 If(Month()=5,120,
 If(Month()=6,151,
 If(Month()=7,181,
 If(Month()=8,212,
 If(Month()=9,243,
 If(Month()=10,273,
 If(Month()=11,304,
 If(Month()=12,334,
 -leap)))))))))));
DayNr:=y+m+DayOfMonth();
WkDayCount:=
 Int((DayNr+3)/7)+   {Mon}
 Int((DayNr+2)/7)+   {Tue}
 Int((DayNr+1)/7)+   {Wed}
 Int((DayNr)/7)+     {Thu}
 Int((DayNr-1)/7);   {Fri}

WkDayCount-ValueWhen(2,1,WkDayCount)-1
 +VolMissing

(Go Top...)

Momentum - normalized

{ Normalized Momentum v3.1 }{ ©Copyright 2003-2004 Jose Silva }{ [email protected] }

pds:=Input("Momentum periods",1,2520,10);
pdsN:=Input("normalizing periods (1=none)",
 1,2520,63);
x:=Input("use Open=1 High=2 Low=3 Close=4 Volume=5 P=6",1,6,4);
plot:=Input("Momentum=1,  midpoint crossover Signals=2",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)))));
y:=Ref(x,-pds);
ratio:=Min(x,y)/Max(x,y);
Mom:=If(x>y,2-ratio,ratio)*100-100;
MomNorm:=(Mom-LLV(Mom,pdsN))
 /(HHV(Mom,pdsN)-LLV(Mom,pdsN)+.000001)*100;
MomNorm:=If(pdsN=1,Mom,MomNorm);
midpt:=If(pdsN=1,0,
 Cum(MomNorm)/Cum(IsDefined(MomNorm)));
signals:=
 Cross(MomNorm,midpt)-Cross(midpt,MomNorm);

midpt;If(plot=2,signals,MomNorm)

(Go Top...)

Momentum, LRS-smoothed

{ LRS-smoothed normalized Momentum v2 }{ ©Copyright 2003 Jose Silva }{ [email protected] }

pds:=Input("Momentum periods",2,2520,10);
smooth:=Input("LRS smoothing periods",
 1,252,10);
plot:=Input("Momentum=1,  Smoothed=2,  Double smoothed=3",1,3,2);
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)))));
y:=Ref(x,-pds);
ratio:=Min(x,y)/Max(x,y);
Mom:=If(x>y,2-ratio,ratio)*100-100;
MoSm:=LinRegSlope(Mom,smooth)*10;
MoSm:=If(smooth<2,Mom,MoSm);
MoSm2:=LinRegSlope(MoSm,smooth)*4;
MoSm2:=If(smooth<2,Mom,MoSm2);

If(plot=1,Cum(Mom)/(Cum(Mom>-100)+.000001),
 If(plot=2,Cum(MoSm)/(Cum(MoSm>-100)+.000001),
 Cum(MoSm2)/(Cum(MoSm2>-100)+.000001)));

If(plot=1,Mom,If(plot=2,MoSm,MoSm2))

(Go Top...)


If you have Metastock formulas you would like to share,
Please email to MetaStock Formula
We look forward to hearing from you!


To learn more about how to use Metastock and its formula click here.


copyright 2003 MetaStock Website Home
Metastock® is a registered trademark of Equis International.