Here's a cwazy QP2 scan for finding troughs, or support. It finds the minimum lows for four periods -- for example, four 34-day periods starting 4 days ago. You can change these periods and the start date here:
startday:=-4;//day to start looking back for lows period:=34;//number of days in each of four periods
With fallen star DELL, for example, the output is:
DELL , Lo A: 46.88, 09/01/1998, Lo B: 45.00, 07/07/1998, Lo C: 38.62, 06/01/1998, Lo D: 30.59, 03/23/1998
A slow march toward March lows?
The date is the date of the minimum low for each 34-day period (or for whatever length period you choose).
Here's the scan:
//Support levels with minimum lows //Finds minimum lows for four equal periods //for Quotes Plus 2 by Brooke output="suppormin.lst"; input="portfoli.lst"; //ProcessMS = "d:\meta\cuph\",MSDATA; DaysRequired=200; Daystoload=250;
integer a,b,c,d,datea, dateb, datec, dated, startday,period; float trougha, troughb, troughc, troughd;
startday:=-4;//day to start looking back for lows period:=34;//number of days in each of four periods
trougha:=min(startday,startday-period,lo); //most recent trough troughb:=min(startday-period-1,startday- (2*period)-1,lo); //second most recent trough troughc:=min(startday-(2*period) -2,startday-(3*period)-2,lo); //third most recent trough troughd:=min(startday-(3*period) -3,startday-(4*period)-3,lo); //fourth most recent trough datea:=0; dateb:=0; datec:=0; dated:=0; for a = startday-period to startday step 1 do if low(a)=trougha then datea:=a; //date of trougha endif; next a; for b = (startday-(2*period)-1) to (startday-period-1) step 1 do if low(b)=troughb then dateb:=b; //date of troughb endif; next b; for c = (startday-(3*period)-2) to (startday-(2*period)-2) step 1 do if low(c)=troughc then datec:=c; //date of troughc endif; next c; for d = (startday-(4*period)-3) to (startday-(3*period)-3) step 1 do if low(d)=troughd then dated:=d; //date of troughd endif; next d;
println symbol, ", ", "Lo A: ", trougha:6:2, ", ", date(datea), ", ", "Lo B: ", troughb:6:2, ", ", date(dateb), ", ", "Lo C: ", troughc:6:2, ", ", date(datec), ", ", "Lo D: ", troughd:6:2, ", ", date(dated); |