Andy, I have sent an alternative solution to your private Email. Let me know if you received it.
Ed ----- Original Message ----- From: Andy To: [email protected] Sent: Thursday, January 29, 2009 12:40 PM Subject: [amibroker] Re: Sell and Buy on different days This is got to be a very simple task but unfortunately AmiBroker told me that I would have to write Backtester Interface code for this. I'm sure this has been done a million times. Anyone have sample code? I'm using EOD data to trade one stock at a time from a basket of stocks. The problem is that a selling of a stock can occur on the same day as a buy of *another* stock. Of course the problem is that the sell trade can occur after the buy trade. --- In [email protected], "Andy" <se...@...> wrote: > > How do I fix the below code so it doesn't buy a different stock on a > sell day? > > -------------------------------------------------------- > // Backtester Options > SetOption("MaxOpenPositions", 1 ); > SetOption("AllowSameBarExit", False); > > // Optimization numbers > BuyPeriod = Optimize("BuyPeriod",16,10,20,2); > BuyFactor = Optimize("BuyFactor",1.2,0.5,1.5,.1); > SellPeriod = Optimize("SellPeriod",20,10,20,2); > SellFactor = Optimize("SellFactor",0.8,0.5,1.5,.1); > > // ATR formulas > TodaysBuyTarget = High - BuyFactor * ATR(BuyPeriod); > YesterdaysBuyTarget = Ref(High,-1) - BuyFactor * Ref(ATR(BuyPeriod),-1); > YesterdaysSellTarget = Ref(Low,-1) + SellFactor * Ref(ATR(SellPeriod),-1); > > // Buy/Sell signals and prices > Buy = YesterdaysBuyTarget > Low; > BuyPrice = IIf(YesterdaysBuyTarget > Open, Open, YesterdaysBuyTarget); > Sell = YesterdaysSellTarget < High; > SellPrice = IIf(YesterdaysSellTarget < Open, Open, YesterdaysSellTarget); > Buy = ExRem(Buy,Sell); > Sell = ExRem(Sell,Buy); >
