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:[email protected]] On Behalf
Of woodshedder_blogspot
Sent: Thursday, September 24, 2009 8:25 PM
To: [email protected]
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>>

Reply via email to