I really don't know what you are trying to do. I don't know why you 
are trying to use a loop. Loops are the last thing you should use in 
AFL if there is any way around them. Your logic is looking for 
instances where aire3 is between two numbers. It seems it is also 
looking for a value of 100 or 222. It will never get to 100 or 222. 
WMA / MA will be a very small number and you will need 4 decimal 
places to see the value at times. If you are trying to find the bar 
number where the statement is true then try the following formula. 
The last column shows the bar where the Croisement is 1. Also, it is 
always helpful to plot your results when debugging. Plots are 
included.

Barry

aire1 = WMA(C,150);
aire2 = MA(C,50);
aire3 = aire1 / aire2 ;

Croisement = 0 ;
Croisement = IIf(aire3 >= 0.95 AND aire3 <= 1.00, 1, IIf(aire3 == 
222, 2, 0));

Plot(aire1, "aire1", colorRed);
Plot(aire2, "aire2", colorGreen);
Plot(aire3, "aire3", colorBlack, styleOwnScale);

PlotShapes(IIf(Croisement == 1, shapeSmallCircle, 0), colorRed);
PlotShapes(IIf(Croisement == 2, shapeHollowSmallCircle, 0), 
colorGreen);

Filter =1;

AddColumn(aire1,"aire1",1.2);
AddColumn(aire2,"aire2",1.2);
AddColumn(aire3,"aire3",1.4); // value of wma / ma
AddColumn(Croisement,"croisement"); // 1 or 2 when statement is true, 
else 0
AddColumn(IIf(Croisement == 1, int(BarIndex()), 
False), "Croisement"); // shows the bar where true


--- In [email protected], "atlas190" <[EMAIL PROTECTED]> wrote:
>
> Hello ,
> 
> I meet a bug when I spy the "Croisement" variable with the 
> spreadsheet "results"  (explorer) .
> The variable "croisement" should receive the value "100" sometimes 
> and not always the value "222" .
> 
> It's probably a beginner's bug ...
> 
> 
> aire1 = WMA(C,150);
> aire2 = MA(C,50);
> aire3 = aire1 / aire2 ;  
> recup =0;
> Croisement =0 ;
> 
> bi = BarIndex();
> 
> for(i=0; i < BarCount -1 ;i++)
> {
> 
> recup[i] = bi[i];
> 
> if (aire3[i] >= 0.95 AND aire3[i] <= 1.00) 
> 
> {
>  //Croisement == recup[i];
> Croisement == 100;   //I don't reach this line ?!
>                      // I am sure that sometimes aire3 has got a 
>                      // value beetwee 0.95 and 1 
> }
> else
> { 
> Croisement = 222;
> }
> 
> Filter =1;
> 
> //AddColumn(bi,"barindex");
> AddColumn(recup,"pour voir");
> AddColumn(aire1,"aire1",format = 1.2);
> AddColumn(aire2,"aire2",format = 1.2);
> AddColumn(aire3,"aire3",format = 1.2);
> AddColumn(Croisement,"croisement");
> //AddColumn(a,"valeur du croisement");
>


Reply via email to