Your code seems to work fine for me, using arbitrary values for Counter
and TestLevel.

Add a _TRACE statement to validate your HiLoCond values.

I seem to recall getting access violations when using invalid index
values (e.g. referencing beyond the data). You might want to look there.

Also, you can avoid the redundant VarGet calls by storing your earlier
results in local variables and reusing them, rather than doing a dynamic
lookup for something that you just calculated.

Mike

for ( R = 0; R <= Counter; R++ )
{
     MyHigh = Ref( High, -R );
     MyLow = Ref( Low, -R );

     VarSet( "High"     + R, MyHigh );
     VarSet( "Low"      + R, MyLow );

     VarSet( "HiLoCond" + R, MyHigh - MyLow >= TestLevel ) ;
}


--- In [email protected], "ozzyapeman" <zoopf...@...> wrote:
>
> Hoping someone can help with this. I am getting an Access Violation
> AmiBroker crash, and it seems to be due to using VarGet from within a
> VarSet loop, or at least I think that is where the problem lies.
>
> For example, I have several loops of this type:
>
>
> for ( R = 0; R <= Counter; R++ )
> {
> VarSet( "High" + R, Ref( High, -R ) );
> VarSet( "Low" + R, Ref( Low, -R ) );
>
> VarSet( "HiLoCond" + R, VarGet( "High" + R ) - VarGet("Low" + R) >=
> TestLevel ) ;
> }
>
>
>
> You will notice I am setting some dynamic vars, and within the same
loop
> I am getting vars which have been set earlier in the loop. Is this
> allowed? Or can I only do a VarGet from inside a completely separate
> loop? I would think that in the order of execution, I can do what I am
> doing, since the vars are set a couple of lines above, but maybe not?
>


Reply via email to