MetaStock -> Tools -> Indicator Builder -> New -> copy & paste formula below. ========================= Volume - Up/DownSwing avg ========================= ---8<----------------------------- { Up/DownSwing average Volume v3.0 ©Copyright 2006 Jose Silva. For personal use only. http://www.metastocktools.com } { User inputs } choose:=Input("Avg Volume: [1]UpSwing, [2]DownSwing, [3]Both",1,3,3); ch:=Input("ZigZag minimum change %",.01,100,2); plot:=Input("Up/Down [1]Avg Vol [2]Swings, [3]ZigZag, [4]Pk/Tr",1,4,1); { ZigZag } zz:=Zig(C,ch,%); { Up/Down bar count } pkBars:=PeakBars(1,C,ch); trBars:=TroughBars(1,C,ch); { Peaks/Troughs } pk:=pkBars=0; tr:=trBars=0; { ---------- *** UpSwing Volume *** ---------- } { Up swings } UpSwing:=zz>Ref(zz,-1); { Up swing volume } UpSwingVol:=V*UpSwing; { Accumulate & reset UpVolume } acc:=Cum(UpSwingVol); accUpVol:=acc-ValueWhen(1,pkBars=0,acc); { Average UpSwing Volume } avgUpVol:=accUpVol/Max(trBars,.00001); { Restrict avg Volume to peak bar } avgUpVolPk:=Ref(avgUpVol,-1)*pk; { --------- *** DownSwing Volume *** --------- } { Down swings } DwSwing:=zz