Since you have not posted your code I can not debug it for you but the following code works for me:
MaxBuys = 5;
SetBacktestMode( backtestRegularRaw2 );
SetCustomBacktestProc("");
if ( Status( "action" ) == actionPortfolio )
{
bo = GetBacktesterObject();
bo.PreProcess();
for ( i = 0; i < BarCount; i++ )
{
cntBuys = 0;
for ( sig = bo.GetFirstSignal( i ); sig; sig = bo.GetNextSignal( i ) )
{
if ( sig.IsEntry() )
{
// this handles limiting of number of order per day
CanEnter = False;
if ( CntBuys <= MaxBuys )
{
bo.EnterTrade( i, sig.Symbol, True, sig.Price, sig.PosSize,
sig.PosScore, RoundLotSize = 1);
CanEnter = True;
CntBuys++;
}
if ( ! CanEnter ) sig.Price = -1;
}
}
bo.ProcessTradeSignals( i );
}
bo.PostProcess();
}
From: [email protected] [mailto:[email protected]] On Behalf
Of woodshedder_blogspot
Sent: Saturday, September 26, 2009 3:52 PM
To: [email protected]
Subject: [amibroker] Re: Help Limiting number of positions added per day
TA, thanks for the help.
I'm having a problem with this line:
bo.PostProcess();
This is the error I'm getting: "Error 18 COM object variable is not
initialized or has invalid type (valid COM object handle required)
Wood
--- In [email protected] <mailto:amibroker%40yahoogroups.com> , "ta"
<tagro...@...> wrote:
>
> You need to use Custom Backtester as follows:
>
>
>
> MaxBuys = 5;
>
> SetBacktestMode( backtestRegularRaw2 );
>
> SetCustomBacktestProc("");
>
> if ( Status( "action" ) == actionPortfolio )
>
> {
>
> bo = GetBacktesterObject();
>
> bo.PreProcess();
>
>
>
> for ( sig = bo.GetFirstSignal( i ); sig; sig =
> bo.GetNextSignal( i ) )
>
> {
>
> if ( sig.IsEntry() )
>
> {
>
> // this handles limiting of number of order
> per day
>
> CanEnter = False;
>
> if ( CntBuys <= MaxBuys )
>
> {
>
>
> bo.EnterTrade( i, sig.Symbol, True, sig.Price, sig.PosSize, sig.PosScore,
> RoundLotSize = 1);
>
> CanEnter =
> True;
>
> CntBuys++;
>
> }
>
>
>
> if ( ! CanEnter )
>
> sig.Price =
> -1;
>
> }
>
> }
>
> bo.ProcessTradeSignals( i );
>
> }
>
> bo.PostProcess();
>
> }
>
>
>
> From: [email protected] <mailto:amibroker%40yahoogroups.com>
[mailto:[email protected] <mailto:amibroker%40yahoogroups.com> ] On
Behalf
> Of woodshedder_blogspot
> Sent: Thursday, September 24, 2009 8:25 PM
> To: [email protected] <mailto:amibroker%40yahoogroups.com>
> Subject: [amibroker] Help Limiting number of positions added per day
>
>
>
>
>
> Greetings group.
>
> I want to limit the number of positions a system will take on any given
day.
>
>
> For example, if a system can handle 20 max positions, I would like it to
> only take on 5 new positions a day (assuming there are more than 5 valid
> signals per day) until it arrives at 20 positions, rather than taking on
all
> available positions on day 1.
>
> Thanks for your help.
>
<<image001.jpg>>
<<image002.jpg>>
