July 24: The S&P500 and FOREX EUR/USD Update.
Latest YouTube video fast average crossings part2.
chart template updated
My book "Capturing Profit with Technical Analysis"
best offer!
(DUTCH) Nederlandstalige versie hier.
Over 300 items on sale,
and FREE Shipping in July!
WINNER "Favorite Article" in the Readers' Choice Award 2010. Thank You!
AXIOM business books awards, bronze medal for my book! Thank You!
Part 2 of "Smoothing The Bollinger %b Indicator" in the June issue of S&C.
Visit the TradersLibray blog.
Sylvain Vervoort
WINNER favorite article
Readers' Choice Award.
AXIOM Business Books Awards, bronze medal.
HOME Back to MetaStock Formulas Overview
SVAPO or "Short term Volume And Price Oscillator", is my oscillator based on price and volume, looking at the relationship between these two components in an up trending and a down trending market. I like the name SVAPO, because it also starts with my initials!
To construct a short term oscillator based on price and volume, we have to look at the relationship between these two components in an up trending and a down trending market. Table 1 and 2 show their normal relationship.
Up trending market |
Price |
Volume |
|
|
|
Uptrend |
Up |
Up |
Correction |
Down |
Down |
Reversal |
Down |
Up |
Table 1: Up trending market
Down trending market |
Price |
Volume |
|
|
|
Downtrend |
Down |
Up |
Correction |
Up |
Down |
Reversal |
Up |
Up |
Table 2: Down trending market
Combining these two tables in a market direction, leaves us with 3 possible conditions (table 3):
- In an up trending market, price and volume are moving up. We will sum the volume when calculating the oscillator.
- In a down trending market, price goes down while volume is up. We will subtract the volume when calculating the oscillator.
- When volume is moving down, price is in a consolidation phase in either direction. There will be no volume taken into consideration when calculating the oscillator.
Market direction |
Price |
Volume |
Calculation |
|
|
|
|
Uptrend |
Up |
Up |
+ Volume |
Downtrend |
Down |
Up |
- Volume |
Corrections |
Up/Down |
Down |
0 |
Table 3: volume calculation rules
A raw combination of price and volume will result in a much too choppy oscillator. Using conventional smoothing techniques, like moving averages, will create an unacceptable delay for a short term oscillator. So, I am applying a number of specific techniques for the final SVAPO creation.
This is the formula:
SVAPO:
haOpen:=(Ref((O+H+L+C)/4,-1) + PREV)/2;
haCl:=((O+H+L+C)/4+haOpen+Max(H,haOpen)+Min(L,haOpen))/4;
period:= Input("SVAPO period :", 2, 20, 8);
cutoff:= Input("Minimum %o price change :",0.0,10,1);
devH:= Input("Standard Deviation High :", 0.1, 5, 1.5);
devL:= Input("Standard Deviation Low :", 0.1, 5, 1.3);
stdevper:= Input("Standard Deviation Period :", 1, 200, 100);
haC:=Tema(haCl,period/1.6);
vave:=Ref(Mov(V,period*5,S),-1);
vmax:=vave*2;
vc:=If(V<vmax,V,vmax);
vtr:=Tema(LinRegSlope(V,period),period);
SVAPO:=Tema(Sum(If(haC>(Ref(haC,-1)*(1+cutoff/1000)) AND Alert(vtr>=Ref(vtr,-1),2), vc, If(haC<(Ref(haC,-1)*(1-cutoff/1000)) AND Alert(vtr>Ref(vtr,-1),2),-vc,0)),period)/(vave+1),period);
devH*Stdev(SVAPO,stdevper);
-devL*Stdev(SVAPO,stdevper);
zeroref:=0;
zeroref;
SVAPO
The start of a short term up move is signaled by SVAPO when it turns up from below the lower standard deviation boundary. The same is valid for a short term down move when SVAPO turns down from above the upper standard deviation boundary.
Medium term turning points in an up or downtrend are mostly announced with a divergence between price and SVAPO.

In a medium term uptrend, SVAPO will generally continue to move above the 0-reference line.
For short term scalping or for finding additional medium term entry points SVAPO can be used with a period of only 3 bars and a zero per thousand minimum price change.
For data series that do not have volume, I developed a SVAPO price only oscillator.
SVAPO_PriceOnly:
{calculate heikin-ashi closing average haCl and get the input variables}
haOpen:=(Ref((O+H+L+C)/4,-1) + PREV)/2;
haCl:=((O+H+L+C)/4+haOpen+Max(H,haOpen)+Min(L,haOpen))/4;
{input SVAPO period}
period:= Input("SVAPO period :", 2, 20, 8);
{input minimum per thousand price change}
cutoff:= Input("Minimum %o price change :",0.0,10,1);
{Inputs for standard deviation bands}
devH:= Input("Standard Deviation High :", 0.1, 5, 1.5);
devL:= Input("Standard Deviation Low :", 0.1, 5, 1.3);
stdevper:= Input("Standard Deviation Period :", 1, 200, 100);
{Smooth HaCl closing price}
haC:=Tema(haCl,period/1.6);
{MA of Volume to limit extremes}
vave:=Ref(Mov(C,period*5,S),-1);
vmax:=vave*2;
vc:=If(C<vmax,C,vmax);
{Basic volume trend}
vtr:=Tema(LinRegSlope(C,period),period);
{SVAPO result of price and volume}
SVAPO:=Tema(Sum(If(haC>(Ref(haC,-1)*(1+cutoff/1000)) AND Alert(vtr>=Ref(vtr,-1),2), vc, If(haC<(Ref(haC,-1)*(1-cutoff/1000)) AND Alert(vtr>Ref(vtr,-1),2),-vc,0)),period)/(vave+1),period);
devH*Stdev(SVAPO,stdevper);
-devL*Stdev(SVAPO,stdevper);
zeroref:=0;
zeroref;
SVAPO
HOME Back to MetaStock Formulas Overview