MatriksIQ Destek
Matriks Destek
Matriks Web Destek
Matriks Mobile Destek
3 beğenilme 0 beğenilmeme
156 kez görüntülendi
Merhabalar,

Portföy penceresinde bulunan bilgileri, işlem limiti, kontrat tipi sayısı, maliyeti, bekleyen emirler vb. bilgileri strateji editörüne nasıl alabilirim?

*Not: Soru sorarken, Kategori kısmı default değerler ile geldiği için orayı işaretlemek gözden kaçıyor sanırım, Seçiniz olsa ve seçiniz dışında bir şey seçmeyi şart koşsa bu sorun çözülebilir sanırım.

Teşekkürler,
Algoritmik Trading kategorisinde (125 puan) tarafından | 156 kez görüntülendi

1 cevap

6 beğenilme 0 beğenilmeme
En İyi Cevap

Asagidaki fonksiyonlar ile yanlarindaki aciklamalarda belirtilen degerlere ulasabilirsiniz. 

var overall = GetOverall();      //Islem limiti
var para1 = BistOverall;         //Hesaptaki toplam para(hesap Overall)

var para = BistAvailableMargin;  //Margin trading hesabi varsa

Ayrica TradeUser.Accounts.FirstOrDefault() tanimlamasi ile asagidaki bilgilere ulasabilirsiniz

string Currency;         //para birimi
decimal Balance;         //hesaptaki toplam para
decimal Overall;         //Islem limit
decimal ProfitLoss;      //Kar/Zarar
decimal AvailableMargin; //Kullanilabilir margin
decimal MarginCallLevel; //Hesabin margin call alacagi seviye
decimal AutoStopLevel;   //Otomatik durdurma seviyesi

Ornek:

var traderUser = GetTradeUser();
var account = tradeUser.Accounts.FirstOrDefault();
var overall = account.Overall;
var PnL = account.ProfitLoss;

 

(2,105 puan) tarafından
tarafından seçilmiş
0 0

Teşekkür ederim, Çalıştır ile hemen detayları vermeye başladı yes

Bulunan pozisyonlar, pozisyon adetleri, tipi (kısa/uzun), maliyeti, verilen emirlerin durumu vb. tüm bilgileri almak için  TradeUser.Accounts.FirstOrDefault() içerisindeki diğer detaylar nelerdir? Ayrıca first or default yerine belirli bir hesap bilgisi ile ilgili bilgileri almayı nasıl sağlayabilirim? 

Teşekkürler.

0 0
Eğer direk IQ içinde bir dosya/kütüphane vs. varsa o bilgilere ulaşabileceğim  yerini söylerseniz oradan bakıp gereken bilgilere oradan alabilirim.
1 0

Kullanabilecegimiz sadece bu yukarida yazdiklarim var. Digerlerini strateji icerisinden takip edebilirsiniz, ya da pozisyonlari stratejiye girebilirsiniz.

Strateji icerisindeki hareketleri takip etmek icin GetPortfolio() fonksiyonunu, ayrica butun stratejiler icerisinde bulunan OnOrderUpdate fonksiyonunu kullanabilirsiniz.

OnOrderUpdate ile pozisyon takibi ornek:

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

GetPortfolio kullanimi icin: 

IDictionary<string, decimal> portfolio = GetPortfolio();
var positionflag = portfolio.ContainsKey(Symbol) && portfolio[Symbol] != 0;
if (positionflag)	stock = portfolio[Symbol];

Ayrica Hazir stratejileri icerisindeki ZamanliStrateji'ye bakabilirsiniz.

166 soru
181 cevap
193 yorum
130 kullanıcı