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.

0

Tum hisseleri sat kodu

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

SendMarketOrder(Symbol, SellOrderQuantity, (OrderSide.Sell));

kodu sırasında SellOrderQuantity yi input olarak değil de "O sırada hesapta bulunan o symbol'e ait tüm hisseleri sat" şeklinde vermek istiyorum.

Nasıl yapabilirim?
Paylaş

1 Cevap

1

Merhaba, kurumlar portfoy bilgisini anlik olarak veremedikleri icin portfoy'de bulunan butun hisseleri sat islemini algo icerisinden yapamiyoruz.

Fakat bir hisse algo icerisinde kac kere alinmis bunu takip edip, sonra butun alinanlari tek seferde rahatlikla satabilirsiniz.

Bu manuel olarak da yapilabilir ornegin islem yapildikca OnOrderUpdate fonksiyonu ile pozisyonumuzu guncel olarak takip edebiliriz.

public override void OnOrderUpdate(IOrder order)
{
	//Gercek zamanli pozisyon takibi
	if (order.OrdStatus.Obj == OrdStatus.Filled && order.Side.Obj == Side.Buy)
	{
		var positionChange = order.OrderQty;
		realposition += (int) positionChange;
		Debug("[ONORDERUPDATE]: Pozisyon = " + realposition);
		if (realposition == 0)
		{
			SystemPosition = 0;
			Debug("Kar AL / Zarar Durdur tetiklendi");
		}
	}
	if (order.OrdStatus.Obj == OrdStatus.Filled && order.Side.Obj == Side.Sell)
	{
		var positionChange = order.OrderQty;
		realposition -= (int) positionChange;
		Debug("[ONORDERUPDATE]: Pozisyon = " + realposition);
		if (realposition == 0)
		{
			SystemPosition = 0;
			Debug("Kar AL / Zarar Durdur tetiklendi");
		}
	}
}

Ayrica GetPortfolio() fonksiyonu da algo icerisinde yapilan islemleri otomatik olarak tutmaktadir, bu fonksiyonu da kullanabiliriz:

---------------------------------GetPortfolio()---------------------------------
//Algo icerisinde net portfolio durumunu gosterir

IDictionary<string, decimal> portfolio = GetPortfolio();

var positionflag = portfolio.ContainsKey(Symbol) && portfolio[Symbol] != 0;
Debug("current position flag = " + positionflag);
var miktar = portfolio[Symbol];
Debug("miktar " + miktar);

//var manyshares = portfolio.Keys.Count(Symbol);

 

Calisan ornek strateji icin KADEMELI isimli stratejiye bakabilirsiniz.

BağlantıBayraklaMatt RicksMatriks Destek8.033

Cevabınız

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