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 ); 

 

Reply via email to