Emir Düzeltme #
Strateji içerisinde gönderilmiş ve henüz gerçekleşmemiş düzeltmeye uygun emirleri yine aynı strateji içerisinde Adedini veya Fiyatını güncelleyebilirsiniz.
Aşırı Yüklemeler #
public void SendReplaceOrder(string clOrdId, decimal price)
: Sadece emir fiyatı güncellenmek isteniyorsa kullanılır.
public void SendReplaceOrder(string clOrdId, decimal price, decimal quantity)
: Emrin hem fiyatı hem de adedi güncellenmek isteniyorsa kullanılır.
public void SendReplaceOrderQuantity(string clOrdId, decimal quantity)
: Sadece emir adedi güncellenmek isteniyorsa kullanılır.
Ek Notlar #
Fonksiyon parametrelerinden görülebileceği üzere düzeltilmek istenen emrin clOrdId‘sinin bilinmesi gerekli. Bu veri her emir gönderiminde emir fonksiyonundan oluşur. Her emir için ayrı bir değer oluşacağı için düzeltilmek istenen emrin verisi bir yerde saklanması gerekebilir.
Parametreler #
clOrdId string
Düzeltilmesi istenen emrin clOrdId değeri. Emir fonksiyonun veya OnOrderUpdate içerisinde emir verileri okunarak alınabilir.
price decimal
Emir fiyatının güncelleneceği değer
quantity decimal
Emir adedinin güncelleneceği değer
Örnek #
string _cliOrdId = ""; public override void OnDataUpdate(BarDataCurrentValues barDataCurrentValues) { if (CrossAbove(mov, mov2)) { _cliOrdId = SendLimitOrder(Symbol, BuyOrderQuantity, OrderSide.Buy, 75.5m); Debug("Alış Emri Gönderildi"); } if (CrossBelow(mov, mov2)) { _cliOrdId = SendLimitOrder(Symbol, SellOrderQuantity, OrderSide.Sell, 85.5m); Debug("Satış Emri Gönderildi"); } if (barDataCurrentValues.LastUpdate.Close > 80 && LastOrderSide.Obj == Side.Buy) { SendReplaceOrder(_cliOrdId, 79.5m); Debug("Alış emrinin fiyatı güncellendi"); } if (barDataCurrentValues.LastUpdate.Close < 75 && LastOrderSide.Obj == Side.Sell) { SendReplaceOrder(_cliOrdId, 76.5m); Debug("Satış emrinin fiyatı güncellendi"); } }