Hi folks,

I have a problem with the backtester. I have a trading system which
opens all positions on OPEN price and closes all positions CLOSE
price. Maximum number of positions is set to 1. Now, if I might have
the situation below:

Day             1          2          3          4          5
Trade #1 (A) b...@open------------>s...@close
Trade #2 (B)                       b...@open------------>s...@close

Trade #1 with symbol (A) has a SELL signal on day 3 and some other
symbol (B) has a BUY signal on the same day, and this causes AmiBroker
to make trade #2 also on day 3.
But, in fact this is not possible because there is no
cash available on day 3 to b...@open (because first I must SELL trade
#1). Therefore, the correct behaviour would be to start trade #2 on
day 4 after the other position for trade #1 was closed. It seems that
AB always asumes that the cash for closing positions is available at
the same bar to start new trades. Please see also the code below.

How can I force AB to consider that cash from a s...@close is not
available on the same bar?

Thanks in advance and best regards,
Markus

//--- cut here ---
Buy = Sell = Short = Cover = False;
BuyPrice = SellPrice = ShortPrice = CoverPrice = 0;
SetOption("MaxOpenPositions", 1);
SetPositionSize(100, spsPercentOfEquity);
SetTradeDelays(1,0,1,0);
TradeDays = 3;
BuyPrice = ShortPrice = Open;
SellPrice = CoverPrice = Close;
Buy = ExRemSpan(True, TradeDays);
Sell = Ref(Buy, -TradeDays); 
//--- cut here ---

Reply via email to