Regarding the orders, I am currently using this approach. Do you see any problems? I certainly could use the SetStopLoss() and profit target that you previously suggested, but I am just curious if this code works or not.
private IOrder entryOrder = null;
private IOrder stopLossOrder = null;
private IOrder profitTargetOrder = null;
protected override void OnBarUpdate()
{
entryOrder = EnterLongStop(0, true /*liveUntilCancelled*/, quantity, entryPrice, "long");
stopLossOrder = ExitLongStop(0, true /*liveUntilCancelled*/, quantity, stopLossPrice, "long stop", "long");
profitTargetOrder = ExitLongLimit(0, true /*liveUntilCancelled*/, quantity, targetPrice, "long target", "long");
}
protected override void OnExecution(IExecution execution)
{
if (stopLossOrder != null && stopLossOrder == execution.Order)
{
entryOrder = null;
stopLossOrder = null;
CancelOrder(profitTargetOrder);
profitTargetOrder = null;
entryOrderTime = null;
}
else if (profitTargetOrder != null && profitTargetOrder == execution.Order)
{
entryOrder = null;
CancelOrder(stopLossOrder);
stopLossOrder = null;
profitTargetOrder = null;
entryOrderTime = null;
}
}
Comment