Congratulations to Scott Bunny aka wabbit ( metastock@iinet.net.au ) for winning this most difficult programming task. Scott has chosen the PremiumData package (valued at between US$290 & $440) for his prize. http://www.premiumdata.net Scott's month's High/Low signals: ====================== Month's Hi/Lo - Wabbit ====================== ---8<--------------------------------- {Monthly High and Lows, in retrospect} {Version 1.3} {© 2005 Scott Bunny} newMonth:=Month()<>Ref(Month(),-1) OR (Month()=Ref(Month(),-1) AND Year()<>Ref(Year(),-1)) OR Cum(1)=2; altMonth:=If(Mod(Cum(newMonth),2)=0,1,-1); loThisMonth:=L<=LowestSince(1,newMonth,L); hiThisMonth:=H>=HighestSince(1,newMonth,H); countLo:=altmonth*If(lothismonth,(1+Cum(loThisMonth)-ValueWhen(1,newMonth,Cum(loThisMonth))),0); countHi:=altmonth*If(hithismonth,(1+Cum(hiThisMonth)-ValueWhen(1,newMonth,Cum(hiThisMonth))),0); hi:=PeakBars(1,countHi,101)=0 OR TroughBars(1,countHi,101)=0 OR (hiThisMonth AND Cum(hiThisMonth)=LastValue(Cum(hiThisMonth))); lo:=PeakBars(1,countLo,101)=0 OR TroughBars(1,countLo,101)=0 OR (loThisMonth AND Cum(loThisMonth)=LastValue(Cum(loThisMonth))); hi;-lo ---8<--------------------------------- After MetaStockTools.com's competition code was released, Scott further improved his own indicator thus: ====================== Month's Hi/Lo - Wabbit ====================== ---8<--------------------------------- {Monthly High and Lows, in retrospect} {Version 1.4} {© 2005 Scott Bunny} newMonth:=Month()<>Ref(Month(),-1) OR (Month()=Ref(Month(),-1) AND Year()<>Ref(Year(),-1)) OR Cum(1)=2; altMonth:=If(Mod(Cum(newMonth),2)=0,1,-1); loThisMonth:= altmonth*(L<=LowestSince(1,newMonth,L)); hiThisMonth:= altmonth*(H>=HighestSince(1,newMonth,H)); lo:=Abs(Zig(loThisMonth,101,%))=1 AND Cum(newMonth>-1)>1; hi:=Abs(Zig(hiThisMonth,101,%))=1 AND Cum(newMonth>-1)>1; hi;-lo ---8<---------------------------------