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/
|