If you want to keep the CBT code, then you will have to use Foreign or 
SetForeign to indicate that you want to use the arrays associated with the 
symbol of the signal (as opposed to ~~~Equity).

e.g.
ForeignOpen = Foreign(sig.Symbol, "O");
ForeignClose = Foreign(sig.Symbol, "C");

sig.Price = ForeginOpen;
...

or

SetForeign(sig.Symbol);
sig.Price = Open;
...
RestorePriceArrays();


Mike


--- In [email protected], "ta" <tagro...@...> wrote:
>
> Mike
> 
>  
> 
> Thanks as usual for you help & support of this board. I have to use CBT. I
> code that provided is a partial code from a much more complex system. Any
> ideas on sig.price can be changed from within CBT? TIA
> 
>  
> 
> From: [email protected] [mailto:[email protected]] On Behalf
> Of Mike
> Sent: Monday, February 15, 2010 8:22 PM
> To: [email protected]
> Subject: [amibroker] Re: changing entry price in CBT
> 
>  
> 
>   
> 
> No need for custom backtesting code. Just take a single full size position
> and set the BuyPrice to the average of Open and Close.
> 
> Buy = ...;
> BuyPrice = (Open + Close) / 2;
> 
> Mike
> 
> --- In [email protected] <mailto:amibroker%40yahoogroups.com> , "ta"
> <tagroups@> wrote:
> >
> > I want to buy half position on the opening price and half position on the
> > closing price of the same bar. I have not been able to figure out how to
> > this. I tried the following two ways without success. Any help would be
> > appreciated. TIA
> > 
> > 
> > 
> > for ( sig = bo.GetFirstSignal( i ); sig; sig = bo.GetNextSignal( i ) )
> > 
> > {
> > 
> > // BuyPrice = Open; 
> > 
> > sig.price = Open;
> > 
> > bo.EnterTrade( i, sig.Symbol, True, sig.price,
> > sig.PosSize/2, sig.PosScore, RoundLotSize = 1);
> > 
> > // BuyPrice = Close;
> > 
> > sig.price = Close;
> > 
> > bo.EnterTrade( i, sig.Symbol, True, sig.price,
> > sig.PosSize/2, sig.PosScore, RoundLotSize = 1);
> > 
> > 
> > 
> > }
> >
>


Reply via email to