Works for me.

  _____  

From: [email protected] [mailto:[EMAIL PROTECTED] On Behalf
Of Herman
Sent: Friday, 25 July 2008 7:37 PM
To: [email protected]
Subject: RE: [SPAM]Re: [amibroker] How to save Metrics in Composites for
Individual BTs




Still NO GO. 

I am loading the code in the AA, select a watchlist, run an Individual
backtest, and Refresh the WorkSpace. I get the BT report with individual
results. I get two Composites in my Composites Group. One is named
~~~EQUITY, the other ~~~UI_~~~EQUITY. The first makes sense but the second
indicates that the StaticVar does not return the ticker name.

>> It appears that in this code the function Name() returns "~~~EQUITY" and
does not return the name for the ticker being tested, it behaves as if the
~~~EQUITY composite is the ticker being tested.

Can anyone confirm this?
 
Thanks again!
Herman 


// Demo trading system
Short = Cover = 0;
Buy = Cross( MACD(), Signal() );
Sell = Cross( Signal(), MACD() );
// Using the CBT to retrieve/save metrics
StaticVarSetText( "Symbol", Name() );
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_" + StaticVarGetText( "Symbol" ), "X",
atcFlagEnableInPortfolio | atcFlagDefaults );
}
PlotForeign( "~~~UI_"+Name(), "UlcerIndex Historical", colorRed, styleLine
);




-----Original Message-----
From: [email protected] [mailto:amibroker@
<mailto:[email protected]> yahoogroups.com]On Behalf Of Tomasz
Janeczko
Sent: July 25, 2008 4:08 AM
To: [email protected]
Subject: [SPAM]Re: [amibroker] How to save Metrics in Composites for
Individual BTs


It will work OK.
Individual backtest *is* portfolio backtest but just portfolio consisting of
one symbol at a time.

Note that one should select "Individual Backtest" (not "OLD" backtest) from
AA->Backtest drop down.

One correction though
StaticVarSetText( "Symbol", Name() );

should be called only when NOT in portfolio mode

so

if( Status("action") == actionBacktest ) StaticVarSetText( "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_" + StaticVarGetText( "Symbol" ) +
"_HISTORICAL", "X", atcFlagEnableInPortfolio | atcFlagDefaults );
}

----- Original Message -----
From: Paul Ho
To: [email protected]
Sent: Friday, July 25, 2008 4:45 AM
Subject: RE: [amibroker] How to save Metrics in Composites for Individual
BTs


 First of all. You use Status{"action") == actionPortfolio, individual
backtest wont go through there.



From: [email protected] [mailto:amibroker@
<mailto:[email protected]> yahoogroups.com] On Behalf Of Herman
Sent: Friday, 25 July 2008 9:31 AM
To: [email protected]
Subject: Re: [amibroker] How to save Metrics in Composites for Individual
BTs


Thank you Tomasz, but this code still does not work. I changed the StaticVar
to the Text type.

Can you help some more ... ?  or does anyone else see the problem?

TIA,
Herman

StaticVarSetText( "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_" + StaticVarGetText( "Symbol" ) +
"_HISTORICAL", "X", atcFlagEnableInPortfolio | atcFlagDefaults );
}
PlotForeign( "~~~UI_HISTORICAL", "UlcerIndex Historical", colorRed,
styleLine );

-----Original Message-----
From: [email protected] [mailto:amibroker@
<mailto:[email protected]> yahoogroups.com]On Behalf Of Tomasz
Janeczko
Sent: July 24, 2008 3:00 PM
To: [email protected]
Subject: [SPAM]Re: [amibroker] How to save Metrics in Composites for
Individual BTs


The same code. The only distinction is that you need to run INDIVIDUAL
backtest
and use Static variable to save name

StaticVarSet Text ("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 Text ("Symbol") +
"_HISTORICAL", "X", atcFlagEnableInPortfolio | atcFlagDefaults );
}

PlotForeign("~~~UI_HISTORICAL", "UlcerIndex Historical", colorRed, styleLine
);





 

Reply via email to