Another follow up. You might want to check your code for the use of "=" (assignment) versus "==" (equal). It looks like you should be using "==" instead of "=" in several places.
There's some explanatory text in the User's Guide regarding the difference in usage, as follows: "=" (assignment) vs "==" (equality check) There are two similar looking but completely different operators in AFL. "=" is a variable assignment operator "==" is an equality check operator EXAMPLE Incorrect code: result = IIf( Variable = 10 , High, Low ); // WRONG If you want to check if variable is equal to 10, you MUST use "==" Correct code: result = IIf( Variable == 10 , High, Low ); // CORRECT Wayne --- In [email protected], "carlacash26" <[EMAIL PROTECTED]> wrote: > > OK, here is what I have come up with. It will perform an exploration, > but it will just > list all the stock, not filter out the ones that are not meeting my > criteria. > > Background; I search for the 3 highest high value for past 10 days, > 10-20 days and 20-30 days. > Then I want to find the smallest of these values and compare it to > the highest high value of them all, > if they don't deviate by more than 2%, the stock has a resistance > level at that point. > Same thing with the lowest low values, which will find me the support > level. > > The problem I am facing now is that there is something wrong with > finding the smallest of > the Highest high values. The HHmin is just set as "1.00" and not as > the value of the smallest of > the 3 HHVs. > > I hope someone can help me with this. I think I'm close now. > > > > > > /***************************** > Find stocks in a trading range > ******************************/ > > // First find the highest high values, And lowest low values for the > //3 periods; 10 days ago, 10-20 days ago, and 20-30 days ago > > HHA=Ref(HHV(H,10),-1); //HHV of 10 days ago (for example 33) > HHB=Ref(HHV(H,10),-10); //HHV of 10 to 20 ago (for example 32) > HHC=Ref(HHV(H,10),-20); //HHV of 20 to 30 days ago (for example 34) > > LLA=Ref(LLV(L,10),-1); //LLV of 10 days ago (for example 33) > LLB=Ref(LLV(L,10),-10); //LLV of 10 to 20 ago (for example 32) > LLC=Ref(LLV(L,10),-20); //LLV of 20 to 30 days ago (for example 34) > > > > //Then find the smallest value of the 3 HHVs, and the largest value > of the LLVs > > HHmin = IIf((HHA < HHB=True) AND (HHA < HHC=True), HHA, HHB); > HHmin = IIf((HHB < HHA=True) AND (HHB < HHC=True), HHB, HHB); > HHmin = IIf((HHC < HHB=True) AND (HHC < HHA=True), HHC, HHB); > > LLmax = IIf((LLA > LLB=True) AND (LLA > LLC=True), LLA, LLA); > LLmax = IIf((LLB > LLA=True) AND (LLB > LLC=True), LLB, LLB); > LLmax = IIf((LLC > LLB=True) AND (LLC > LLA=True), LLC, LLB); > > > > //Then caluculate the average of these HHVs and LLVs > //NOTE: this is not needed for the time being > > HHavg=((HHA+HHB+HHC)/3);//(for example = 33) > LLavg=((LLA+LLB+LLC)/3); //(for example =28) > > > > //Then check to see if the min and max of the three HHVs and > //LLVs are not deviating too much, I chose 5% as example > //of maximum deviation. > > HChannel=False; > minHHrange=(HHV(H,30) * 0.95); //set the min and max values > maxHHrange=(HHV(H,30) * 1.05); > minLLrange=(LLV(L,30) * 0.95); > maxLLrange=(LLV(L,30) * 1.05); > > > hChannelHHmin = IIf (HHmin > minHHrange, True, False); > hChannelHHmax = IIf (HHmin < maxHHrange, True, False); > hChannelLLmin = IIf (LLmax > minLLrange, True, False); > hChannelLLmax = IIf (LLmax < maxLLrange, True, False); > > > //Then sum up all of the criteria > hChannel = IIf (hChannelHHmin=True AND hChannelHHmax=True AND > hChannelLLmin=True AND hChannelLLmax=True, True, False); > > //And finally filter out the ones that don't meet the criteria > Filter=hChannel=True; > > COLA= Close; > COLB= Ref(HHV(H,10),-1); > COLC=HHB=Ref(HHV(H,10),-10); > COLD=Ref(HHV(H,10),-20); > COLE= HHmin; > > AddColumn(Cola,"close"); > AddColumn(Colb,"HHV-10"); > AddColumn(Colc,"HHV-10-20"); > AddColumn(Cold,"HHV-20-30"); > AddColumn(Cole,"HHmin"); > > //END OF CODE >
