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

[amibroker] Re: Pass value of variable from AFL to AFL



PureBytes Links

Trading Reference Links

Hi,

There may be a better way, but the following will achieve what you're 
trying to do. 

In your main.afl, #include an external file which contains your 
custom backtest logic. Initialize all the variables that you need to 
use before starting the backtest. You'll still start the backtest 
from main.afl, but simply defer all processing to the external file 
via a procedure call. e.g.

main.afl
--------

#include<backtest.afl>

MaxPositions = 20;

SetCustomBacktestProc("");
if (Status("action") == actionPortfolio) {
  DoBacktest();
}

Buy = Cover = IIF(DayOfWeek() == 1, 1, 0);
Sell = Short = IIF(DayOfWeek() == 4, 1, 0);


backtest.afl
------------

procedure DoBacktest() {
  global MaxPositions;

  bo = GetBacktesterObject();
  bo.backtest();
  bo.addCustomMetric("Max Positions", MaxPositions);
}


Mike

--- In amibroker@xxxxxxxxxxxxxxx, "Graham Johnson" <grahamj@xxx> 
wrote:
>
> For the sake of code re-use, I wish to have CBT code in its own AFL 
and 
> access it using SetCustomBacktestProc("<filename>");
> 
> That works fine except that in the Main.afl there is a variable set 
for 
> Max Open Positions and I want to pass that value to CBT.afl for 
> inclusion in the backtest report using AddCustomMetric.
> 
> Tried using Global but that didn't get a result - CBT.afl didn't 
> recognise the variable name.
> 
> I presume that from Main.afl I could write the value to a file and 
then 
> retrieve the file in CBT.afl.  Gets a bit messy when wanting to 
pass 
> the values of several variables.
> 
> Is there a better way, please?
> 
> Graham
>



------------------------------------

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/