Herman,

If running the script using the Backtest on individual symbols (i.e. 
not as portfolio), couldn't you just construct the name as part of 
the script?

Sorry that I haven't actually tried this out first (no AmiBroker on 
this machine). But, I believe the script would only ever apply to a 
single ticker at a time. If so, it should work.

Mike

e.g.

// Demo trading system
Short = Cover = 0;
Buy=Cross( MACD(), Signal() );
Sell=Cross( Signal(), MACD() );

atcName = "~~~UI_"+Name(); // <-- Name of single ticker in use

// 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
  }

  bo.PostProcess();
  AddToComposite( MyHistStat1, atcName, "X", atcFlagEnableInPortfolio 
| atcFlagDefaults ); // <-- Signals are all on single ticker at a time
}

PlotForeign(atcName, "UlcerIndex Historical", colorRed, styleLine );


--- In [email protected], "Herman" <[EMAIL PROTECTED]> wrote:
>
> Some time ago Tomasz posted the code below (simplified) on the KB. 
Would
> anyone know how to modify this code to save the metrics for 
individually
> backtested tickers? Composites would be named like "UI_"+Name(). I 
want to
> run individual backtests over a watchlist and save ticker-specific 
metrics
> in composites. The metrics would be read/used in another trading 
system.
> 
> many thanks for any help you can give!
> herman
> 
> // 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_HISTORICAL", "X",
> atcFlagEnableInPortfolio | atcFlagDefaults );
> }
> 
> PlotForeign("~~~UI_HISTORICAL", "UlcerIndex Historical", colorRed,
> styleLine );
>


Reply via email to