SendReplaceOrder ile limit emri güncelliyorum. Debug ekranında da güncellediğimi görüyorum. Ancak backtestte, alım ve satım işlemini verilen ilk limit emir ile yapıyor. Emir güncellemelerini hiç dikkate almıyor.
string orderId_buy_1 = string.Empty;
string orderId_sell_2 = string.Empty;
public override void OnDataUpdate(BarDataEventArgs barData)
{
decimal buyPrice = Math.Round(bollinger.BollingerDown.CurrentValue, 2);
decimal sellPrice = Math.Round(bollinger.Bollingerup.CurrentValue, 2);
if (orderId_buy_1 != string.Empty)
{
SendReplaceOrder(orderId_buy_1, buyPrice, BuyOrderQuantity);
Debug("Alış emri güncellendi -> ID: " + orderId_buy_1);
}
if (orderId_sell_2 != string.Empty)
{
SendReplaceOrder(orderId_sell_2, sellPrice, SellOrderQuantity);
Debug("Satış emri güncellendi -> ID: " + orderId_sell_2);
}
if (orderId_buy_1 == string.Empty)
{
orderId_buy_1 = SendLimitOrder(Symbol, BuyOrderQuantity, (OrderSide.Buy), buyPrice, ChartIcon.Buy);
Debug("Alış emri gönderildi -> ID: " + orderId_buy_1);
}
if (orderId_sell_2 == string.Empty)
{
orderId_sell_2 = SendShortSaleLimitOrder(Symbol, SellOrderQuantity, sellPrice);
Debug("Satış emri gönderildi -> ID: " + orderId_sell_2);
}
}
public override void OnOrderUpdate(IOrder order)
{
if (order.OrdStatus.Obj == OrdStatus.Filled && order.CliOrdID == orderId_buy_1)
{
orderId_buy_1 = string.Empty;
Debug("alış emri gerçekleşti -> ID: " + orderId_buy_1);
}
if (order.OrdStatus.Obj == OrdStatus.Filled && order.CliOrdID == orderId_sell_2)
{
orderId_sell_2 = string.Empty;
Debug("satış emri gerçekleşti -> ID: " + orderId_sell_2);
}
}