The following combines float/range and high revenue testing- It yields 51 stocks whose avg return is 125% in six months. Remember that float is current info vs 6 months ago but float tends to increase not decrease so that should be OK. Similar to Richard's post.
andy
output = "hirev-atr-float.lst"; issuetype common; float av, pt, sf; float cl, ATR89, tr,MA89Cl; integer tbar,bar; DaysToLoad=220; DaysRequired=220; tbar:= -125; av := MovAvg(tbar,55,vol); sf := sharesfloat; if qtrrev(-6) > 0 then if qtrrev(-7) > 0 then if close(tbar)>0 then if av > 100000 and close(tbar)>9.99 then if sf > 0 then if (qtrrev(-2)+qtrrev(-3))/(qtrrev(-6)+qtrrev(-7))-1 > 0.75 then pt := av/sf/1000/1000; // float is in mil shares if pt >= .025 then // print both vols in thousands ATR89:= 0; // initially set it to zero for each symbol for bar = tbar-88 to tbar do // 89 values; don't need to specify step 1 because it is the default cl:= close(bar-1); // close(-88) to start tr:= range(bar); // the usual case, no gap if cl > high(bar) then //down tr:= cl - low(bar); else if cl < low(bar) then //up tr:= high(bar) - cl; endif;endif; ATR89:= ATR89 + tr; // add tr to previous value next bar; ATR89:= ATR89/89; // divide the sum by 89 MA89Cl:=movavg(tbar,89,cl); if ATR89/MA89Cl*100>5.75 then println symbol:-7,",",close(0):6:2,",", close(tbar):6:2,",",close(0)/close(tbar):4:2,",",movavg(tbar,55,vol):8:0,",",(qtrrev(-2)+qtrrev(-3))/(qtrrev(-6)+qtrrev(-7)):6:3,",",pt:5:3,",",ATR89/MA89Cl*100:4:2; endif;endif;endif;endif;endif;endif;endif;endif; |