Page 13                          

LSS Oscillator & Pivot Point

Here are a few formula's that I picked up from a
mailing from George Angell


LSS 5 day Osc
X:=HHV(H,5)-Ref(O,-5);
Y:=C-LLV(L,5);
LSS:=100*(X+Y)/(HHV(H,5)-LLV(L,5))*2;
LSS;

LLS 5 DAY Osc Diff from 3 day osc
X:=HHV(H,5)-Ref(O,-5);
Y:=C-LLV(L,5);
LSS:=100*(X+Y)/(HHV(H,5)-LLV(L,5))*2;
Diff:=LSS-Ref(LSS,-3);
Diff;

LLS Strength Index(1 day)
100*(Ref(C,-1)-Ref(L,-1))/(Ref(H,-1)-Ref(L,-1))

LLS Pivot Breakout Buy Number
X:=(H+L+C)/3;
BBN:=2*X-L;
BSN:=2*X-H;
BBN;
BSN;

From Henry Kaczmarczyk


Volatility % Indicator

Create the Volatility% Indicator from William Brower’s S&C article in MetaStock for Windows.

Volatility%

Lookback := Input("Time Periods",1,1000,50);

HighVolatility := Input("High Volatility %",.01,100,3);

100 * Sum(100 * ATR(1)/CLOSE > HighVolatility, Lookback)/Lookback

From Henry Kaczmarczyk



Instantaneous Trendline & Sinewave Indicator as described by John Ehlers


Here are a few formula's that I picked up from a
mailing from George Angell


LSS 5 day Osc
X:=HHV(H,5)-Ref(O,-5);
Y:=C-LLV(L,5);
LSS:=100*(X+Y)/(HHV(H,5)-LLV(L,5))*2;
LSS;

LLS 5 DAY Osc Diff from 3 day osc
X:=HHV(H,5)-Ref(O,-5);
Y:=C-LLV(L,5);
LSS:=100*(X+Y)/(HHV(H,5)-LLV(L,5))*2;
Diff:=LSS-Ref(LSS,-3);
Diff;

LLS Strength Index(1 day)
100*(Ref(C,-1)-Ref(L,-1))/(Ref(H,-1)-Ref(L,-1))

LLS Pivot Breakout Buy Number
X:=(H+L+C)/3;
BBN:=2*X-L;
BSN:=2*X-H;
BBN;
BSN;


TASC Trader's Tip: Volatility % Indicator (Dec '97)

You can easily create the Volatility% Indicator from William Brower’s article in MetaStock for Windows. First choose Indicator Builder from the Tools menu in MetaStock. Next choose New and enter one of the following formulas:

Formula for MetaStock 6.5

Volatility%

Lookback := Input("Time Periods",1,1000,50);

HighVolatility := Input("High Volatility %",.01,100,3);

100 * Sum(100 * ATR(1)/CLOSE > HighVolatility, Lookback)/Lookback


Instantaneous Trendline and Sinewave Indicator
by John Ehlers

Here is the MetaStock 6.52 or higher formula code for the Instantaneous Trendline and Sinewave Indicator as described by John Ehlers in his article “At Last! A Trend-Friendly Oscillator”. To implement them the following formulas must be created in MetaStock’s Indicator Builder. Each formula must be created separately and must be named exactly as it appears below. Only the last two formulas are plotted, so you may wish to prevent the others from being displayed in the Indicator QuickList by unchecking the “Display In QuickList” option when creating the formula.

To download and install the formulas use the following steps

Download the MS65FORM.DTA file into a temp folder

To Download the file for this formula click MS65FORM.DTA

Use the following instructions to Import the MS65FORM.DTA file from the temp file it was downloaded to.

1. Run MetaStock.

2. Choose Indicator Builder from the Tools menu.

3. Click the Organize button to launch the Formula Organizer Wizard.

4. Follow the on-screen instructions.


Name: H cycle count 1a

value:= Fml("Hilbert cycle period - 1a");

If(Sum(value,6)>=360 AND Sum(value,5)<360 ,6,0) +

If(Sum(value,7)>=360 AND Sum(value,6)<360 ,7,0) +

If(Sum(value,8)>=360 AND Sum(value,7)<360 ,8,0) +

If(Sum(value,9)>=360 AND Sum(value,8)<360 ,9,0) +

If(Sum(value,10)>=360 AND Sum(value,9)<360 ,10,0) +

