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

[amibroker] Re: functions/variable scope errors



PureBytes Links

Trading Reference Links

Read http://www.amibroker.com/guide/a_userfunctions.html

Then try changing your function signature to just take a parameter 
and move the declaration out of the if statement.

e.g.
function P1f(sys) {
  if (sys == 1) {
    ...
  }
  ...
}

Alternatively, you could create different functions for each scenario 
and check a condition in your calling code to determine which one to 
call.

e.g.
...
if (sys == 1) {
  P1f();
} else {
  OtherP1f();
}
...
function P1f() {
  ...
}
function OtherP1f() {
  ...
}

I don't understand your scope question. But you may find the 
documentation for local/global helpful:

http://www.amibroker.com/guide/keyword/local.html
http://www.amibroker.com/guide/keyword/global.html

Mike

--- In amibroker@xxxxxxxxxxxxxxx, "loveyourenemynow" 
<loveyourenemynow@xxx> wrote:
>
> I am trying to optimize over diffeent types of systems and I need to
> define function accordingly, but I get and error with this code
> 
> if (sys==1){
> ///cc->co entry at close exit at day after open 
> SetOption("ActivateStopsImmediately",True);
> SetTradeDelays(0,0,0,0);
> ShortPrice=C;
> BuyPrice=C;
> CoverPrice=O;
> SellPrice=O;
> function P1f() {return Ref(C,-1);}
> function P2f() {return Ref(C,0);}
> ApplyStop(stopTypeNBar,stopModeBars,1,1); 
> dc=1;
> MaxPosPer=1;
> }
> 
> while outside brackets it runs.
> 
> In a similar way variable I noticed that arrays declared at 
different
> scope levels are not accessible to the lower levels (i think scalr
> yes) unless they are defined at gloabal level,
> This is different from c++ scope conventions.
> So the only way to share among different scopes (I mean portions of
> code at differnt levels of {} nesting), seems to declare them 
globally.
> Am I correct?
> 
> Thanks
> Ly
>




Please note that this group is for discussion between users only.

To get support from AmiBroker please send an e-mail directly to 
SUPPORT {at} amibroker.com

For NEW RELEASE ANNOUNCEMENTS and other news always check DEVLOG:
http://www.amibroker.com/devlog/

For other support material please check also:
http://www.amibroker.com/support.html
 
Yahoo! Groups Links

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

<*> Your email settings:
    Individual Email | Traditional

<*> To change settings online go to:
    http://groups.yahoo.com/group/amibroker/join
    (Yahoo! ID required)

<*> To change settings via email:
    mailto:amibroker-digest@xxxxxxxxxxxxxxx 
    mailto:amibroker-fullfeatured@xxxxxxxxxxxxxxx

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