The same code. The only distinction is that you need to run INDIVIDUAL backtest
and use Static variable to save name
StaticVarSet("Symbol", Name() );
// Demo trading system
Short = Cover = 0;
Buy=Cross( MACD(), Signal() );
Sell=Cross( Signal(), MACD() );
// Using the CBT to retrieve/save metrics
SetOption("UseCustomBacktestProc", True );
if( Status("action") == actionPortfolio )
{
bo = GetBacktesterObject();
bo.PreProcess();
MyHistStat1 = Null;
for(bar=0; bar < BarCount; bar++)
{
bo.ProcessTradeSignals( bar );
stats = bo.GetPerformanceStats( 0 );
MyHistStat1[ bar ] = stats.GetValue("UlcerIndex"); // any metric can be
retrieved
}
bo.PostProcess();
AddToComposite( MyHistStat1, "~~~UI_" + StaticVarGet("Symbol") +
"_HISTORICAL", "X", atcFlagEnableInPortfolio | atcFlagDefaults );
}
PlotForeign("~~~UI_HISTORICAL", "UlcerIndex Historical", colorRed, styleLine );