You are on page 1of 3

Timing Solutions for Swing Traders: Successful Trading Using

Technical Analysis and Financial Astrology


By Robert T.H. Lee and Peter A. Tryde
Copyright © 2012 by John Wiley & Sons Singapore Pte. Ltd.

APPENDIX 4

Formulas in
MetaStock Format*

MOMENTUM TIMING OSCILLATOR AS USED IN FIGURE 2.3

Length1:5Input("Base Unit",2,100,21);
Length2:5Input("First Period",2,100,13);
Length3:5Input("Second Period",1,100,8);
Length4:5Input("Third Period",1,100,8);
Cycle:5Input("Cycle",1,100,21);
plot:5Input("Select Plot, 15OB Lines, 25AutoLines 35Cycle Zones", 1,3,3);
n:5(RSI(Length1)-LLV(RSI(Length1),Length2));
k:5(HHV((RSI(Length1)),Length2)-LLV(RSI(Length1),Length2));
k2:5If(k50,0.000001,k);
Osc:5100*n/k2;
OscAvg1:5(2*Mov(Osc,Length3,S)-100);
OscAvg2:5Mov(OscAvg1,Length4,S);
StdP:51.2*Stdev(oscavg2,89);
StdM:5Neg(1.2*Stdev(oscavg2,89));
n2:5(Fml("frhlc")-LLV(Fml("frhlc"),Cycle));
k2:5HHV((Fml("frhlc")),Cycle)-LLV(Fml("frhlc"),Cycle);
k22:5If(k250,0.000001,k2);
OscAvg12:5(2*Mov((100*n2/k22),Length2,S)-100);
RwUp:5(451Stdev(OscAvg12,2));
RwDn:5Neg(451Stdev(oscavg12,2));
Zone:5If(oscavg12>0,RwUp,If(oscavg12<50,RwDn,RwUp));

*
For educational purposes only and not for the purposes of encouraging trading.

177
178 APPENDIX 4

If(plot51,50,If(plot52,StdP,Zone));
If(plot51,Neg(50),If(plot52,StdM,Zone));
OscAvg1; OscAvg2; 0;

{Frhlc: Function referred to in the formula Momentum Timing Oscillator}


frhlc:5(((RSI(HIGH,13))1(RSI(LOW,13))1(2*(RSI(CLOSE,13))))/4);
frhlc;

VOLUME ZONE OSCILLATOR AS REFERRED TO IN FIGURE 2.10


AND FIGURE 5.8

VZO was developed by Walid Khalil and David Steckler. The following VZO is modified
for merging of plots of volume ratio compressed indicator and planetary aspects
indicators.

prd:5Input("Period",1,200,13);
avg:5Input("Average",2,200,8);
y:5Input("Select Price 15MP(),25Typical(),35Close",1,3,1);
plot:5Input("Select Plot, 15vzo, 25sma, 35All",1,3,3);
y:5If(y51,MP(),If(y52,Typical(),CLOSE));
Change:5ROC(y,1,$);
x:5If(Change>0,VOLUME,-VOLUME);
vp:5Mov(x,prd,E);
tv:5If(Mov(VOLUME,prd,E)50,0.000001,Mov(V,prd,E));
vzo:5(1001(100*vp/tv))/2;
vzo1:5Mov(vzo,avg,S);
If(plot51,vzo,vzo1);
If(plot52,vzo1,vzo);
70; 50; 30;

VOLUME RATIO COMPRESSED INDICATOR AS REFERRED TO IN


FIGURE 5.3

Period1:5Input("Period1",1,144,2);
Period2:5Input("Period2",1,144,10);
x:5Input("Compressed",0,100,0.2);
VAvg1:5Mov(Abs(VOLUME),Period1,E);
VAvg2:5Mov(Abs(VOLUME),Period2,S);
z:5If(vavg250,0.0001,vavg2);
VolRatio:5100*(VAvg1/z);
VolRatio*x;
Formulas in MetaStock Format 179

MOVING AVERAGE LINE WITH UPPER AND LOWER MIRROR LINES


AS REFERRED TO IN FIGURE 7.8

Period:5Input("Period",1,500,89);
PCent1:5Input("Upper Pecentage",1,200,7);
PCent2:5Input("Lower Percentage",1,200,7);
x:5Input("Select Price, 15mp(),25typical(),35close",1,3,3);
plot:5Input("Select Plot,15RMA1Mirror, 25Mirror,35RMA",1,3,1);
x:5If(x51,MP(),If(x52,Typical(), C));
RMA:5Mov(x,Period,E)1LinRegSlope(x,Period)*(1);
MirrorP:5RMA1(RMA*PCent1/100);
MirrorN:5RMA-(RMA*PCent2/100);
Mirror:5If(LOW>RMA,MirrorP,If(HIGH<RMA,MirrorN,RMA));
{Plot PMA on price chart, signals in own window}
If(plot51,RMA,If(plot52,Mirror,RMA));
If(plot51,Mirror,If(plot53,RMA,Mirror));

MID-TERM PERIOD MOVING AVERAGE LINES AS REFERRED TO IN


FIGURE 2.5

Fast:5Input("Fast MA",1,300,9);
y:5Input("Select Price 15MP(),25Typical(),35Close",1,3,3);
plot:5Input("Plot [1]Disparity [2]Two Lines [3]All",1,3,2);
y:5If(y51,MP(),If(y52,Typical(),C));
Ind1:5Mov(y,Fast,S)1LinRegSlope(y,Fast)*3;
Ind2:5Mov(y,9,S)1LinRegSlope(y,9);
iDiff:5(1.382*(Ind1-Ind2)10.618*Ref(Ind1-Ind2,-1))/2;
Ind3:5If(Cross(Ind1,Ind2),(Ind11iDiff),If(Cross(ind2,ind1),
(Ind1-iDiff),ind11idiff));
If(plot51,Ind3,If(plot52,Ind1,Ind3));
If(plot52,Ind2,If(plot51,Ind3,Ind2));
If(plot53,Ind1,If(plot51,Ind3,Ind1));

You might also like