- Katılım
- 23 Eki 2020
- Mesajlar
- 1,826
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.
Table 1: Up trending market
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.
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
kaynak
stocata
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
kaynak
stocata