[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[amibroker] Re: CBT and Nbar



PureBytes Links

Trading Reference Links

Brilliant! There is nothing more beautiful than a brilliant mind. As 
for FindSignal, I could not get it to work.I think TJ needs to let us 
know if my usage of it is correct or there is a bug with it. Many 
thanks.

--- In amibroker@xxxxxxxxxxxxxxx, "Mike" <sfclimbers@xxx> wrote:
>
> Hi,
> 
> I was not suggesting that you change your existing looping code, 
but 
> rather that you replace your call to bo.FindSignal with an 
> *additional* loop (assuming that you could not get bo.FindSignal to 
> work the way you expect).
> 
> So, your code becomes:
> 
> for (pos = bo.GetFirstOpenPos(); pos; pos = bo.GetNextOpenPos()) {
>   if (pos.BarsInTrade >= Nbar) {
>     newSignal = false;
> 
>     // Substitute for bo.FindSignal 
>     for (sig = bo.GetFirstSignal(i); sig; sig = bo.GetNextSignal
(i)) {
>       if (sig.isEntry() && sig.Symbol == pos.Symbol) {
>         newSignal = true;
>         break;
>       }
>     }
> 
>     if (newSignal) {
>       // ignore sell signal if we also have a buy signal
>     } else {
>       NextDayOprice = pos.getprice(i,"O");
>       bo.ExitTrade(i, pos.symbol, NextDayOprice, 5);
>     }
>   }
> }
> 
> Mike
> 
> --- In amibroker@xxxxxxxxxxxxxxx, "tipequity" <l3456@> wrote:
> >
> > Mike 
> > 
> > Thanks for your response. Theoretically, since I am trying to 
exit 
> > after Nbars on NO buy siganls I should not be looping thru buy or 
> > sell signals. However, I did try it at follows and it did not 
work. 
> > TIA
> > 
> > for ( sig = bo.GetFirstSignal( i ); sig; sig = bo.GetNextSignal( 
> i ) )
> > {
> > 	Pos = bo.FindOpenPos( sig.Symbol );
> > 	if ( (sig.IsEntry() == False) AND (pos == True) AND 
> > (pos.BarsInTrade >= Nbar) )
> > 	{
> > 		NextDayOprice = pos.getprice(i,"O");
> > 		bo.ExitTrade( i, pos.symbol, NextDayOprice, 5);
> > 		_TRACE("i= " + i + " Date: " + dtstr + " Symbol: :" + 
> > pos.Symbol + " BarsinTrade: " +  
> > 					pos.BarsInTrade + " We DONT 
> > have Buy Signal: " );
> > 	}
> > }
> > 
> > 
> > --- In amibroker@xxxxxxxxxxxxxxx, "Mike" <sfclimbers@> wrote:
> > >
> > > Hi,
> > > 
> > > I'm not familiar with the FindSignal method that you describe. 
> But, 
> > > it sounds like you could get the same thing by looping through 
> the 
> > > list of signals using GetFirstSignal(i) and GetNextSignal(i) 
> > > http://www.amibroker.com/guide/a_custombacktest.html
> > > 
> > > Mike
> > > 
> > > --- In amibroker@xxxxxxxxxxxxxxx, "tipequity" <l3456@> wrote:
> > > >
> > > > The following CBT code is supposed to sell a long position 
> after 
> > > nth 
> > > > bar if I don't have a buy signal on the nth bar. The logic 
for 
> > the 
> > > > code is as follows:
> > > > 
> > > > 1. loop thru open position list
> > > > 2. if a positions has been open for nbar then check the buy 
> list 
> > > > 3. if the symbols exits in the buy list do nothing else sell 
> the 
> > > > position.
> > > > 
> > > > For some reason that I can not figure out, the new function 
> > > > FindSignal always return a null value. Can anybody provide 
some 
> > > > insight or an alternative solution? TIA
> > > > 
> > > > 
> > > > for ( pos = bo.GetFirstOpenPos(); pos; pos = bo.GetNextOpenPos
> () )
> > > > {
> > > > 	if ( pos.BarsInTrade >= Nbar ) 
> > > > 	{
> > > > 		_TRACE("i= " + i + " Date: " + dtstr + " 
Symbol: :" + 
> > > > pos.Symbol + " BarsinTrade: " +  pos.BarsInTrade + " Max 
> Holding 
> > > > Period");
> > > > 		if ( Sig = bo.FindSignal( i, pos.Symbol, 1 ) )
> > > > 		{
> > > > 			// ignore sell signal if we also have 
a buy 
> > > > signal
> > > > 			_TRACE("i= " + i + " Date: " + dtstr 
+ " 
> > > > Symbol: :" + pos.Symbol + " BarsinTrade: " +  pos.BarsInTrade 
> + " 
> > > > ignore sell signal, we have Buy Signal, don't sell: " + sig);
> > > > 		}
> > > > 		else 
> > > > 		{
> > > > 			NextDayOprice = pos.getprice(i,"O");
> > > > 			bo.ExitTrade( i, pos.symbol, 
NextDayOprice, 
> > > > 5);
> > > > 			_TRACE("i= " + i + " Date: " + dtstr 
+ " 
> > > > Symbol: :" + pos.Symbol + " BarsinTrade: " +  pos.BarsInTrade 
> + " 
> > > We 
> > > > DONT have Buy Signal: " + sig );
> > > > 		}
> > > > 	}
> > > > }
> > > >
> > >
> >
>



------------------------------------

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

<*> To visit your group on the web, go to:
    http://groups.yahoo.com/group/amibroker/

<*> Your email settings:
    Individual Email | Traditional

<*> To change settings online go to:
    http://groups.yahoo.com/group/amibroker/join
    (Yahoo! ID required)

<*> To change settings via email:
    mailto:amibroker-digest@xxxxxxxxxxxxxxx 
    mailto:amibroker-fullfeatured@xxxxxxxxxxxxxxx

<*> To unsubscribe from this group, send an email to:
    amibroker-unsubscribe@xxxxxxxxxxxxxxx

<*> Your use of Yahoo! Groups is subject to:
    http://docs.yahoo.com/info/terms/