WITHIN ONBARUPDATE
WITHIN ONBARUPDATE
WITHIN BARSINPROGRESS = 1 SECTION
The OnBarUpdate section then stops running and I get the error message. I'm applying this on a 1 min chart and adding a secondary bars set to tick by tick.
[code]
protectedoverridevoid Initialize()
{
Add(PeriodType.Tick, 1);
Add(SMA(Period));
Add(BarTimer());
TraceOrders = true;
CalculateOnBarClose = true;
}
protectedoverridevoid OnBarUpdate()
{
Print("WITHIN ONBARUPDATE");
if (BarsInProgress == 0)
return;
if (BarsInProgress == 1)
{
Print("WITHIN BARSINPROGRESS = 1 SECTION");
if (ToTime(Time[0]) >= Mar****pen && ToTime(Time[0]) < MarketClose)
{
Print("WITHIN MARKET HOURS SECTION");
if (myEntryOrder == null && Position.MarketPosition == MarketPosition.Flat)
{
//Buy if current tick is above SMA of primary bars previous bar
Print("WITHIN ENTRY CONDITIONS SECTION");
if (Close[0] > SMA(BarsArray[0], Period)[1])
{
myEntryOrder = EnterLongLimit(1, true, 100, Closes[0][1], "Buy");
SetStopLoss("Buy",CalculationMode.Ticks, 10, false);
barNumberOfOrder = CurrentBar;
Print("WITHIN ENTRY CONDITIONS SATISFIED SECTION");
}
}
elseif (myEntryOrder != null && Position.MarketPosition == MarketPosition.Flat)
{
Print("WITHIN ENTRY CONDITIONS SECTION 2");
if (Close[0] > SMA(BarsArray[0], Period)[1])
{
myEntryOrder = EnterLongLimit(1, true, 100, Closes[0][1], "Buy");
SetStopLoss("Buy",CalculationMode.Ticks, 10, false);
barNumberOfOrder = CurrentBar;
Print("WITHIN ENTRY CONDITIONS SATISFIED SECTION 2");
}
}
}
}
if (CurrentBar > barNumberOfOrder + 2)
CancelOrder(myEntryOrder);
}
protectedoverridevoid OnOrderUpdate(IOrder order)
{
if (myEntryOrder != null && myEntryOrder.Token == order.Token)
{
Print(order.ToString());
if (order.OrderState == OrderState.Filled)
myEntryOrder = null;
}
}

Comment