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");
    }
}