// Downloaded From https://www.WiseStockTrader.com
_SECTION_BEGIN("VolumeOscillator");
/* Volume Oscillator */
/* Indicator, system, and exploration */
/* Steve Wiser slwiserr@erols.com */
SetChartBkColor(ParamColor("Panel Color",colorLightGrey));
SetChartBkGradientFill(ParamColor("Upper Chart",colorLightGrey),ParamColor("Lower Chart",colorLightGrey));

PlusDM= IIf(High>Ref(High,-1) AND Low>=Ref(Low,-1), High-Ref(High,-1),
                 IIf(High>Ref(High,-1) AND Low<Ref(Low,-1)
                 AND High-Ref(High,-1)>Ref(Low,-1)-Low,
                High-Ref(High,-1),0));

Vm=log(EMA(V,3));
 
Buy= (C-L)*Vm+ (H-O)*Vm + 
         IIf(C>O,(C-O)*Vm,0) + PlusDM*Vm + 
         IIf(Ref(C,-1)<O,(O-Ref(C,-1))*Vm,0);

MinDM = IIf(Low<Ref(Low,-1)   AND  High<=Ref(High,-1), Ref(Low,-1)-Low,
               IIf(High>Ref(High,-1) AND Low<Ref(Low,-1)
               AND High-Ref(High,-1)<Ref(Low,-1)-Low, Ref(Low,-1)-Low, 0));

Sell= (H-C)*Vm + (O-L)*Vm + 
         IIf(C<O,(O-C)*Vm,0) + MinDM*Vm + 
         IIf(Ref(C,-1)>O,(Ref(C,-1)-O)*Vm,0);

Wm=Wilders(Wilders(Buy,3)-Wilders(Sell,3),3);
Wm1=MA(Wm,8);
Color=IIf(Wm >10,colorBlue,IIf(Wm < -10,colorRed,7));
Plot(Wm,"Volume",Color,2|styleThick);
Plot(Wm1,"Wm(8P)",10,styleLine|styleThick);
Plot(0,"",ParamColor("Zero Line",colorGrey50),styleLine|styleNoLabel);
/*Plot(100,"",32,styleLine|styleThick | styleNoLabel);
Plot(-100,"",12,styleLine|styleThick | styleNoLabel);
Plot(50,"",9,styleLine | styleNoLabel|styleThick);
Plot(-50,"",9,styleLine | styleNoLabel|styleThick);*/


_SECTION_END();