[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[amibroker] Re: DTN IQ



PureBytes Links

Trading Reference Links

Hello,

Correct.

If you are begginer just use regular variables.

In majority of cases you should definitelly NOT use static variables at all,
they are for **advanced coders** only.

Best regards,
Tomasz Janeczko
amibroker.com
----- Original Message ----- 
From: "see_change007" <cvt@xxxxxxxxxxxxxx>
To: <amibroker@xxxxxxxxxxxxxxx>
Sent: Monday, August 09, 2004 3:18 PM
Subject: [amibroker] Re: Static Variables


> 
> 
> Ok 
> 
> So if I want to use X=n in a formula , I don't need to worry about 
> it interacting with x's defined in other forumulars. :) 
> 
> Correct ?
> 
> See Change
> 
> 
> 
> --- In amibroker@xxxxxxxxxxxxxxx, "Herman van den Bergen" 
> <psytek@xxxx> wrote:
> > InLine,,,
> >   -----Original Message-----
> >   From: see_change007 [mailto:cvt@x...]
> >   Sent: Monday, August 09, 2004 8:47 AM
> >   To: amibroker@xxxxxxxxxxxxxxx
> >   Subject: [amibroker] Re: Static Variables
> > 
> > 
> >   Just want to make sure I 'm correct in one thing.
> > 
> >   If I define X = n at the begining of a formular then X is a 
> static
> >   variable. X = n is a normal afl variable, to make it Static you 
> have to
> > use StaticVarSet() if you define it at the begin of the code 
> containing the
> > assignment then it will be redefined each time this code runs 
> regardless of
> > what values may have been assigned to it before from other places; 
> i.e. it
> > would function locally.
> > 
> >   And if I'm using the same symbols eg x to represent variables in
> >   different indicators, even if the indicators may not be in use at
> >   one particular time on active charts , the settings in one one
> >   formular may interact with other forumulars containing the same
> >   formular.
> > 
> >   I do not know to what extend invisible indicators are 
> executed... i
> > suppose they are not however they may collect prices in 
> RealTime... I don't
> > know exactly what happens here, you could try it and see what 
> happens.
> > 
> >   However, visible indicators using the same StaticVariable will 
> each
> > execute and modify StaticVar unless they are kept local (unique) 
> with the
> > use of TJ's functions or if they are locally initialized in each 
> indicator,
> > i.e. with Param()
> > 
> >   If I wanted to avoid this and was using a static variable within 
> one
> >   indicator , I could set that by coding
> > 
> >   If you only use it in one indicator, yes. If you want to use the 
> same
> > Static variables names independently in many Indicators (use the 
> same code
> > in different places) but have them function locally then they 
> should be kept
> > unique and you should use TJ's functions.
> > 
> >   StaticVarSet( ''x'', n );
> > 
> >   Is this correct ?
> > 
> >   See Change
> > 
> >   --- In amibroker@xxxxxxxxxxxxxxx, "Herman van den Bergen"
> >   <psytek@xxxx> wrote:
> >   > Great suggestion Tomasz, thanks for your input!
> >   >
> >   > This will make things a lot simpler to code.
> >   >
> >   > best regards,
> >   > herman.
> >   >
> >   >
> >   >   -----Original Message-----
> >   >   From: Tomasz Janeczko [mailto:amibroker@x...]
> >   >   Sent: Monday, August 09, 2004 5:31 AM
> >   >   To: amibroker@xxxxxxxxxxxxxxx
> >   >   Subject: Re: [amibroker] Static Variables
> >   >   Importance: High
> >   >
> >   >
> >   >   Herman,
> >   >
> >   >   One thing: You don't need to worry about adding such complex
> >   coding all
> >   > the time.
> >   >   Instead you should use FUNCTIONS that make life easier.
> >   >   If you want "unique static" (per indicator) you can easily 
> have
> >   them using
> >   > these two functions:
> >   >
> >   >   procedure UnqStaticVarSet( name, value )
> >   >   {
> >   >      StaticVarSet( name + GetChartID(), value );
> >   >   }
> >   >
> >   >   function UnqStaticVarGet( name )
> >   >   {
> >   >     return StaticVarGet( name + GetChartID() );
> >   >   }
> >   >
> >   >   then use UnqStaticVarSet, UnqStaticVarGet in your code
> >   >
> >   >   Best regards,
> >   >   Tomasz Janeczko
> >   >   amibroker.com
> >   >     ----- Original Message -----
> >   >     From: Herman van den Bergen
> >   >     To: amibroker@xxxxxxxxxxxxxxx
> >   >     Sent: Monday, August 09, 2004 3:28 AM
> >   >     Subject: RE: [amibroker] Static Variables
> >   >
> >   >
> >   >     Ara,
> >   >
> >   >     You have to be careful scoping the Static Variables,
> >   >
> >   >     1) If you use same name static variables in different
> >   indicators then
> >   > their values can change from various sources. This is the case 
> if
> >   you assign
> >   > program derived values, for example counters ,not in the case 
> of
> >   param() see
> >   > next...
> >   >
> >   >     2) If the Static variables are initialized inside the code
> >   with a
> >   > Param() in EACH of the Indicators then in essence you have
> >   disabled the
> >   > Global nature of the Static Variable: this is so because the
> >   Static variable
> >   > is reinitialized in each Indicator separately each time the 
> code
> >   is executed
> >   > (on Refresh). This makes it immune to whatever other code does.
> >   >
> >   >     3) Static variables are truly Global, in contrast to afl
> >   variables
> >   > declared Global in afl, these are Global 'per' indicator. 
> Static
> >   variables
> >   > are Global per AmiBroker Instance.
> >   >
> >   >     4) If you want to restrict the scope of Static variables to
> >   the current
> >   > Indicator, to prevnt conflicing conditions, then you have to 
> add a
> >   unique
> >   > identifier to each code, I use something like this:
> >   >     ChartID = NumToStr(GetChartID(),1.0,False);
> >   >     Reset = Param("Reset Static variables",0,0,1,1);
> >   >     StaticScope = Param("Scope (0:Local,1:Global) for
> >   > Chart#"+ChartID,1,0,1,1);
> >   >     if( StaticScope ) Scope = ""; else Scope = ChartID;
> >   >     ...
> >   >     if( IsEmpty( StaticVarGet("TickCounter"+Scope)) OR Reset)
> >   >     StaticVarSet("TickCounter"+Scope,0);
> >   >     TickCount = StaticVarGet("TickCounter"+Scope);
> >   >
> >   >     here a tickcounter is made Local to the indicator 
> containing
> >   the code to
> >   > prevent interference with duplicate code in other indicators. 
> This
> >   means i
> >   > can count ticks from fifferent stocks while using the SAME
> >   indicator.
> >   >
> >   >     Hope this helps,
> >   >
> >   >     herman.
> >   >
> >   >
> >   >
> >   >
> >   >
> >   >      -----Original Message-----
> >   >     From: Ara Kaloustian [mailto:ara1@x...]
> >   >     Sent: Sunday, August 08, 2004 8:46 PM
> >   >     To: AB-Main
> >   >     Subject: [amibroker] Static Variables
> >   >
> >   >
> >   >
> >   >       I am having a hard time using static variables....
> >   >
> >   >       Sometimes they work as expected ... sometimes they 
> don't ...
> >   so my
> >   > expectation must obviously be questionable.
> >   >
> >   >       I am assuming Static variables can be used anywhere that
> >   normal Number
> >   > and String variables can be used!
> >   >
> >   >       - in assignments: StaticVarSet("Var",Value);
> >   >       - in If Statements: if (StaticVarGet("Var") == 
> Value) ....
> >   >       - in iif Statement: Test = iif(StaticVarGet("Var")
> >   > ==Value,True,False);
> >   >
> >   >       Is my assumption correct?
> >   >
> >   >       Thanks
> >   >
> >   >       Ara
> >   >
> >   >
> >   >       Check AmiBroker web page at:
> >   >       http://www.amibroker.com/
> >   >
> >   >       Check group FAQ at:
> >   > http://groups.yahoo.com/group/amibroker/files/groupfaq.html
> >   >
> >   >
> >   >
> >   >
> >   >       Check AmiBroker web page at:
> >   >       http://www.amibroker.com/
> >   >
> >   >       Check group FAQ at:
> >   > http://groups.yahoo.com/group/amibroker/files/groupfaq.html
> >   >
> >   >
> >   >
> >   >
> >   >
> >   >   Check AmiBroker web page at:
> >   >   http://www.amibroker.com/
> >   >
> >   >   Check group FAQ at:
> >   > http://groups.yahoo.com/group/amibroker/files/groupfaq.html
> >   >
> >   >
> >   >         Yahoo! Groups Sponsor
> >   >               ADVERTISEMENT
> >   >
> >   >
> >   >
> >   >
> >   >
> >   > ---------------------------------------------------------------
> ----
> >   ---------
> >   > --
> >   >   Yahoo! Groups Links
> >   >
> >   >     a.. To visit your group on the web, go to:
> >   >     http://groups.yahoo.com/group/amibroker/
> >   >
> >   >     b.. To unsubscribe from this group, send an email to:
> >   >     amibroker-unsubscribe@xxxxxxxxxxxxxxx
> >   >
> >   >     c.. Your use of Yahoo! Groups is subject to the Yahoo! 
> Terms
> >   of Service.
> > 
> > 
> > 
> >   Check AmiBroker web page at:
> >   http://www.amibroker.com/
> > 
> >   Check group FAQ at:
> > http://groups.yahoo.com/group/amibroker/files/groupfaq.html
> > 
> > 
> > 
> >         Yahoo! Groups Sponsor
> >               ADVERTISEMENT
> > 
> > 
> > 
> > 
> > 
> > -------------------------------------------------------------------
> ---------
> > --
> >   Yahoo! Groups Links
> > 
> >     a.. To visit your group on the web, go to:
> >     http://groups.yahoo.com/group/amibroker/
> > 
> >     b.. To unsubscribe from this group, send an email to:
> >     amibroker-unsubscribe@xxxxxxxxxxxxxxx
> > 
> >     c.. Your use of Yahoo! Groups is subject to the Yahoo! Terms 
> of Service.
> 
> 
> 
> 
> Check AmiBroker web page at:
> http://www.amibroker.com/
> 
> Check group FAQ at: http://groups.yahoo.com/group/amibroker/files/groupfaq.html 
> Yahoo! Groups Links
> 
> 
> 
>  
> 
> 


------------------------ Yahoo! Groups Sponsor --------------------~--> 
Yahoo! Domains - Claim yours for only $14.70
http://us.click.yahoo.com/Z1wmxD/DREIAA/yQLSAA/GHeqlB/TM
--------------------------------------------------------------------~-> 

Check AmiBroker web page at:
http://www.amibroker.com/

Check group FAQ at: http://groups.yahoo.com/group/amibroker/files/groupfaq.html 
Yahoo! Groups Links

<*> To visit your group on the web, go to:
    http://groups.yahoo.com/group/amibroker/

<*> To unsubscribe from this group, send an email to:
    amibroker-unsubscribe@xxxxxxxxxxxxxxx

<*> Your use of Yahoo! Groups is subject to:
    http://docs.yahoo.com/info/terms/