PureBytes Links
Trading Reference Links
|
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.
------------------------ 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/
|