Brook:
You may have already changed your scan to improve speed but since you mentioned that you knew it was slow I thought I would share some changes with you. The results are the same, but it is much quicker. My changes could still be cleaned up (fin & shark flags are now unnecessary) and I suspect the scan can be speeded up a little yet.
//Shark-32, by Walter T. Downs, //translated for QP2 by Brooke //The idea behind the system is: Look for a three-bar shark pattern, //based on progressively smaller ranges. It looks like a shark fin. Once //that pattern appears, a level is set by the highest point in the fin, //which is the high(-2). In the scan, I call that level "Sharkhigh." To //get a buy signal, the price has to close above that level within 25 days.
output = "sharka.lst"; input="svol.lst"; //ProcessMS = "d:\meta\macdup\",VMS;
integer i, j; float shark, apex, WB, fin, sharkhigh, symmetry;
for i = -24 to 0 step 1 do
symmetry:=.28; apex:=(high(i)+low(i))/2; WB:=high(i-2)-low(i-2);
if apex<=(high(i-2)-(WB*Symmetry)) and apex>=(low(i-2)+(WB*Symmetry)) then fin:=1; sharkhigh:=0; if high(i)<high(i-1) and low(i)>low(i-1) and high(i-1)<high(i-2) and low(i-1)>low(i-2) then shark:=fin; if shark=1 then sharkhigh:=high(-2+i); endif;
for j = 24 to 0 step -1 do
if i+j <=0 then if close(i+j)>sharkhigh and sharkhigh>0 and shark =1 then println symbol,",", "Close: ", close(0):6:2,", ", "Change: ", Close(0)-Close(-1):5:2, ", ", "Date: ", date(i+j),", ", "Sharkhigh: ", sharkhigh; //date of buy signal endif; endif; next j;
else shark:=0; endif; else fin:=0; endif;
next i; |