Matriks Destek ve Yardım Platformu

Matriks Ürünleri ile ilgili tüm sorularınız için bizlere buradan ulaşabilirsiniz. Daha önce sorulan soruları ve verilen cevapları ilgili sekmelerden ve arama üzerinden inceleyebilirsiniz. Sağ taraftaki kategoriler üzerinden İlgilendiğiniz özelliklerle ilgili soruları filtreleyebilirsiniz. Soru ve cevapları sosyal medyada paylaşabilirsiniz. Sorduğunuz ve cevapladığınız soruların ve yorumlarınızın aldığı oylar üzerinden puan kazanırsınız. Puan sistemine bağlı kampanyamızla ücretsiz kullanım avantajlarından faydalanabilirsiniz.

1

Short pozisyon kapatma problemi

Soruldu
Görüntülenme
823 görüntülenme
Durum
Cevaplandı
Merhaba

aşağıdaki algoritma ile  portföyümde bulunan toplam long pozisyonu kapatabiliyorum fakat short  pozisyonu kapatamıyorum pörtföyümde 5 adet short varken algoritma pozisyon kapatmak için  al emrinin başına eksi işareti koyarak  (  -5  ) adet  al emri veriyor  buda iptal edilen işlemlere düşüyor ve emir gerçekleşmiyor bu hatayı nasıl çözebiliriz.

 

 

/// <summary>

/// Strateji çalıştığında ve portföyde değişiklik olduğunda tetikelenir.

/// </summary>

/// <param name="position">Portföydeki hisselere ait değerleri bulundurur</param>

public override void OnRealPositionUpdate(AlgoTraderPosition position)

{

sembol = Symbol;

 

//Binance portföylerinde sembol isimleri BTC - ETH gibi olduğu için aşağıdaki kontrolü yapmalıyız.

if (KriptoMu && Symbol.Split('_')[2].Contains("BIN")) sembol = Symbol.Split('_')[0];

 

//Portföyde istenilen sembolün olup olmadığını kontrolü sağlanıyor.

if (position.Symbol.Equals(sembol))

{

if (KriptoMu) Kripto_kontrol = true;

var P = position;

 

//Alttaki string formatları portföyden alabileceğiniz verileri kapsamaktadır.

string Portfoy = String.Format("|{0,-10}|{1,-13}|{2,-10}|{3,-10}|{4,-10}|{5,-10}|{6,-10}|{7,-10}|{8,-10}|{9,-13}|",

"Hesap", "Sembol", "Birim", "Adet T", "Adet T1", "Adet T2", "Adet T3", "Tutar", "Sat. Adet", "Ort. Maliyet");

 

string FormatPortfoy = String.Format("|{0,-10}|{1,-13}|{2,-10}|{3,-10}|{4,-10}|{5,-10}|{6,-10}|{7,-10}|{8,-10}|{9,-13}|\n",

P.AccountId, P.Symbol, P.Currency, P.QtyT, P.QtyT1, P.QtyT2, P.QtyT3, P.Amount, P.QtyAvailable, P.AvgCost);

 

Debug(Portfoy);

Debug(FormatPortfoy);

}

}

}

}
Paylaş

1 Cevap

0
Merhaba GetRealPositions() kullanarak bu sorunu çözebiliriz

 

var pozisyon = GetRealPositions();

var satılabilirAdet = pozisyon[Symbol].QtyAvailable;

 

kısmını kopyaladıktan sonra " satılabilirAdet " değişkenini emir adeti olarak kullanabilirsiniz

" pozisyon[Symbol] " kısmındaki >Symbol< ün emir göndereceğiniz sembolle aynı parametre adını taşımasına dikkat ediniz

İyi çalışmalar.

Cevabınız

Cevap yazmak için giriş yapın.Giriş yapKayıt ol