I have been able to add custom metrics to the Optimization Reports, but
for some reason can't add a column to the Trade List Backtest report.
Hoping someone might be able to chime in here, as the custom backtester
confuses me.

What I want to do is fairly simple. In my actual trading system, I cycle
through hundreds of possible conditions per bar. If any one condition is
true, then I Buy. I want to add a custom metric to the backtest report
that lists which condition generated the Buy signal.

For the sake of debugging, below is a very simplified AFL (not my actual
system). I simply want to feedback the condition number into the
backtester. But it does not work. If I add an optimize statement at the
top, it will add the custom metric to the Optimization report. But even
then that column does not reflect correct values.

So how do I add the column to the Backtest report? I would have thought
the below code would do the trick. And how do I feedback the correct
values? Perhaps I need to FPUT each condition, during the loop, to an
external file, then FGET the file for every trade in the backtester?
That might work, but feels inefficient:


//----------------------------------------------------------------------\
--
// SIMPLE TRADING SYSTEM BASED ON VARIOUS CONDITIONS
//----------------------------------------------------------------------\
--

FastMA       =    MA( C, 10 );
SlowMA       =    MA( C, 20 );

Condition1   = Cross(FastMA, SlowMA);
Condition2   = Cross(SlowMA, FastMA);
Condition3   = Cross(C,      SlowMA);
Condition4   = Cross(SlowMA, C     );

for(a = 1; a < 5; a++)
{
Condition    = VarGet( "Condition" + NumToStr( a, 1.0, 0 ) );
Buy          = Condition;
Sell         = BarsSince(Buy) > 12;
}


//----------------------------------------------------------------------\
-----
// WANT TO ADD THE CUSTOM COLUMN, "CONDITION" TO BACKTEST REPORT
//----------------------------------------------------------------------\
-----

SetCustomBacktestProc( "" );

if ( Status( "action" ) == actionPortfolio )
{
bo = GetBacktesterObject();
bo.Backtest( 1 );                                    // Call Backtest
but set NoTradeLists to true
bo.AddCustomMetric( "Condition", a, 0,0,0 );         // Add the custom
metric
bo.ListTrades();                                     // Now generate the
backtest report with custom metric
}


Reply via email to