I have a simple strategy that im trying to program. I cant seem to cancel my previous order when the condition no longer applies. Can someone look over this code to see I'm I'm missing something obvious. I'm somewhat new to programming with ninja.
protected override void OnBarUpdate()
{
// Condition set 1
if (Position.MarketPosition == MarketPosition.Flat)
if ( GetCurrentBid() < Bollinger(2.39, 20).Middle[0])
{
entryOrder = EnterLongLimit(DefaultQuantity, Bollinger(2.39, 20).Lower[0] + -1 * TickSize, "Long");
}
else if (entryOrder != null && GetCurrentBid() > Bollinger(2.39, 20).Middle[0])
{
CancelOrder(entryOrder);
}
// Condition set 2
if (Position.MarketPosition == MarketPosition.Flat)
if (GetCurrentAsk() > Bollinger(2.39, 20).Middle[0])
{
entryOrder = EnterShortLimit(DefaultQuantity, Bollinger(2.39, 20).Upper[0] + 1 * TickSize, "Short");
}
else if (entryOrder != null && GetCurrentAsk() < Bollinger(2.39, 20).Middle[0])
{
CancelOrder(entryOrder);
}
}

Comment