DOWNLOAD POINT
Right click here for the spreadsheets used in chapter
38. (Right click on the link, and select SAVE TARGET AS. This
will download the
Excel spreadsheet)
Metastock formulas used in TREND TRADING
GUPPY MULTIPLE MOVING AVERAGE EXPERT FOR METASTOCK
The
formulas included at the end of Chapter 19 are available direct from wilsontechstats.com
CLASSIC DARVAS
BOX FORMULAS FOR METASTOCK
These
formulas were developed by Matthew Ford. They provide a method of plotting the parameters
of the Classic Darvas Box in Metastock. If you are unsure about how to copy and paste these in
Metastock, please follow this link for detailed instructions. (Right
click on the link, and select SAVE TARGET AS. This will download the PDF file.)
The first formula is
"Darvas High" which identifies new period highs followed by three lower highs.
Name of Indicator: Darvas High
Formula:
Periods:=100; { this is the only place the number of
periods is set}
If((Ref(H,-3) >= Ref(HHV(H,Periods),-4))
AND Ref(H,-3) > Ref(H,-2)
AND Ref(H,-3) > Ref(H,-1)
AND Ref(H,-3) > H,
Ref(H,-3),
PREVIOUS );
Name of Indicator: New Darvas High
Formula:
dh:= Fml("Darvas
High");
def:=IsDefined(dh) AND
IsDefined(Ref(dh,-2));
(def AND Ref(def,-1)=0) + (dh
AND Ref(dh,-1)<>dh);
Name of Indicator: New Darvas Low
Formula:
dh:= Fml("Darvas
High");
ndl:=(Ref(L,-3) < Ref(L,-2)
AND Ref(L,-3) < Ref(L,-1)
AND Ref(L,-3) < L AND
Ref(H,-2) < dh
AND Ref(H,-1) < dh AND H
< dh);
def:=IsDefined(dh) AND
IsDefined(Ref(dh,-1));
(def AND Ref(def,-1)=0)+ (ndl
AND (Ref(ndl,-1) < 1))
Name of Indicator: Darvas Low
Formula:
If( Fml("New Darvas
Low") , Ref(L,-3), PREVIOUS);
Name of Indicator: Darvas Box End
Formula:
end:=BarsSince(Fml("New
Darvas High")) <
BarsSince(Ref(Fml("New Darvas Low"),-1));
def:=IsDefined(end) AND
IsUndefined(Ref(end,-1));
(def AND Ref(def,-1)=0)+ (end
AND Fml("New Darvas Low"))
We are now in a position to
plot the High and Low of the Darvas box.
Name of Indicator: Darvas Box High
Formula:
dbe:=Fml("Darvas Box
End");
dbhi:=If(dbe AND
IsDefined(Ref(dbe,-1)), Fml("Darvas
High"), PREVIOUS);
If(dbhi=0,H+0.0000001,dbhi)
Name of Indicator: Darvas Box Low
Formula:
dbe:=Fml("Darvas Box
End");
bl:=If(dbe AND
IsDefined(Ref(dbe,-1)), Fml("Darvas
Low"), PREVIOUS);
If(bl=0,L-0.0000001,bl)
Next we need to develop the
Sell Indicator. First we look for possible
sell signals.
Name of Indicator: Darvas Poss Sell
Formula:
dsl:=L < Fml("Darvas
Box Low");
def:=IsDefined(dsl) AND
IsDefined(Ref(dsl,-1));
(def AND Ref(def,-1)=0)+(dsl
AND (Ref(dsl,-1)<dsl))
Name of Indicator: Darvas Sell
Formula:
sell:=BarsSince(Fml("Darvas
Box End")) <
BarsSince(Fml("Darvas Poss
Sell"));
def:=IsDefined(sell) AND
IsDefined(Ref(sell,-1));
((def AND Ref(def,-1)=0) +
(sell = 0 AND Ref(sell,-1)=1))
Name of Indicator: Darvas Buy
Formula:
dc:= Fml("darvas
sell");
{ change the following line to
H>Fml("Darvas Box Hi") .. for Classic Darvas}
db:= C>Fml("Darvas Box
Hi") AND
(BarsSince(Fml("darvas box end")) < BarsSince(Fml("darvas
sell")));
dto:=If(db AND
PREVIOUS=0,1,If(dc,0,PREVIOUS));
dto AND (Ref(dto,-1) =0)
Using these formulas it is
simple to create a new Metastock Expert Advisor for Darvas.
Create a New advisor, call it Darvas and fill in the following tabs
For the Trends tab I used the
somewhat arbitrary
Bullish C
>= Fml("Darvas Box Low");
Bearish C
< Fml("Darvas Box Low");
For Symbols tab use
Buy: up arrow graphic, formula Fml("Darvas
Buy")
Sell: down arrow graphic,
formula Fml("Darvas Sell")
For Alerts tab use
Buy: formula Fml("Darvas
Buy") and some suitable text message such as "buy on next open"
Sell: formula Fml("Darvas
Sell") and some suitable text message such as "sell on next open"