Ara,
I did this a while back. I extracted this
information by looping through the trades using the CBT. Then I saved the info
in a composite. Added code below. You just need to call this code inside your
main program using SetCustomBacktestProc( ) but I think you know the
drill:
rgds, Ed
SetCustomBacktestProc("");
if( Status("action") == actionPortfolio ) {
bo = GetBacktesterObject();
// perform default portfolio
backtest bo.Backtest(); //
initialisations longTrades = 0; shortTrades =
0; // store the DateTime() in a STRING
array. fdatetime = DateTime();
// loop through trades for(
trade = bo.GetFirstTrade(); trade ; trade = bo.GetNextTrade() )
{ //
find the entry datetime of the trade entry_datetime =
trade.EntryDateTime;
// find the exit datetime of the
trade exit_datetime =
trade.ExitDateTime; // locate the array index at
entry index_entry = IIF(entry_datetime == fdatetime, 1,
0); // locate the array index at
exit index_exit = IIF(exit_datetime == fdatetime, 1,
0); // indicate bars where the trade
occurs index_trade =
flip(index_entry,index_exit); // accumulate long
and short trades if (trade.IsLong)
{ longTrades = longTrades
+ index_trade;
//} else if (!trade.IsLong)
{ } else { shortTrades =
shortTrades + index_trade;
}
}
// loop through open positions for(
Openpos = bo.GetFirstOpenPos(); Openpos ; Openpos = bo.GetNextOpenPos() )
{ // find the entry datetime of the
trade entry_datetime = Openpos.EntryDateTime;
// find the exit datetime of the
trade exit_datetime =
Openpos.ExitDateTime; // locate the array index
at entry index_entry = IIF(entry_datetime == fdatetime, 1,
0); // locate the array index at
exit index_exit = IIF(exit_datetime == fdatetime, 1,
0); // indicate bars where the trade
occurs index_trade =
flip(index_entry,index_exit); // accumulate long
and short trades if (Openpos.IsLong)
{ longTrades = longTrades +
index_trade;
//} else if (!Openpos.IsLong)
{ } else { shortTrades =
shortTrades + index_trade;
}
}
AddToComposite(longTrades,"~longTrades","C",atcFlagDeleteValues
| atcFlagEnableInPortfolio
); AddToComposite(shortTrades,"~shortTrades","C",atcFlagDeleteValues |
atcFlagEnableInPortfolio); }
----- Original Message -----
Sent: Wednesday, September 03, 2008 7:39
PM
Subject: [amibroker] Backtest - Number of
positions
Is there a way to determine (get a chart) of the
number of positions over time
Tx
Ara
__._,_.___
Please note that this group is for discussion between users only.
To get 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
__,_._,___
|