To: Mike Hagerty who wrote (6694 ) 9/20/1998 5:54:00 PM From: TechTrader42 Read Replies (1) | Respond to of 11149
Thanks, Mike. It's much faster now. I'd just add one line that I added to a later version, to eliminate a lot of the multiple hits -- the second line in this: if close(i+j)>sharkhigh and close((i+j)-1)<sharkhigh Now it looks for when price crosses above "sharkhigh," and isn't just above "sharkhigh." It has to be below it the previous day. Your improvements are terrific. Are we a great team or what? Here's the scan with the extra line: //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="volvol.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 close((i+j)-1)<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;