0 beğenilme 0 beğenilmeme
435 kez görüntülendi
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?
Algoritmik Trading kategorisinde (81 puan) tarafından | 435 kez görüntülendi

1 cevap

1 beğenilme 0 beğenilmeme

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.

(8,035 puan) tarafından
7,637 soru
7,640 cevap
4,448 yorum
10,916 kullanıcı