PureBytes Links
Trading Reference Links
|
Thank you for pointing out that specific example. That helps me add the column to the backtest report.
But I am still at a loss in feeding back the actual "Condition" value to the custom metric. If I was building that custom metric from other metrics already in the report, it would be easy (and I have done so in the past).
But how do I pass back the value of an actual variable from my trading AFL, each time a Buy is true?
This is what I now have, but the Condition column always shows "5" in the backtest report :
//------------------------------------------------------------------------ // SIMPLE TRADING SYSTEM BASED ON VARIOUS CONDITIONS //------------------------------------------------------------------------
FastMA = MA( C, 10 ); SlowMA = MA( C, 20 );
Condition1 = Cross(FastMA, SlowMA); Condition2 = Cross(SlowMA, FastMA); Condition3 = Cross(C, SlowMA); Condition4 = Cross(SlowMA, C );
for(a = 1; a < 5; a++) { Condition = VarGet( "Condition" + NumToStr( a, 1.0, 0 ) ); Buy = Condition; Sell = BarsSince(Buy) > 12; }
//--------------------------------------------------------------------------- // WANT TO ADD THE CUSTOM COLUMN, "CONDITION" TO BACKTEST REPORT //---------------------------------------------------------------------------
SetCustomBacktestProc("");
if( Status("action") == actionPortfolio ) { bo = GetBacktesterObject();
bo.Backtest(1); // run default backtest procedure // iterate through closed trades first for( trade = bo.GetFirstTrade(); trade; trade = bo.GetNextTrade() ) { trade.AddCustomMetric("Condition", a ); } bo.ListTrades(); }
--- In amibroker@xxxxxxxxxxxxxxx, "Tomasz Janeczko" <groups@xxx> wrote: > > Everything is explained with examples in the User's Guide > http://www.amibroker.com/guide/a_custommetrics.html > > See example 3. > ============ > > Best regards, > Tomasz Janeczko > amibroker.com > ----- Original Message ----- > From: ozzyapeman > To: amibroker@xxxxxxxxxxxxxxx > Sent: Friday, December 26, 2008 1:26 AM > Subject: [amibroker] Adding a Custom Metric to Backtest Report > > > I have been able to add custom metrics to the Optimization Reports, but for some reason can't add a column to the Trade List Backtest report. Hoping someone might be able to chime in here, as the custom backtester confuses me. > > What I want to do is fairly simple. In my actual trading system, I cycle through hundreds of possible conditions per bar. If any one condition is true, then I Buy. I want to add a custom metric to the backtest report that lists which condition generated the Buy signal. > > For the sake of debugging, below is a very simplified AFL (not my actual system). I simply want to feedback the condition number into the backtester. But it does not work. If I add an optimize statement at the top, it will add the custom metric to the Optimization report. But even then that column does not reflect correct values. > > So how do I add the column to the Backtest report? I would have thought the below code would do the trick. And how do I feedback the correct values? Perhaps I need to FPUT each condition, during the loop, to an external file, then FGET the file for every trade in the backtester? That might work, but feels inefficient: > > > //------------------------------------------------------------------------ > // SIMPLE TRADING SYSTEM BASED ON VARIOUS CONDITIONS > //------------------------------------------------------------------------ > > FastMA = MA( C, 10 ); > SlowMA = MA( C, 20 ); > > Condition1 = Cross(FastMA, SlowMA); > Condition2 = Cross(SlowMA, FastMA); > Condition3 = Cross(C, SlowMA); > Condition4 = Cross(SlowMA, C ); > > for(a = 1; a < 5; a++) > { > Condition = VarGet( "Condition" + NumToStr( a, 1.0, 0 ) ); > Buy = Condition; > Sell = BarsSince(Buy) > 12; > } > > > //--------------------------------------------------------------------------- > // WANT TO ADD THE CUSTOM COLUMN, "CONDITION" TO BACKTEST REPORT > //--------------------------------------------------------------------------- > > SetCustomBacktestProc( "" ); > > if ( Status( "action" ) == actionPortfolio ) > { > bo = GetBacktesterObject(); > bo.Backtest( 1 ); // Call Backtest but set NoTradeLists to true > bo.AddCustomMetric( "Condition", a, 0,0,0 ); // Add the custom metric > bo.ListTrades(); // Now generate the backtest report with custom metric > } >
__._,_.___
**** IMPORTANT ****
This group is for the discussion between users only.
This is *NOT* technical support channel.
*********************
TO GET TECHNICAL SUPPORT from AmiBroker please send an e-mail directly to
SUPPORT {at} amibroker.com
*********************
For NEW RELEASE ANNOUNCEMENTS and other news always check DEVLOG:
http://www.amibroker.com/devlog/
For other support material please check also:
http://www.amibroker.com/support.html
*********************************
__,_._,___
|