Merhaba,
Binance üzerinde, Alim yönlü bir emri su sekilde ilettikten sonra, OrderFilled oldugunda hem TP hem de SL emirlerini ayni anda gonderebilecegim bir yapi var mi?
SendMarketOrder(Symbol1, 1000, OrderSide.Buy);
Mesela asagidaki gibi denedigimde sadece ilk satirdaki SendBinanceStopLimitOrder binance e iletiliyor. Digeri iletilemiyor.
Amacim ise ticker time dan bagimsiz pozisyonu actigim anda binance tarafinda hem TP hem SL olarak tutulmasini istiyorum.
if (order.OrdStatus.Obj == OrdStatus.Filled && order.Side.Obj == Side.Buy)
{
alis_fiyati = order.AvgPx;
Debug("aliş fiyati: " + alis_fiyati);
Debug("stop loss fiyati: " + (alis_fiyati -0.00002m));
Debug("TP fiyati: " + (alis_fiyati + 0.00002m));
SendBinanceStopLimitOrder(Symbol1, 1000, OrderSide.Sell, alis_fiyati -0.00002m, alis_fiyati -0.00001m);
SendBinanceTakeProfitLimitOrder(Symbol1, 1000, OrderSide.Sell, alis_fiyati + 0.00002m, alis_fiyati + 0.00001m);
}


hocam şu şekilde çözdüm;
public override void OnOrderUpdate(IOrder order) { if (order.OrdStatus.Obj == OrdStatus.Rejected) { if (order.Side.Obj == Side.Buy) { LastOrderSide.Obj = Side.Sell; } else { LastOrderSide.Obj = Side.Buy; } } decimal al, sat, stop; if (Orders.ContainsKey(order_id_buy) && order.OrdStatus.Obj == OrdStatus.Filled && order.Side.Obj == Side.Buy) { alis_fiyati = order.AvgPx; is_TP_SL_active = true; al = Math.Round(alis_fiyati, 3); sat = Math.Round(al * 1.002m, 3); stop = Math.Round(al * 0.998m, 3); Debug("aliş fiyati: " + al); Debug("TP fiyati: " + sat); order_id_tp = SendBinanceTakeProfitMarketOrder(order.Symbol, 6, OrderSide.Sell, sat); //order_id_buy = string.Empty; Debug("tp order id: " + order_id_tp); LastOrderSide.Obj = Side.Buy; order_id_SL = SendBinanceStopMarketOrder(order.Symbol, 6, OrderSide.Sell, stop); LastOrderSide.Obj = Side.Buy; } if (order.CliOrdID == order_id_SL && order.OrdStatus.Obj == OrdStatus.Canceled && order.Side.Obj == Side.Sell && is_TP_SL_active) { Debug("STOP oldu"); is_TP_SL_active = false; SendCancelOrder(order_id_tp); LastOrderSide.Obj = Side.Sell; } // Orders.ContainsKey(order_id_tp) if (order.CliOrdID == order_id_tp && order.OrdStatus.Obj == OrdStatus.Canceled && order.Side.Obj == Side.Sell && is_TP_SL_active) { Debug("tp alindi!"); is_TP_SL_active = false; SendCancelOrder(order_id_SL); LastOrderSide.Obj = Side.Sell; } }