You can only make trade decisions based on the current bar's prices (i.e.
today), not the next bar's prices (i.e. tomorrow).  Actually AB allows you
to make decisions on tomorrow's prices, but that's looking into the future
and would not make a tradable system.  I suggest you get rid of the 1 bar
trade delay and enter a Buy on the current bar if the High is higher than
the previous bar's determined BuyStop level.  Here's example code:

 

SetTradeDelays(0,0,0,0);

BuyStop = H*1.01; //the formula for Buy stop level;

SellStop = L*0.99; //the formula for Sell stop level;

 

yBuyStop = Ref(BuyStop,-1);  // yesterday's BuyStop

ySellStop = Ref(SellStop,-1);// yesrerday's SellStop

 

BuyPrice = IIf(O > yBuyStop, O, yBuyStop); // If the Open > yesterday's
BuyStop, then use Open else BuyStop 

SellPrice = IIf(O < ySellStop, O, ySellStop); // If the Open < yesterday's
SellStop, then use Open else SellStop

 

Buy = H > BuyPrice; 

Sell = L < SellPrice;

 

For each current bar, you'll have the BuyStop and SellStop for the next day.
The backtester will use the previous day's BuyStop and SellStop values to
determine the signals for the current (i.e. the following) day.  In other
words, tomorrow's trade signals will be based on today's BuyStop and
SellStop values, however tomorrow's bar will not be processed until it
becomes the current bar at which time today''s BuyStop becomes the previous
bar's BuyStop.

 

Hope this makes sense.

 

Regards,

 

David

  _____  

From: [email protected] [mailto:[EMAIL PROTECTED] On Behalf
Of Ernie Newman
Sent: 02/26/2007 7:24 PM
To: [email protected]
Subject: [amibroker] Re: Help NEEDED with BuyPrice

 

Thanks for the Help David
BUT if tomorrows High is not greater than todays high buy signal
it still buys the high for tomorrow when if the price does not trade 
HIGHER it shouldn't make a trade.
In other words if tomorrows high price is less than todays high there
should be no trade and using your example still will buy at tomorrows 
high even if it is less than today's high.
Thanks
Ernie
--- In [EMAIL PROTECTED] <mailto:amibroker%40yahoogroups.com> ps.com,
"dbw451" <[EMAIL PROTECTED]> wrote:
>
> Hi Ernie,
> 
> 
> 
> I don't exactly understand what you're trying to do, but maybe 
something
> like this helps:
> 
> 
> 
> SetTradeDelays(1,1,1,1);
> 
> BuyStop = Ref(H,-1)*1.01; //the formula for Buy stop level;
> 
> SellStop = Ref(L,-1)*0.99; //the formula for Sell stop level;
> 
> 
> 
> BuyPrice = Max( BuyStop, Low ); // make sure buy price not less 
than Low 
> 
> SellPrice = Min( SellStop, High ); // make sure sell price not 
greater than
> High
> 
> 
> 
> Buy = H > BuyPrice; 
> 
> Sell = L < SellPrice;
> 
> 
> 
> If this is a buy and short system, then the Sell and SellPrice 
variables
> should be Short and ShortPrice. One problem you'll have with the 
BuyPrice
> and SellPrice is when they are equal to the Low or High. This will 
not
> reflect reality because it's pure luck to catch the high or low 
price for a
> day. A better approach would be to use the Open price:
> 
> 
> 
> BuyPrice = IIf(O > BuyStop, O, BuyStop); // make sure buy 
price not
> less than Low 
> 
> SellPrice = IIf(O < SellStop, O, SellStop); // make sure sell 
price not
> greater than High
> 
> 
> 
> Hope this is of some use.
> 
> 
> 
> Regards,
> 
> 
> 
> David
> 
> 
> 
> 
> 
> _____ 
> 
> From: [EMAIL PROTECTED] <mailto:amibroker%40yahoogroups.com> ps.com
[mailto:[EMAIL PROTECTED] <mailto:amibroker%40yahoogroups.com> ps.com] 
On Behalf
> Of Ernie Newman
> Sent: 02/26/2007 5:26 PM
> To: [EMAIL PROTECTED] <mailto:amibroker%40yahoogroups.com> ps.com
> Subject: [amibroker] Help NEEDED with BuyPrice
> 
> 
> 
> I am trying to back test different systems that want to buy
> Todays High Price + .125 and the following code works only when the 
> next days price is > the h,-1 otherwise it will buy the h of the 
> entry day and not the day before.
> This should a simple thing to do but I can't make it work??
> THANKS
> Ernie
> 
> CondA = C > O;
> CondB = O < C;
> SetTradeDelays(1,1,1,1);
> BuyStop = Ref(H,-1); // *1.01; //the formula for Buy stop level;
> 
> SellStop = Ref(L,-1)*0.99; //the formula for Sell stop level;
> 
> Buy = CondA; 
> 
> Sell = CondB; 
> 
> BuyPrice = Max( BuyStop, Low ); // make sure buy price not less 
than 
> Low 
> 
> SellPrice = Min( SellStop, High ); // make sure sell price not 
> greater than High
>

 

Reply via email to