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 );
}
}
}