// Downloaded From https://www.WiseStockTrader.com
// PZO indicator 
function PZOsc( Period ) 
{ 
 R = sign( Close - Ref( Close, -1 ) ) * Close; 
 VP = EMA( R, Period ); 
 TV = EMA( Close, Period ); 
 return Nz( 100 * VP / TV ); 
} 

Period = Param( "PZO period", 14, 2 , 200 ); 
PZO = PZOsc( Period ); 
Plot( PZO, "PZO" + _PARAM_VALUES(), colorBlue, styleThick ); 

// grid lines 
PlotGrid( 60 ); 
Plot( 40, "", colorDarkGreen ); 
PlotGrid( 15 ); 
Plot( 0, "", colorBlack ); 
PlotGrid( -5 ); 
Plot( -40, "", colorBrown ); 
PlotGrid( -60 ); 

// system rules 
Buy = ADX(14) < 18 AND ( Cross( PZO, -40 ) OR Cross( PZO, 15 ) ); 
Sell = ( Cross( PZO, 40 ) AND ADX( 14 ) > 18 ) OR Cross( -5, PZO ); 

Short = ADX(14) < 18 AND ( Cross( 40, PZO ) OR Cross( -5, PZO ) ); 
Cover = ( Cross( -40, PZO ) AND ADX( 14 ) > 18 ) OR Cross( PZO, 15 );