Thanks Mike

So simple.  I have a history of looking for the complex solutions and 
missing the simple ones.

Thanks again

Graham


--- In [email protected], "Mike" <[EMAIL PROTECTED]> wrote:
>
> Note that you could also just choose to pass the values as 
parameters 
> rather than using the global keyword.
> 
> e.g. DoBacktest(MaxPositions);
> 
> Mike
> 
> --- In [email protected], "Mike" <sfclimbers@> wrote:
> >
> > 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 [email protected], "Graham Johnson" <grahamj@> 
> > 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
> > >
> >
>


Reply via email to