If(Sum(value,11)>=360 AND Sum(value,10)<360 ,11,0) +

If(Sum(value,12)>=360 AND Sum(value,11)<360 ,12,0) +

If(Sum(value,13)>=360 AND Sum(value,12)<360 ,13,0) +

If(Sum(value,14)>=360 AND Sum(value,13)<360 ,14,0) +

If(Sum(value,15)>=360 AND Sum(value,14)<360 ,15,0)



Name: H cycle count 2a

value:= Fml("Hilbert cycle period - 1a");

If(Sum(value,16)>=360 AND Sum(value,15)<360 ,16,0) +

If(Sum(value,17)>=360 AND Sum(value,16)<360 ,17,0) +

If(Sum(value,18)>=360 AND Sum(value,17)<360 ,18,0) +

If(Sum(value,19)>=360 AND Sum(value,18)<360 ,19,0) +

If(Sum(value,20)>=360 AND Sum(value,19)<360 ,20,0) +

If(Sum(value,21)>=360 AND Sum(value,20)<360 ,21,0) +

If(Sum(value,22)>=360 AND Sum(value,21)<360 ,22,0) +

If(Sum(value,23)>=360 AND Sum(value,22)<360 ,23,0) +

If(Sum(value,24)>=360 AND Sum(value,23)<360 ,24,0) +

If(Sum(value,25)>=360 AND Sum(value,24)<360 ,25,0)



Name: H cycle count 3a

value:= Fml("Hilbert cycle period - 1a");

If(Sum(value,26)>=360 AND Sum(value,25)<360 ,26,0) +

If(Sum(value,27)>=360 AND Sum(value,26)<360 ,27,0) +

If(Sum(value,28)>=360 AND Sum(value,27)<360 ,28,0) +

If(Sum(value,29)>=360 AND Sum(value,28)<360 ,29,0) +

If(Sum(value,30)>=360 AND Sum(value,29)<360 ,30,0) +

If(Sum(value,31)>=360 AND Sum(value,30)<360 ,31,0) +

If(Sum(value,32)>=360 AND Sum(value,31)<360 ,32,0) +

If(Sum(value,33)>=360 AND Sum(value,32)<360 ,33,0) +

If(Sum(value,34)>=360 AND Sum(value,33)<360 ,34,0) +

If(Sum(value,35)>=360 AND Sum(value,34)<360 ,35,0)



Name: H ip sum 1

pd:=Int(Fml("Hilbert cycle period - final-a"));

pr:=(H+L)/2;

(Cos(0)*pr)+

(Cos(360*(1/pd))*Ref(pr,-1))+

(Cos(360*(2/pd))*Ref(pr,-2))+

(Cos(360*(3/pd))*Ref(pr,-3))+

(Cos(360*(4/pd))*Ref(pr,-4))+

(Cos(360*(5/pd))*Ref(pr,-5))+

If(pd>6, Cos(360*(6/pd))*Ref(pr,-6), 0)+

If(pd>7, Cos(360*(7/pd))*Ref(pr,-7), 0)+

If(pd>8, Cos(360*(8/pd))*Ref(pr,-8), 0)+

If(pd>9, Cos(360*(9/pd))*Ref(pr,-9), 0)+

If(pd>10, Cos(360*(10/pd))*Ref(pr,-10), 0)+

If(pd>11, Cos(360*(11/pd))*Ref(pr,-11), 0)+

If(pd>12, Cos(360*(12/pd))*Ref(pr,-12), 0)+

If(pd>13, Cos(360*(13/pd))*Ref(pr,-13), 0)+

If(pd>14, Cos(360*(14/pd))*Ref(pr,-14), 0)



Name: H ip sum 2

pd:=Int(Fml("Hilbert cycle period - final-a"));

pr:=(H+L)/2;

If(pd>15, Cos(360*(15/pd))*Ref(pr,-15), 0)+

If(pd>16, Cos(360*(16/pd))*Ref(pr,-16), 0)+

If(pd>17, Cos(360*(17/pd))*Ref(pr,-17), 0)+

If(pd>18, Cos(360*(18/pd))*Ref(pr,-18), 0)+

If(pd>19, Cos(360*(19/pd))*Ref(pr,-19), 0)+

If(pd>20, Cos(360*(20/pd))*Ref(pr,-20), 0)+

If(pd>21, Cos(360*(21/pd))*Ref(pr,-21), 0)+

