G'day Tomasz,

"x" is defined below.  I am sorry if i dont have the expert understanding of 
required to be proficient at coding with amibroker.
But "x" is most definately defined.  
When the code is run - it runs as my original post states.  It works well - as 
long as the line with "zig" is not called.  
Part of the reason that prompted me to use staticvarset / get is that i am 
running a high array count and would like to drop it significantly.

Regards

J.


  ----- Original Message ----- 
  From: Tomasz Janeczko 
  To: [email protected] 
  Sent: Friday, August 13, 2010 7:07 PM
  Subject: Re: [amibroker] Staticvarset generating error condition with zig 
function.


    
  Hello,

  In your formula an error appears regardless of Zig().

  Did you actually READ what error message says?
  It says "variable x used without being initialized".
  Error says it all. You are trying to use variable ('x') that was NEVER 
defined.
  Before any use, you need to assign VALUE to the 'x' variable, like this:
  x = something;

  Do not try to "reduce array manipulation" because you lack basic 
understanding of AFL. 

  The code that you have presented does nothing except to ADD complexity.
  You will gain *nothing* this way.

  Best regards,
  Tomasz Janeczko
  amibroker.com

  On 2010-08-13 10:09, James wrote: 

    Hello,

    I had anyone else experienced staticvarset generating error an error 
condition with the use of the zig function ?
    I have been trying to work around this issue - but am finding that in order 
to reduce array manipulation - i would like to set static variables - but this 
does not seem to work with call of the zig function anywhere in the code.
    I have attached the sample code and a description of the irregularity with 
amibroker.  This has been prevalent in 5.20 and is still an issue with 5.30.
    Have i overlooked anything ?

    Thanks and regards

    James

    p/s: this was tested on the sample data (^DJI Daily) that comes with the 
default amibroker install.


    x = Cum(1);

    
//-----------------------------------------------------------------------------

    // In this example "svar" holds the last value of x when var3[i] == 1.

    // Note: this changes with the displayed data.

    // When the "Causeserror" array is not commented out - amibroker no longer

    // references the last displayed value.

    
//-----------------------------------------------------------------------------

    //Causeserror = Zig(High, 0.1); // <= remove "//" and the functionality 
changes,

    Var1 = MA(L, 5);

    Var2 = MA(H, 15);

    Var3 = Cross(Var1, Var2);

    Plot (Var3 *1000, "va3", colorRed);



    for (i=0; i<BarCount; i++)

    {

    if (Var3[i] == 1)

    {

    StaticVarSet("svar", x[i]); // Last "x" value when var3[i] == 1

    }}

    Plot(StaticVarGet("svar"), "svar", colorBlue);



  

Reply via email to