Yeah i tried that also but no luck.
My SL order gets created but for some reason those print statements dont print.
if (order.OrderState == OrderState.Filled)
{
if (order.Name.Contains("Long"))
{
exitOrder = ExitLongLimit(0, true, order.Quantity, averageFillPrice + takeProfit, "Long TP", "Long Level");
stopOrder = ExitLongStopMarket(0, true, order.Quantity, averageFillPrice - stopLoss, "Long SL", "Long Level");
Print($"ExitOrderLong in onOrderUPdate: {exitOrder}");
Print($"StoporderLong in onOrderUPdate: {stopOrder}");
}
else
{
exitOrder = ExitShortLimit(0, true, order.Quantity, averageFillPrice - takeProfit, "Short TP", "Short Level");
stopOrder = ExitShortStopMarket(0, true, order.Quantity, averageFillPrice + stopLoss, "Short SL", "Short Level");
Print($"ExitOrderShort in onOrderUPdate: {exitOrder}");
Print($"StoporderShort in onOrderUPdate: {stopOrder}");
}
And stopOrder is returning Null here, so that seems to be the main problem but not sure why…
if (Position.MarketPosition == MarketPosition.Long && currentPrice >= beTriggerPrice)
{
double newStopPrice = averagePrice + BreakEvenOffsetTicks * TickSize;
if (stopOrder != null && stopOrder.OrderState == OrderState.Working)
{
ChangeOrder(stopOrder, Position.Quantity, 0, newStopPrice);
_stopMovedToBE = true;
}
else
{
Print($"Failed to change order: stopOrder is null or not working. StopOrder: {stopOrder}");
}
}