If(pd>22, Cos(360*(22/pd))*Ref(pr,-22), 0)+

If(pd>23, Cos(360*(23/pd))*Ref(pr,-23), 0)+

If(pd>24, Cos(360*(24/pd))*Ref(pr,-24), 0)



Name: H ip sum 3

pd:=Int(Fml("Hilbert cycle period - final-a"));

pr:=(H+L)/2;

If(pd>25, Cos(360*(25/pd))*Ref(pr,-25), 0)+

If(pd>26, Cos(360*(26/pd))*Ref(pr,-26), 0)+

If(pd>27, Cos(360*(27/pd))*Ref(pr,-27), 0)+

If(pd>28, Cos(360*(28/pd))*Ref(pr,-28), 0)+

If(pd>29, Cos(360*(29/pd))*Ref(pr,-29), 0)+

If(pd>30, Cos(360*(30/pd))*Ref(pr,-30), 0)+

If(pd>31, Cos(360*(31/pd))*Ref(pr,-31), 0)+

If(pd>32, Cos(360*(32/pd))*Ref(pr,-32), 0)+

If(pd>33, Cos(360*(33/pd))*Ref(pr,-33), 0)+

If(pd>34, Cos(360*(34/pd))*Ref(pr,-34), 0)



Name: H rp sum 1

pd:=Int(Fml("Hilbert cycle period - final-a"));

pr:=(H+L)/2;

(Sin(0)*pr)+

(Sin(360*(1/pd))*Ref(pr,-1))+

(Sin(360*(2/pd))*Ref(pr,-2))+

(Sin(360*(3/pd))*Ref(pr,-3))+

(Sin(360*(4/pd))*Ref(pr,-4))+

(Sin(360*(5/pd))*Ref(pr,-5))+

If(pd>6, Sin(360*(6/pd))*Ref(pr,-6), 0)+

If(pd>7, Sin(360*(7/pd))*Ref(pr,-7), 0)+

If(pd>8, Sin(360*(8/pd))*Ref(pr,-8), 0)+

If(pd>9, Sin(360*(9/pd))*Ref(pr,-9), 0)+

If(pd>10, Sin(360*(10/pd))*Ref(pr,-10), 0)+

If(pd>11, Sin(360*(11/pd))*Ref(pr,-11), 0)+

If(pd>12, Sin(360*(12/pd))*Ref(pr,-12), 0)+

If(pd>13, Sin(360*(13/pd))*Ref(pr,-13), 0)+

If(pd>14, Sin(360*(14/pd))*Ref(pr,-14), 0)



Name: H rp sum 2

pd:=Int(Fml("Hilbert cycle period - final-a"));

pr:=(H+L)/2;

If(pd>15, Sin(360*(15/pd))*Ref(pr,-15), 0)+

If(pd>16, Sin(360*(16/pd))*Ref(pr,-16), 0)+

If(pd>17, Sin(360*(17/pd))*Ref(pr,-17), 0)+

If(pd>18, Sin(360*(18/pd))*Ref(pr,-18), 0)+

If(pd>19, Sin(360*(19/pd))*Ref(pr,-19), 0)+

If(pd>20, Sin(360*(20/pd))*Ref(pr,-20), 0)+

If(pd>21, Sin(360*(21/pd))*Ref(pr,-21), 0)+

If(pd>22, Sin(360*(22/pd))*Ref(pr,-22), 0)+

If(pd>23, Sin(360*(23/pd))*Ref(pr,-23), 0)+

If(pd>24, Sin(360*(24/pd))*Ref(pr,-24), 0)



Name: H rp sum 3

pd:=Int(Fml("Hilbert cycle period - final-a"));

pr:=(H+L)/2;

If(pd>25, Sin(360*(25/pd))*Ref(pr,-25), 0)+

If(pd>26, Sin(360*(26/pd))*Ref(pr,-26), 0)+

If(pd>27, Sin(360*(27/pd))*Ref(pr,-27), 0)+

If(pd>28, Sin(360*(28/pd))*Ref(pr,-28), 0)+

If(pd>29, Sin(360*(29/pd))*Ref(pr,-29), 0)+

If(pd>30, Sin(360*(30/pd))*Ref(pr,-30), 0)+

If(pd>31, Sin(360*(31/pd))*Ref(pr,-31), 0)+

If(pd>32, Sin(360*(32/pd))*Ref(pr,-32), 0)+

