Emir Fonksiyonları #

Strateji üzerinden Aracı Kurumların kabul ettiği hemen hemen tüm emir tipleriyle emir gönderilebilir.

Her emir tipi için farklı bir emir fonksiyonu bulunmaktadır. Aşağıdaki tablodan hangi fonksiyonun hangi emir tipinde emir gönderdiği görülebilir.

FonksiyonAçıklama
SendMarketOrderMarket(Piyasa) alım/satım emri göndermek için kullanılır
SendLimitOrderLimit alım/satım emri göndermek için kullanılır
SendPLMOrderPiyasadan Limite(PLM) alım/satım emri göndermek için kullanılır
SendLimitOrderGoodTillDateTarih süre tipli Limit alım/satım emri göndermek için kullanılır
SendShortSaleMarketOrderAçığa Satış Piyasa emri göndermek için kullanılır
SendMarketCloseShortOrderAçığa Satış Kapatma Piyasa emri göndermek için kullanılır
SendMarketShortSellOrderGün içerisinde kapanacak Açığa Satış Piyasa emri göndermek için kullanılır
SendShortSaleLimitOrderAçığa Satış Limit emri göndermek için kullanılır
SendLimitCloseShortOrderAçığa Satış Kapatma Limit emri göndermek için kullanılır
SendPLMCloseShortOrderAçığa Satış Kapatma Piyasadan Limite(PLM) emri göndermek için kullanılır
SendShortSalePLMOrderAçığa Satış Piyasadan Limite(PLM) emri göndermek için kullanılır
SendViopStopLimitOrderViop Limit fiyatlı Şartlı Emir göndermek için kullanılır
SendViopStopPLMOrderViop Piyasadan Limite(PLM) Şartlı Emir göndermek için kullanılır
SendOrderStratejiden kişiselleştirilmiş emir göndermek için kullanılır. Tüm parametreleri istenilen emir tipine uygun şekilde doldurulmalıdır.
Emir Fonksiyonları
SendBinanceOcoOrderBinance Spot Piyasada One Cancels The Other (OCO) emri göndermek için kullanılır
SendBinancePostOnlyOrderBinance Piyasasında Limit Maker(Post Only) emri göndermek için kullanılır
SendBinanceStopLimitOrderBinance Piyasasında Stop Loss Limit emri göndermek için kullanılır
SendBinanceStopMarketOrderBinance Futures Piyasasında Stop Loss Market emri göndermek için kullanılır
SendBinanceTakeProfitLimitOrderBinance Piyasasında Take Profit Limit emri göndermek için kullanılır
SendBinanceTakeProfitMarketOrderBinance Futures Piyasasında Take Profit Market emri göndermek için kullanılır
SendBinanceTpSlLimitOrderBinance Futures Piyasasında Take Profit Limit veya Stop Loss Limit emirlerinden girilen değerlere bakarak uygun olan emri göndermek için kullanılır
SendBinanceTpSlMarketOrderBinance Futures Piyasasında Take Profit Market veya Stop Loss Market emirlerinden girilen değerlere bakarak uygun olan emri göndermek için kullanılır
SendBinanceTrailingStopOrderBinance Futures Piyasasında Trailing Stop Order(TSO) emri göndermek için kullanılır
Binance Piyasasına Ait Emir Fonksiyonları

SendMarketOrder #

Market(Piyasa) alım/satım emri göndermek için kullanılır. Market emri kabul edilen tüm piyasalarda kullanılabilir.

Ek Notlar #

VİOP’da (Vadeli İşlem ve Opsiyon Piyasası) piyasa emri gönderilemediği için bu emir fonksiyonuyla gönderilen emirler Alış Yönlüyse Tavan Fiyattan, Satış Yönlüyse Taban Fiyattan limit emir olarak kurumlara iletilecektir.

Yazım #

