Thanks Ed.
I love that exclamation mark!
I am using the 
  following code, but it's not eliminating the trades
above the param number. 
  I tried using the default backtest mode
(removed the 
  "backtestRegularRawMulti" statement), and ran the code
with a 
  watchlist of symbols, but I still get more trades processed
than that in my 
  param field.
Any clues here on why this code may not be 
  working?
One clue is when I set the parameter to zero, it works - no 
  long
trades are executed. But any number other than zero, and it 
  processes
them all in the backtest.
_SECTION_BEGIN("Maximum 
  buys");
// Maximum buys in a 
  period
//-----------------------------
SetCustomBacktestProc("");
Num 
  = Param("MaxBuys",4,0,9,1);
MaxBuys = Num;
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.Islong() ) {
if( CntBuys > 
  MaxBuys - 1 ) {
sig.possize= 0;
} else 
  {
cntBuys++;
}
}
}
bo.ProcessTradeSignals( i 
  );
}
bo.PostProcess();
}
//-----------------------------
_SECTION_END();
--- 
  In amibroker@xxxxxxxxxps.com, 
  "Edward Pottasch" <empottasch@...>
wrote:
>
> if you 
  are for instance looping through the trades like:
> 
> for( trade 
  = bo.GetFirstTrade(); trade ; trade = bo.GetNextTrade() ) {
> 
  
> then you can check: if (!trade.IsLong)
> 
> 
  rgds,Ed
> 
> 
> 
> 
> ----- Original Message 
  ----- 
> From: cipherscribe 
> To: amibroker@xxxxxxxxxps.com 
  
> Sent: Wednesday, September 24, 2008 8:33 PM
> Subject: 
  [amibroker] Re: Net position sizing.
> 
> 
> How do you 
  identify a short signal in the preprocess? I see only the
> following 
  signal object methods:
> 
> Methods:
> 
> * bool 
  IsEntry()
> 
> True if this is entry signal, False 
  otherwise
> 
> * bool IsExit()
> 
> True if this is 
  exit signal, False otherwise
> 
> * bool IsLong()
> 
> 
  True if this is long entry (buy) or long exit (sell) or scale-in
> 
  signal, False otherwise
> 
> * bool IsScale()
> 
> 
  True if this is scale-in or scale-out signal, False otherwise 
> 
  
> Is there a IsShort() method?
> 
> Cheers,
> 
  
> Adrian
> 
> --- In amibroker@xxxxxxxxxps.com, 
  "cipherscribe"
> <adrian.mollenhorst@> wrote:
> 
  >
> > Thanks Thomasz and Ara,
> > 
> > I am 
  using the "backtestRegularRawMulti" option, which gives me
> > 
  multiple signals.
> > 
> > Thanks for the hint to direct my 
  attentions toward the custom
> > backtester. I shall look into it and 
  hopefully code what I am
> looking for.
> > 
> > 
  Cheers,
> > 
> > Adrian
> > 
> > 
> 
  > --- In amibroker@xxxxxxxxxps.com, 
  "Tomasz Janeczko" <groups@> wrote:
> > >
> > > 
  By default you can NOT have both LONG and SHORT pos on the same
> > 
  symbol open at the same time.
> > > 
> > > The only 
  way to have it is to use low-level custom backtester.
> > > http://www.amibroker.com/guide/a_custombacktest.html
> 
  > > 
> > > Best regards,
> > > Tomasz 
  Janeczko
> > > amibroker.com
> > > ----- Original 
  Message ----- 
> > > From: "cipherscribe" 
  <adrian.mollenhorst@>
> > > To: <amibroker@xxxxxxxxxps.com>
> 
  > > Sent: Wednesday, September 24, 2008 5:17 PM
> > > 
  Subject: [amibroker] Net position sizing.
> > > 
> > > 
  
> > > >I trade the ES Futures contract mechanically, and I 
  want my to be
> able
> > > > to backtest my system such 
  that it has a maximum net
position at any
> > > > one time 
  of abs(x) positions.
> > > > 
> > > > I can set 
  the option to limit the number of Maximum Open
Positions,
> > > 
  > but this doesn't help me when I am trading only 1 instrument. 
> 
  > > > 
> > > > For example (Note I am using the 
  backtest mode
> > > > "backtestRegularRawMulti", so I take 
  every raw signal my equity
> allows
> > > > me.), the 
  system can issue a buy, which will make me long.
If the
> > > 
  > system issues a short, while I'm long, it will send a 
  short
order,
> > > > which will make me effectively 
  flat.
> > > > 
> > > > This will count as 2 open 
  orders in the backtester, but in
> reality, I
> > > > 
  have no positions open, and could take another abs(x) in either
> > 
  > > direction before I hit my maximum limit of open positions 
  (x).
> > > > 
> > > > So if I had 2 longs open, 
  I could accept up to 5 shorts, if my
> maximum
> > > > 
  open position(x) was abs(3).
> > > > 
> > > > 
  This is different from exiting a position when a signal in the
> > 
  > > opposing direction is triggerred, as 
  in
"ReverseSignalForcesExit",
> > > > since that option 
  cancels the existing order. I need both to
remain
> > > > 
  open, remembered, and exited at my sell/cover trigger, not the
> > 
  > > opposing short/buy signal.
> > > > 
> > > 
  > What I need is for Amibroker to tabulate both long and short
> 
  positions
> > > > distinctly, to count longs as positive, 
  shorts as
negatively, and to
> > > > be able to set a 
  maximum net position.
> > > > 
> > > > I can do 
  this in reality with no problems - send orders to IB
> based on
> 
  > > > a maximum net position, but I'd like to be able to do it 
  in
> > > > backtester, so I can validate the system.
> 
  > > > 
> > > > Any Ideas?
> > > > 
  
> > > > 
> > > > 
  ------------------------------------
> > > > 
  
> > > > 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
> 
  > > > Yahoo! Groups Links
> > > > 
> > > 
  > 
> > > >
> > >
> 
  >
>