If(pd>33, Sin(360*(33/pd))*Ref(pr,-33), 0)+

If(pd>34, Sin(360*(34/pd))*Ref(pr,-34), 0)



Name: H TL sum 1

value:=Int(Fml("Hilbert cycle period - final-a"));

If(value=6, Mov((H+L)/2,8,S),0) +

If(value=7, Mov((H+L)/2,9,S),0) +

If(value=8, Mov((H+L)/2,10,S),0) +

If(value=9, Mov((H+L)/2,11,S),0) +

If(value=10, Mov((H+L)/2,12,S),0) +

If(value=11, Mov((H+L)/2,13,S),0) +

If(value=12, Mov((H+L)/2,14,S),0) +

If(value=13, Mov((H+L)/2,15,S),0) +

If(value=14, Mov((H+L)/2,16,S),0) +

If(value=15, Mov((H+L)/2,17,S),0)



Name: H TL sum 2

value:=Int(Fml("Hilbert cycle period - final-a"));

If(value=16, Mov((H+L)/2,18,S),0) +

If(value=17, Mov((H+L)/2,19,S),0) +

If(value=18, Mov((H+L)/2,20,S),0) +

If(value=19, Mov((H+L)/2,21,S),0) +

If(value=20, Mov((H+L)/2,22,S),0) +

If(value=21, Mov((H+L)/2,23,S),0) +

If(value=22, Mov((H+L)/2,24,S),0) +

If(value=23, Mov((H+L)/2,25,S),0) +

If(value=24, Mov((H+L)/2,26,S),0) +

If(value=25, Mov((H+L)/2,27,S),0)



Name: H TL sum 3

value:=Int(Fml("Hilbert cycle period - final-a"));

If(value=26, Mov((H+L)/2,28,S),0) +

If(value=27, Mov((H+L)/2,29,S),0) +

If(value=28, Mov((H+L)/2,30,S),0) +

If(value=29, Mov((H+L)/2,31,S),0) +

If(value=30, Mov((H+L)/2,32,S),0) +

If(value=31, Mov((H+L)/2,33,S),0) +

If(value=32, Mov((H+L)/2,34,S),0) +

If(value=33, Mov((H+L)/2,35,S),0) +

If(value=34, Mov((H+L)/2,36,S),0) +

If(value=35, Mov((H+L)/2,37,S),0)



Name: Hilbert cycle period - 1a

value1:=((H+L)/2) - Ref(((H+L)/2),-6);

value2:= Ref(value1,-3);

value3:=0.75*(value1-Ref(value1,-6)) + 0.25*(Ref(value1,-2)-Ref(value1,-4));


inphase:= 0.33 * value2 + (0.67 * PREV);

quad:= 0.2 * value3 + ( 0.8 * PREV);


p1:=Atan(Abs(quad+Ref(quad,-1)),Abs(inphase+Ref(inphase,-1)));


phase:=If(inphase<0 AND quad>0, 180-p1,

If(inphase<0 AND quad<0, 180+p1,

If(inphase>0 AND quad<0, 360-p1,p1)));


dp:=If(Ref(phase,-1)<90 AND phase>270, 360+Ref(phase,-1)-phase,Ref(phase,-1)-phase);

dp2:=If(dp < 1, 1,

If(dp > 60, 60, dp));


dp2



Name: Hilbert cycle period - final-a

c1:= Fml( "H cycle count 1a") + Fml( "H cycle count 2a") + Fml( "H cycle count 3a") ;

c2:=If(c1=0,PREV,c1);


(0.25*c2) + (0.75*PREV)



Name: Instantaneous Trend Line

pr:=(H+L)/2;


(Fml("H TL sum 1") + Fml("H TL sum 2") + Fml("H TL sum 3"));

0.33*(pr + (0.5*(pr-Ref(pr,-3)))) + (0.67*PREV)



Name: Sinewave Indicator

pd:=Int(Fml("Hilbert cycle period - final-a"));

cp:=Fml("Hilbert cycle period - final-a");

ip:=Fml( "H ip sum 1") + Fml( "H ip sum 2") +

Fml( "H ip sum 3");

rp:=Fml( "H rp sum 1") + Fml( "H rp sum 2") +

Fml( "H rp sum 3");


dc1:=If(Abs(ip)>0.001, Atan(rp/ip,1), 90*If(rp>=0,1,-1));