public string SendMarketOrder(string Symbol, decimal quantity, OrderSide orderSide, TimeInForce timeInForce, [ChartIcon chartIcon], [bool? includeAfterSession], [bool isReduceOnly], [bool sendsPushNotifications],[string pushNotificationGroupName, [MobileNotificationActionType actionType]);
public string SendMarketOrder(string Symbol, decimal quantity, OrderSide orderSide, [ChartIcon chartIcon], [bool? includeAfterSession], [bool isReduceOnly], [bool sendsPushNotifications],[string pushNotificationGroupName, [MobileNotificationActionType actionType]);
     

Parametreler #

Parametre AdıGereklilikAçıklamaTip
SymbolEEmir gönderilmek istenen sembol tanımıstring
quantityEEmir adedidecimal
orderSideEEmrin yönünün atandığı alan(Buy/Sell)OrderSide
timeInForceE/HEmir belirli bir geçerlilik süresiyle gönderilmek istenildiğinde doldurulması gereken parametredir.TimeInForce
chartIconHGrafik üzerinde emrin etiketini belirleyen parametredir.ChartIcon
includeAfterSessionHViop sembolleri için akşam seansına emir gönderimini sağlayan parametre. True geçilirse akşam seansına emir gönderilebilir.bool
isReduceOnlyHBinance Spot Piyasa için geçerli sadece pozisyon azaltmak istenildiğinde kullanılan parametre. True geçildiği takdirde aktif hale gelir.bool
sendsPushNotificationsHMobil IQ’ya push bildirim göndermek istenildiğinde True geçilmesi gereken parametredir.bool
pushNotificationGroupNameHBildirim grubu tanımıstring
actionTypeHMobil IQ’da bildirime tıklanınca alınacak aksiyonu belirleyen parametredir.MobileNotificationActionType

Örnek #

Hazır stratejilerde bulunan BasitRSI_SMA stratejisinden alınan kod parçası

if (rsi.CurrentValue < 10 && barData.BarData.Close > sma200.CurrentValue)
{
    SendMarketOrder(Symbol, BuyOrderQuantity, OrderSide.Buy);
    Debug("Alış Emri Gönderildi");
}

if (barData.BarData.Close > sma10.CurrentValue)
{
    SendMarketOrder(Symbol, SellOrderQuantity, OrderSide.Sell);
    Debug("Satış Emri Gönderildi");
}

SendLimitOrder #

Limit alım/satım emri göndermek için kullanılır. Limit emir kabul edilen tüm piyasalarda kullanılabilir.

Yazım #

public string SendLimitOrder(string Symbol, decimal quantity, OrderSide orderSide, decimal price, TimeInForce timeInForce, [ChartIcon chartIcon], [bool? includeAfterSession], [bool isReduceOnly], [bool sendsPushNotifications],[string pushNotificationGroupName, [MobileNotificationActionType actionType]);
public string SendLimitOrder(string Symbol, decimal quantity, OrderSide orderSide, decimal price, [ChartIcon chartIcon], [bool? includeAfterSession], [bool isReduceOnly], [bool sendsPushNotifications],[string pushNotificationGroupName, [MobileNotificationActionType actionType]);
     

Parametreler #

Parametre AdıGereklilikAçıklamaTip
SymbolEEmir gönderilmek istenen sembol tanımıstring
quantityEEmir adedidecimal
orderSideEEmrin yönünün atandığı alan(Buy/Sell)OrderSide
priceEEmir fiyatıdecimal
timeInForceE/HEmir belirli bir geçerlilik süresiyle gönderilmek istenildiğinde doldurulması gereken parametredir.TimeInForce
chartIconHGrafik üzerinde emrin etiketini belirleyen parametredir.ChartIcon
includeAfterSessionHViop sembolleri için akşam seansına emir gönderimini sağlayan parametre. True geçilirse akşam seansına emir gönderilebilir.bool
isReduceOnlyHBinance Spot Piyasa için geçerli sadece pozisyon azaltmak istenildiğinde kullanılan parametre. True geçildiği takdirde aktif hale gelir.bool
sendsPushNotificationsHMobil IQ’ya push bildirim göndermek istenildiğinde True geçilmesi gereken parametredir.bool
pushNotificationGroupNameHBildirim grubu tanımıstring
actionTypeHMobil IQ’da bildirime tıklanınca alınacak aksiyonu belirleyen parametredir.MobileNotificationActionType

Örnek #

Koşullar sağlandığında 1 Adet Alış veya Satış emrini viop sembolleri için akşam seansı da dahil şekilde emir gönderen örnek:

public override void OnDataUpdate(BarDataCurrentValues barDataCurrentValues)
{
    if (CrossAbove(mov, mov2))
    {
        SendLimitOrder(Symbol, 1, OrderSide.Buy, 55.25m, includeAfterSession : true);
        Debug("Alış Emri Gönderildi");
    }

    if (CrossBelow(mov, mov2))
    {
        SendLimitOrder(Symbol, 1, OrderSide.Sell, 55.25m, includeAfterSession : true);
        Debug("Satış Emri Gönderildi");
    }
}

SendPLMOrder #

Piyasadan Limite(PLM) alım/satım emri göndermek için kullanılır.

Yazım #

public string SendPLMOrder(string Symbol, decimal quantity, OrderSide orderSide, [ChartIcon chartIcon], [bool? includeAfterSession], [bool isReduceOnly], [bool sendsPushNotifications],[string pushNotificationGroupName, [MobileNotificationActionType actionType]);

Parametreler #

Parametre AdıGereklilikAçıklamaTip
SymbolEEmir gönderilmek istenen sembol tanımıstring
quantityEEmir adedidecimal
orderSideEEmrin yönünün atandığı alan(Buy/Sell)OrderSide
chartIconHGrafik üzerinde emrin etiketini belirleyen parametredir.ChartIcon
includeAfterSessionHViop sembolleri için akşam seansına emir gönderimini sağlayan parametre. True geçilirse akşam seansına emir gönderilebilir.bool
isReduceOnlyHBinance Spot Piyasa için geçerli sadece pozisyon azaltmak istenildiğinde kullanılan parametre. True geçildiği takdirde aktif hale gelir.bool
sendsPushNotificationsHMobil IQ’ya push bildirim göndermek istenildiğinde True geçilmesi gereken parametredir.bool
pushNotificationGroupNameHBildirim grubu tanımıstring
actionTypeHMobil IQ’da bildirime tıklanınca alınacak aksiyonu belirleyen parametredir.MobileNotificationActionType

Örnek #

if (rsi.CurrentValue < 10 && barData.BarData.Close > sma200.CurrentValue)
{
    SendPLMOrder(Symbol, BuyOrderQuantity, OrderSide.Buy);
    Debug("Alış Emri Gönderildi");
}

if (barData.BarData.Close > sma10.CurrentValue)
{
    SendPLMOrder(Symbol, SellOrderQuantity, OrderSide.Sell);
    Debug("Satış Emri Gönderildi");
}

SendLimitOrderGoodTillDate #

Tarih süre tipli Limit alım/satım emri göndermek için kullanılır

Yazım #

public string SendLimitOrderGoodTillDate(string Symbol, decimal quantity, OrderSide orderSide, decimal price, DateTime expireDate, [ChartIcon chartIcon], [bool? includeAfterSession], [bool isReduceOnly], [bool sendsPushNotifications],[string pushNotificationGroupName, [MobileNotificationActionType actionType]);

Parametreler #

Parametre AdıGereklilikAçıklamaTip
SymbolEEmir gönderilmek istenen sembol tanımıstring
quantityEEmir adedidecimal
orderSideEEmrin yönünün atandığı alan(Buy/Sell)OrderSide
priceEEmir fiyatıdecimal
expireDateEEmrin tahtada bekleyeceği süreyi belirleyen parametredir. Belirtilen tarih içerisinde gerçekleşmeyen emirler iptal olur.DateTime
chartIconHGrafik üzerinde emrin etiketini belirleyen parametredir.ChartIcon
includeAfterSessionHViop sembolleri için akşam seansına emir gönderimini sağlayan parametre. True geçilirse akşam seansına emir gönderilebilir.bool
isReduceOnlyHBinance Spot Piyasa için geçerli sadece pozisyon azaltmak istenildiğinde kullanılan parametre. True geçildiği takdirde aktif hale gelir.bool
sendsPushNotificationsHMobil IQ’ya push bildirim göndermek istenildiğinde True geçilmesi gereken parametredir.bool
pushNotificationGroupNameHBildirim grubu tanımıstring
actionTypeHMobil IQ’da bildirime tıklanınca alınacak aksiyonu belirleyen parametredir.MobileNotificationActionType

Örnek #

DateTime türünde tarih oluşturularak Tarihli gönderilen emir:

public override void OnDataUpdate(BarDataCurrentValues barDataCurrentValues)
{
    if (CrossAbove(mov, mov2))
    {
        SendLimitOrderGoodTillDate(Symbol, 1, OrderSide.Buy, 100, new DateTime(2024, 06, 10));
        Debug("Alış Emri Gönderildi");
    }

    if (CrossBelow(mov, mov2))
    {
        SendLimitOrderGoodTillDate(Symbol, 1, OrderSide.Sell, 100, new DateTime(2024, 06, 10));
        Debug("Satış Emri Gönderildi");
    }
}

SendShortSaleMarketOrder #

Borsa İstanbul Pay Piyasasında açığa satış emirleri için kullanılan emir fonksiyonudur.

Yazım #

public string SendShortSaleMarketOrder(string Symbol, decimal quantity, TimeInForce timeInForce, [bool sendsPushNotifications],[string pushNotificationGroupName, [MobileNotificationActionType actionType]);
public string SendShortSaleMarketOrder(string Symbol, decimal quantity, [bool sendsPushNotifications],[string pushNotificationGroupName, [MobileNotificationActionType actionType]);

Parametreler #

Parametre AdıGereklilikAçıklamaTip
SymbolEEmir gönderilmek istenen sembol tanımıstring
quantityEEmir adedidecimal
timeInForceE/HEmir belirli bir geçerlilik süresiyle gönderilmek istenildiğinde doldurulması gereken parametredir.TimeInForce
sendsPushNotificationsHMobil IQ’ya push bildirim göndermek istenildiğinde True geçilmesi gereken parametredir.bool
pushNotificationGroupNameHBildirim grubu tanımıstring
actionTypeHMobil IQ’da bildirime tıklanınca alınacak aksiyonu belirleyen parametredir.MobileNotificationActionType

Örnek #

Hazır stratejilerde bulunan ACCBandsIndikator stratejisinden alınan kod parçası

public override void OnDataUpdate(BarDataEventArgs barData)
{
    var barDataModel = GetBarData();
    var close = barDataModel.Close[barData.BarDataIndex];

    //Aciga Satis olmayan versiyon
    if (CrossAbove(barDataModel, accBands.Upper, OHLCType.Close))
    {
        SendMarketOrder(Symbol, OrderQuantity, (OrderSide.Buy));
        Debug("Alış emri verildi.");
    }
    if (CrossBelow(barDataModel, accBands.Upper, OHLCType.Close))
    {
        SendMarketOrder(Symbol, OrderQuantity, (OrderSide.Sell));
        Debug("Satış emri verildi.");
    }

    //Aciga Satis
    if (CrossBelow(barDataModel, accBands.Lower, OHLCType.Close) && AcigaSatis==true)
    {
        SendShortSaleMarketOrder(Symbol, OrderQuantity);
        Debug("Satış emri verildi.");
    }
    if (CrossAbove(barDataModel, accBands.Lower, OHLCType.Close) && AcigaSatis==true)
    {
        SendMarketOrder(Symbol, OrderQuantity, (OrderSide.Buy));
        Debug("Alış emri verildi.");
    }
}