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