dc2:=If(pd<30 AND cp>0,dc1+((6.818/cp - 0.227)*360),dc1);

dc3:=If(ip<0, dc2+270, dc2+90);

dcp:=If(dc3>315, dc3-360, dc3);


Sin(dcp);

Sin(dcp+45)

from Henry Kaczmarczyk
 

Zero Lag EMA

Here's my Metastock 6.2 coded version of the Zero Lag Moving Average, as described in the April, 2000, issue of Technical Analysis of Stocks and Commodities. I've also used it to construct a Zero Lag MACD and a Zero Lag MACD trigger signal.

Period:= Input("What Period",1,250,10);
EMA1:= Mov(CLOSE,Period,E);
EMA2:= Mov(EMA1,Period,E);
Difference:= EMA1 - EMA2;
ZeroLagEMA:= EMA1 + Difference;
ZeroLagEMA

Peter Martin
alakazam@bigpond.com


Zero Lag MACD

EMA1:= Mov(CLOSE,13,E);
EMA2:= Mov(EMA1,13,E);
Difference:= EMA1 - EMA2;
ZeroLagEMA13:= EMA1 + Difference;
EMA1:= Mov(CLOSE,21,E);
EMA2:= Mov(EMA1,21,E);
Difference:= EMA1 - EMA2;
ZeroLagEMA21:= EMA1 + Difference;
ZeroLagMACD:=ZeroLagEMA13 - ZeroLagEMA21;
ZeroLagMACD

Peter Martin
alakazam@bigpond.com



Zero Lag MACD Trigger Signal
(To be used with the ZeroLag MACD above)


EMA1:= Mov(CLOSE,13,E);
EMA2:= Mov(EMA1,13,E);
Difference:= EMA1 - EMA2;
ZeroLagEMA13:= EMA1 + Difference;
EMA1:= Mov(CLOSE,21,E);
EMA2:= Mov(EMA1,21,E);
Difference:= EMA1 - EMA2;
ZeroLagEMA21:= EMA1 + Difference;
ZeroLagMACD:=ZeroLagEMA13 - ZeroLagEMA21;
EMA1:= Mov(ZeroLagMACD,8,E);
EMA2:= Mov(EMA1,8,E);
Difference:= EMA1 - EMA2;
ZeroLagTRIG:= EMA1 + Difference;
ZeroLagTRIG

Regards
Peter Martin
alakazam@bigpond.com


Improved Chandeleir Exit

A few weeks ago when the Chandelier Exit was posted to on our board board, I
asked if there was a faster version of it. On my (slowpoke) 200 Mhz PC at
home, it took about 1 to 2 minutes to calculate the formula on a single
stock.

Anyway, I did not hear of any feasible solutions. Last night, upon reading
about the 25X25 system on this site , it struck me that the original
Chandelier Exit (see below) had a whole bunch of PREV statements in it. I'm
sure everyone knows where I'm going with this by now.

Anyway, here is how the code (at least this iteration) should be modified to
speed up the calculation by a factor of 5. Basically, we move PREV into a
variable vPREV prior to using it (so that it is only calculate once) in the
long and short exits. Here is the code for the long exit. I tested it with
the sample Entry Rule and receive the same results in 1/5th the time. Just
modify the SHORT exit in the same way. Hope this helps everyone using it.

{DEFINE ENTRY PRICE, WITH EXIT BEING -- ENTRY PRICE AND NO TRADE BEING 0}
{Move PREV into a variable to speed things up - DB 2/17/00}
vPREV:=PREV;
EntryPrice:= If(vPREV <= 0,
{Trade entered today?}
If(LongEntry, CLOSE, 0),
{Trade entered before today. Stopped today?}
If(LOW <= vPREV - MoneyMgmtStop, -vPREV,
If(LOW <= HighestSince(1,vPREV=0, HIGH) - 3 * ATR(10), -vPREV,
If(LOW <= HighestSince(1,vPREV=0, CLOSE) - 2.5 * ATR(10), -vPREV,
vPREV))));

David Bozkurtian 2/17/00 


Variable MA Formula- Updated

periods:=Input("periods",1,244,89);
VariableMA511( mp() , periods)

Equis put this function in for me. It uses VHF rather than CMO. Unlike the present version, this is better.

Richard


RSI Offset


RSI(13) - 50 {offset the RSI to +-50}

from Warthog


MACD Offset

(MACD()*10 +50) {offset the MACD to 50}

from Warthog