20.03.2013 Views

Journal of Technical Analysis - Market Technicians Association

Journal of Technical Analysis - Market Technicians Association

Journal of Technical Analysis - Market Technicians Association

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Inputs:<br />

Length(20), Rev(1.5);<br />

Vars:<br />

HH(0), LL(0), Count(0), gamma(0), alpha(0), beta(0), delta(.1), BP(0),<br />

Lead(0);<br />

If CurrentBar > Length Then Begin<br />

HH = Close;<br />

LL = Close;<br />

For Count = 0 to Length - 1 Begin<br />

If Close[Count] > HH Then HH = Close[Count];<br />

If Close[Count] < LL Then LL = Close[Count];<br />

End;<br />

If HH LL Then Value1 = (Close - LL) / (HH - LL) - .5;<br />

beta = Cosine(360 / Length);<br />

gamma = 1 / Cosine(720*delta / Length);<br />

alpha = gamma - SquareRoot(gamma*gamma - 1);<br />

BP = .5*(1 - alpha)*(Value1 - Value1[2]) + beta*(1 + alpha)*BP[1] -<br />

alpha*BP[2];<br />

Lead = (Length / 6.28318)*(BP - BP[1]);<br />

If <strong>Market</strong>Position = 0 and Lead Crosses Under BP Then Sell Short Next<br />

Bar on Open;<br />

//Disaster reversal<br />

If <strong>Market</strong>Position = 1 and Low < (1 - Rev/100)*EntryPrice Then Sell Short<br />

Next Bar on Open;<br />

If <strong>Market</strong>Position = -1 and High > (1 + Rev/100)*EntryPrice Then Buy Next<br />

Bar on Open;<br />

End;<br />

Appendix E<br />

EasyLanguage Code for Channel Cycle Trading Strategy<br />

Inputs:<br />

Length(7), UpThresh(78), DnThresh(36), Rev(1.3);<br />

Vars:<br />

CU(0), CD(0), I(0), MyRSI(0), Psn(0);<br />

If CurrentBar > Length Then Begin<br />

CU = 0;<br />

CD = 0;<br />

For I = 0 to Length - 1 Begin<br />

If Close[I] - Close[I + 1] > 0 Then CU = CU + Close[I] - Close[I + 1];<br />

If Close[I] - Close[I + 1] < 0 Then CD = CD + Close[I + 1] - Close[I];<br />

End;<br />

If CU + CD 0 Then MyRSI = 50*((CU - CD) / (CU + CD) + 1);<br />

Psn = (MyRSI + 2*MyRSI[1] + MyRSI[2]) / 4;<br />

If <strong>Market</strong>Position >= 0 and Psn Crosses Over UpThresh Then Sell Short<br />

Next Bar on Open;<br />

If <strong>Market</strong>Position (1 + Rev/100)*EntryPrice Then Buy Next<br />

Bar on Open;<br />

End;<br />

Appendix F<br />

Bibliography<br />

Arthur A. Merrill, “ Filtered Waves,” The <strong>Analysis</strong> Press, Chappaqua, NY 1977<br />

MCS Pro, Inside Edge Systems, Bill Brower, 200 Broad Street, Stamford, CT 06901<br />

www.eminiz.com, Corona Charts<br />

Jonathan Y. Stein, “Digital Signal Processing,” John Wiley & Sons, New York, 2000<br />

Perry J. Kaufman, “New Trading Systems and Methods,” John Wiley & Sons, New York, 2005<br />

Inputs:<br />

HPPeriod(10), UpThresh(.2), DnThresh(-.7), Rev(1.2);<br />

Vars:<br />

alpha(0), HP(0), HH(0), LL(0), Count(0), Psn(0), Fish(0), I(0);<br />

alpha = (1 - Sine (360 / HPPeriod)) / Cosine(360 / HPPeriod);<br />

HP = .5*(1 + alpha)*(Close - Close[1]) + alpha*HP[1];<br />

IF CurrentBar = 1 THEN HP = 0;<br />

If CurrentBar > HPPeriod Then Begin<br />

HH = HP;<br />

LL = HP;<br />

For Count = 0 to HPPeriod - 1 Begin<br />

If HP[Count] > HH Then HH = HP[Count];<br />

If HP[Count] < LL Then LL = HP[Count];<br />

End;<br />

If HH LL Then Value1 = 2*((HP - LL) / (HH + LL) - .5);<br />

Psn = (Value1 + 2*Value1[1] + Value1[2]) / 4;<br />

If Psn > .999 Then Psn = .999;<br />

If Psn < -.999 Then Psn = -.999;<br />

Fish = .5*Log((1 + Psn) / (1 - Psn));<br />

If <strong>Market</strong>Position >= 0 and Fish Crosses Over UpThresh Then Sell Short<br />

Next Bar on Open;<br />

If <strong>Market</strong>Position (1 + Rev/100)*EntryPrice Then Buy Next<br />

Bar on Open;<br />

End;<br />

EasyLanguage Code for Generic RSI Trading Strategy<br />

Appendix G<br />

EasyLanguage Code for HighPass Filter Plus Fisher Transform Trading Strategy<br />

Jo u r n a l <strong>of</strong> <strong>Technical</strong> <strong>Analysis</strong> • 2008 • Issue 65 33

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!