PureBytes Links
Trading Reference Links
|
Great
suggestion Tomasz, thanks for your input!
<FONT face=Arial color=#0000ff
size=2>
This
will make things a lot simpler to code.
<FONT face=Arial color=#0000ff
size=2>
best
regards,
<FONT face=Arial color=#0000ff
size=2>herman.
<FONT face=Arial color=#0000ff
size=2>
<FONT face=Arial color=#0000ff
size=2>
<FONT face=Tahoma
size=2>-----Original Message-----From: Tomasz Janeczko
[mailto:amibroker@xxxxxx]Sent: Monday, August 09, 2004 5:31
AMTo: amibroker@xxxxxxxxxxxxxxxSubject: Re: [amibroker]
Static VariablesImportance: 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
Janeczkoamibroker.com
<BLOCKQUOTE dir=ltr
>
----- Original Message -----
<DIV
>From:
Herman van den
Bergen
To: <A title=amibroker@xxxxxxxxxxxxxxx
href="">amibroker@xxxxxxxxxxxxxxx
Sent: Monday, August 09, 2004 3:28
AM
Subject: RE: [amibroker] Static
Variables
<FONT face=Arial color=#0000ff
size=2>Ara,
<FONT face=Arial color=#0000ff
size=2>
<FONT face=Arial color=#0000ff
size=2>You have to be careful scoping the Static
Variables,
<FONT face=Arial color=#0000ff
size=2>
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...
<FONT face=Arial color=#0000ff
size=2>
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.
<FONT face=Arial color=#0000ff
size=2>
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.
<FONT face=Arial color=#0000ff
size=2>
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 = <FONT color=#0000ff
size=2>NumToStr(<FONT color=#0000ff
size=2>GetChartID(),<FONT color=#ff00ff
size=2>1.0,False); Reset =
Param(<FONT
color=#ff00ff size=2>"Reset Static variables"<FONT
size=2>,0,<FONT
color=#ff00ff size=2>0,<FONT color=#ff00ff
size=2>1,<FONT color=#ff00ff
size=2>1);StaticScope =
Param("Scope
(0:Local,1:Global) for Chart#"+ChartID,<FONT
color=#ff00ff>1,0,<FONT
color=#ff00ff>1,1);<FONT
color=#800000>if( StaticScope ) Scope = <FONT
color=#ff00ff>""; <FONT
color=#800000>else Scope =
ChartID;<FONT
color=#0000ff>.<SPAN
class=343574700-09082004>..<FONT
color=#800000>if<FONT
color=#000000 size=2>( IsEmpty<FONT
color=#000000 size=2>( <FONT color=#0000ff
size=2>StaticVarGet(<FONT
color=#ff00ff size=2>"TickCounter"<FONT
color=#000000>+Scope)) OR Reset)<FONT color=#0000ff
size=2>StaticVarSet(<FONT color=#ff00ff
size=2>"TickCounter"+Scope,<FONT color=#ff00ff
size=2>0);TickCount = <FONT
color=#0000ff size=2>StaticVarGet(<FONT
color=#ff00ff size=2>"TickCounter"<FONT
size=2>+Scope);<FONT
color=#800000>
<SPAN
class=343574700-09082004><SPAN
class=343574700-09082004>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,
<SPAN
class=343574700-09082004>herman.
<FONT face=Arial
color=#0000ff>
<SPAN
class=343574700-09082004> <FONT face=Tahoma
size=2>-----Original Message-----From: Ara Kaloustian
[mailto:ara1@xxxxxxxxxx]Sent: Sunday, August 08, 2004 8:46
PMTo: AB-MainSubject: [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
AraCheck AmiBroker
web page at:<A
href="">http://www.amibroker.com/Check
group FAQ at: <A
href="">http://groups.yahoo.com/group/amibroker/files/groupfaq.html
Check AmiBroker web page at:<A
href="">http://www.amibroker.com/Check
group FAQ at: <A
href="">http://groups.yahoo.com/group/amibroker/files/groupfaq.html
Check AmiBroker web page
at:<A
href="">http://www.amibroker.com/Check
group FAQ at: <A
href="">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
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 the Yahoo! Terms of Service.
|