MetaStock™ Zone Forum & FAQ Artykuły Linki Elliott Waves EasyLanguage™ Zone

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

Volume Zone Oscillator (VZO) by Waleed Aly Khalil

All,

The 2008/9 edition of the IFTA Journal contains an indicator developed by Waleed Aly Khalil called the Volume Zone
Oscillator or VZO for short. The article that Waleed wrote explains the concepts behind the use of this indicator.
The Journal can be found at the following link: http://www.ifta.org/public/files/journal/d_ifta_journal_09.pdf

The article is on page 18 of this pdf file.

The Metastock formula is below:

Volume Zone Oscillator (VZO)

40;-40;
tp:=Input("Periods",2,99,14);{time periods in calculation}
change:=ROC(CLOSE,1,\$);
R:=If(change>0,VOLUME,-VOLUME);
VP:=Mov(R,tp,E);
TV:=Mov(V,tp,E);
VZO:= (VP/TV)*100;
VZO;{end}

Enjoy,

Preston

==============================

Hi Preston

Here's a Multi-Frame version of VZO for weekly / monthly / quarterly values.

Regards

Roy
www.metastocktips.co.nz

Volume Zone Oscillator (VZO) - Multi-Frame D

{Volume Zone Oscillator}
{Published in 2008/2009 IFTA Journal by Waleed Aly Khalil}
{Requires Equis Forum DLL - http://forum.equis.com/files}
{Adapted to Multi-Frame format by Roy Larsen}

{User settings}
N:=Input("Multi-Frame D VZO, Periods",2,99,10);
J:=Input("Months per Frame, 0=Weekly",0,12,0);
J:=If(J<5 OR Mod(J,3)=0 AND (J<>9),Int(J),-1);
G:=Input("End-of-week Offset in Days",0,6,0);
Q:=Input("Mode, 0=Static 1=Dynamic 2=Delayed",0,2,1);
{Update on last bar, new bar or new frame}

{Timing signals}
{Day counter by metastocktools.com}
D:=DayOfWeek();M:=Month();Y:=Year();
Z:=Cum(1);F:=Rnd(Life(291231));
M:=If(J=0,ValueWhen(1,Z=1,F+D-G-1)-F,
(Y-ValueWhen(1,Z=1,Y))*12+M);
I:=If(J=0,Int(M/7),Int((M-1)/Max(1,J)));
I:=I>ValueWhen(2,1,I);
G:=LastValue(J<0 OR Lowest(Sum(I>0,5))=5);
I:=ExtFml("Forum.Sum",I,1);M:=G+I;
F:=ExtFml("Forum.Sum",Ref(I,1),1)*(M=0)*(Z>1)+G;
B:=LastValue(Z);A:=B-1=Z;B:=B=Z;
F:=F+B*(Q=0)*(J=0)*(D=5);
J:=If(A+LastValue(J)>2 OR B+(Q=1)=2,1,J);
J:=If(G,1,If(Q=2,M*2,J));

{Frame CLOSE}
K:=ValueWhen(1,J,If(J=1,C,ValueWhen(2-G,1,C)));

{Frame VZO}
Change:=K-ValueWhen(2,J,K);
B:=ExtFml("Forum.Sum",V,A);
U:=ValueWhen(1,J,If(J=1,B,ValueWhen(2-G,1,B)));
R:=If(Change>0,U,-U);
Q:=If(J,N,Pwr(10,10));
VP:=ExtFml("Forum.Mov",R,Q,E);
TV:=ExtFml("Forum.Mov",U,Q,E);
40; -40;
ValueWhen(1,Cum(J>0)>N,100*VP/TV);

==============================

Thanks Preston. I thought he detailed some of the systems on page 28 through 32 with results. The only one he did not give details about is the last one in which he combines the five or six methods together.

==============================

Below are the three trading tactics outline by Waleed.

I had actually been following the indicator on a blog and that was where I was introduced to it. The blogger uses the ADX(14) in all three trading tactics and I noticed that Waleed had used it only in the sideways market. That may be something that you may wish to include in the trending markets. Something else to consider is that the ADX that Equis packaged does have a flaw which shows up at the longer lookback periods. At a lookback of 14 days I think you will be okay.

Finally, what I wrote is just an idea to help visualize the methodology of the system. I am sure that the programming can be done differently if you like.

Preston

{VZO Tactic One}
{Sideways Trending Market}
VZOvol:=mov(VOLUME,15,s) > 25000;
VZOT1buy:= Cross(Fml( "Volume Zone Oscillator (VZO)"),15);
VZOT1sell:=Cross(-5, Fml( "Volume Zone Oscillator (VZO)"))*-1;
If(VZOvol AND VZOside,VZOT1sell,0);

{VZO Tactic Two}
{Uptrending Market}
VZOvol:=mov(VOLUME,15,s) > 25000;
VZOuptrend:=close > mov(close,60,e);
VZOT2buy1:= Cross(Fml( "Volume Zone Oscillator (VZO)"),20);
VZOT2buy1:= Cross(Fml( "Volume Zone Oscillator (VZO)"),-40)*2;
VZOT2sell:=Cross(40, Fml( "Volume Zone Oscillator (VZO)"))*-1;
If(VZOvol AND VZOuptrend,VZOT2sell,0);

{VZO Tactic Three}
{Downtrending Market}
VZOvol:=mov(VOLUME,15,s) > 25000;
VZOdntrend:=close < mov(close,60,e);
VZOT3buy1:= Cross(Fml( "Volume Zone Oscillator (VZO)"),-45);
VZOT3sell1:=Cross(0, Fml( "Volume Zone Oscillator (VZO)"))*-1;
VZOT3sell2:= Cross(Fml( "Volume Zone Oscillator (VZO)"),40)*-2;
If(VZOvol AND VZOdntrend,VZOT3sell1,0);
If(VZOvol AND VZOdntrend,VZOT3sell2,0);

Source / From: TOP
EquisMetaStock Group

Equis and MetaStock® and MetaStock Professional® are registered trademarks of Equis International. Achelis Binary Wave®, The DownLoader®,
Expert Advisor®, OptionScope®, Quotecenter® and Smart Charts® are trademarks of Equis International, a Thomson Reuters company.