Do you have any idea what is wrong with the Iorders below??
private IOrder stopLongOrder = null;
private IOrder stopShortOrder = null;
private IOrder entryLongOrder = null;
private IOrder entryShortOrder = null;
public int contracts;
protected override void Initialize()
{
CalculateOnBarClose = true;
ExitOnClose = false;
RealtimeErrorHandling = RealtimeErrorHandling.TakeNoAction;
}
private void Bracket()
{
Stop = 50;
contracts = (int)(10000 * (0.02 * 10000) / Stop);
}
private void LongEntry()
{
Bracket();
barNumberOfOrder = CurrentBar;
entryLongOrder = EnterLongStop(contracts, Close[0] + 1 * TickSize, "LongEntry");
}
private void ShortEntry()
{
Bracket();
barNumberOfOrder = CurrentBar;
entryShortOrder = EnterShortStop(contracts, Close[0] - 1 * TickSize, "ShortEntry");
}
private void ExitPosition()
{
int NbBars = CurrentBar - barNumberOfOrder;
if (NbBars >= 20)
{
if (stopLongOrder == null && stopShortOrder == null
&& Position.MarketPosition == MarketPosition.Long)
{
stopLongOrder = ExitLongStop(Close[0] - 1 * TickSize, "LongEntry");
}
if (stopShortOrder == null && stopLongOrder == null
&& Position.MarketPosition == MarketPosition.Short)
{
stopShortOrder = ExitShortStop(Close[0] + 1 * TickSize, "ShortEntry");
}
}
}
protected override void OnBarUpdate()
{
ExitPosition();
if (entryLongOrder == null && entryShortOrder == null
&& Position.MarketPosition == MarketPosition.Flat
&& Close[0] < Close[1])
{
LongEntry();
}
if (entryShortOrder == null && entryShortOrder == null
&& Position.MarketPosition == MarketPosition.Flat `
&& Close[0] > Close[1])
{
ShortEntry();
}
}
protected override void OnOrderUpdate(IOrder order)
{
if (entryLongOrder != null && entryLongOrder == order)
{
if (order.OrderState == OrderState.Rejected)
{
entryLongOrder = EnterLong(contracts, "LongEntry");
}
if (order.OrderState == OrderState.Filled)
{
entryLongOrder = null;
}
}
if (entryShortOrder != null && entryShortOrder == order)
{
if (order.OrderState == OrderState.Rejected)
{
entryShortOrder = EnterShort(contracts, "ShortEntry");
}
if (order.OrderState == OrderState.Filled)
{
entryShortOrder = null;
}
}
if (stopLongOrder != null && stopLongOrder == order)
{
if (order.OrderState == OrderState.Rejected)
{
stopLongOrder = ExitLong("LongEntry");
}
if (order.OrderState == OrderState.Filled)
{
stopLongOrder = null;
}
}
if (stopShortOrder != null && stopShortOrder == order)
{
if (order.OrderState == OrderState.Rejected)
{
stopShortOrder = ExitShort("ShortEntry");
}
if (order.OrderState == OrderState.Filled)
{
stopShortOrder = null;
}
}
}

Comment