//@version=2 // Logic: // determine ratio of current volume to current price range. // If ratio greater 150% of the average ratio of the past 100 bars then assume wash trade and replace suspicious volume with // an hypothetical volume equivalent to 75% of the 100 bar average (75% because the average might also be distorted by past wash trades; // if anyone knows how to replace this with a median value let me know), normalized by current range. study("Wash Volume Remover [Dia]") lb=input(100, title = "Lookback Period") th=input(3.0, minval=1.0, title = "Threshold") range=high-low ratio=volume/range newvol=ratio<th*sma(ratio,lb)?volume:max(0.75*(sma(volume,lb)+sma(ratio,lb)*(range-sma(range,lb))),0) plot(newvol,color=open<close?green:red,style=columns)