Interesting scan, Ed. I tend to average three lengths of an indicator a lot because it, as Chande showed back when, gives the equivalent of an adaptive version on the cheap. Hadn't thought of using the idea for max, but your MAXX:= (max(-1,-35,cl)+ max(-1,-25,cl)+ max(-1,-18,cl))/3; accomplishes that -- it behave more like the 18-day component when a shorter trend is in place.
Looks like you've tuned it quite a bit already, but you might try relaxing some of the conditions and sorting on them to see what might improve it. The one backtest [below] that I ran didn't give any big winners but these are trying times :o)
Bob [I pasted the backtest version of your scan below the results.] ---- ACTN,0.04,-30,07/02/1999 NEON,0.10,-30,07/02/1999 ONHN,0.03,-30,07/02/1999 PRGS,0.02,-30,07/02/1999 VMSI,0.00,-30,07/02/1999 -------- //input = "100k.lst"; issuetype common; daystoload=400; integer tbar; tbar := -30; /// set here ********* output="Pullback-30.lst"; float AvgC200,AvgC3,AvgC3,MAXX,Slope,UTX; AvgC200:=MovAvg(tbar,200,CL); Slope:=(AvgC200 -MovAvg(tbar-2,200,CL))/2; AvgC3:=MovAvg(tbar,3,CL); MAXXX := (max(tbar-1,tbar-35,cl)+max(tbar-1,tbar-25,cl)+max(tbar-1,tbar-18,cl))/3; UTX:= 1.15*AvgC200;
if Close(tbar) > 5 and InstHold > 42 and Slope > 0 and MAXX > 1.15*AvgC200 and Close(tbar) < 0.9*MAXX and AvgC3 > 0.95*AvgC200 and MovAvg(tbar,7,vol) > 145000 and Vol(tbar) > 1.08*Vol(-1) and Low(tbar) > Low(-1) and MACD(tbar) > MACD(tbar-1) and Low(tbar) < UTX then
println symbol,",",Slope:3:2,",",tbar,",",date(tbar); endif; |