Craig: Here's my attempt at the Four-Bar Fear Scan for longs. (I'll work on a scan for shorts tomorrow.)
I've checked this scan against hits in Metastock, and they seem to be the same. (For example, ITIG and ALT are among the hits tonight.)
This is a first attempt. Forgive me if there are any glaring errors.
//Four-Bar Fear, Longs, by Walter T. Downs //translated for QP2 by Brooke //n := 12 {Time periods}; //BullFear := (HHV(HIGH,n) - LLV(HIGH,n))/2 + LLV(HIGH,n); //BearFear := (HHV(LOW,n) - LLV(LOW,n))/2 + LLV(LOW,n); //Alert(Cross(CLOSE,BullFear) AND Ref(Sum(CLOSE < //BullFear AND CLOSE > BearFear,4),-1) = 4,1) output = "fourbar.lst"; //input="volvol.lst"; integer periods, i; float bullfear, bearfear, bearflag, bullfprev, bearfprev, bullflag;
periods:=11;
bullfear:=(max(0,-periods,hi)-min(0,-periods,hi))/2 + min(0,-periods,hi);
bearfear:=(max(0,-(periods),lo)-min(0,-periods,lo))/2 + min(0,-periods,lo);
bearflag:=0; bullflag:=0; for i = 0 to -3 step -1 do bullfprev:=(max(i-1,-((periods+1)-i),hi) -min(i-1,-((periods+1)-i),hi))/2 + min(i-1,-((periods+1)-i),hi); bearfprev:=(max(i-1,-((periods+1)-i),lo)- min(i-1,-((periods+1)-i),lo))/2 + min(i-1,-((periods+1)-i),lo);
if close(i-1)<bullfprev and close(i-1)>bearfprev then bullflag:=bullflag+1; endif;
next i;
if close(0)>bullfear and bullflag=4 then println symbol,",", "Buy: ", "Close: ", close(0):6:2,", ", "Change: ", Close(0)-Close(-1):5:2, ", ", "Bullfear: ", bullfear, ", ", "Bullflag: ", bullflag; endif; |