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

Matriks IQ strateji sorusu

Soruldu
Görüntülenme
1.438 görüntülenme
Durum
Cevaplandı
Merhabalar ,sormak istediğim soru ,Matriks IQ strateji oluştururken mevcut bakiyenin belli bir yüzde azalması sonucu stratejiyi durdurma gibi bir komut nasıl yazılabilir acaba yardımcı olabilir misiniz ?

Mesela, bakiye yapılan işlemler sonucunda %10 aşağıya geldiğinde sistem emirleri durdursun ve açık pozisyonları kapatsın. Tekrar stratejiyi başlatana kadar emir iletimi yapmasın .

Böyle bir ihtiyacı karşılayacak kod-komut yazılabilir mi acaba ?

Saygılarımla,
Paylaş

2 Cevap

3

Merhaba, portfolio'yu strateji icerisinden canli olarak takip etmek saglikli olmayacagindan simdilik bunu tavsiye etmiyoruz. Kurumlardan bize sunulan baglanti yavas ve minimum dakikada bir update edebiliyoruz. Bu sizin icin sorun teskil etmiyorsa Bakiyenizi asagidaki sekilde takip edebilirsiniz.

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

var para = BistAvailableMargin;  //Margin trading hesabi varsa

Bahsettiginiz takibi en saglikli ve guvenilir olarak strateji icerisinden yapabilirsiniz, ornegin baslangic bakiyesi manuel olarak belirleyip sonra stratejinizde yaptiginiz islemleri canli takip edebilir, bu sekilde de baslangic bakiyenizi strateji icerisinde guncelleyerek canli takip edebilirsiniz.

Islemleri canli takip edebilmek icin OnDataupdate fonksiyonu icerisinde (ya da orn. OnTimer) asagidaki kodu kullanabilirsiniz. inAlgoQuantity, strateji calismaya basladigindan itibaren portolio'da belirtilen sembolden net kac adet oldugunu takip edecektir.

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

if (positionflag)
{
	inAlgoQuantity = portfolio[Symbol];
}

Asagidaki kod ile ise gercek zamanli emir/pozisyon takibi yapabilirsiniz

		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 (order.OrdStatus.Obj == OrdStatus.Filled && order.Side.Obj == Side.Sell)
			{
				var positionChange = order.OrderQty;
				realposition -= (int) positionChange;
				Debug("[ONORDERUPDATE]: Pozisyon = " + realposition);
			}
		}

Sadece Son yazdigim kod kullanilarak bahsettiginiz takibi emirlerin gerceklesme fiyatlarindan toplam kar/zararinizi hesaplayip %10 dusus varsa stratejiyi durduracak bir flag olusturabilirsiniz. Yazdiklarima bir bakin daha fazla yardima ihtiyaciniz olursa tekrar yazabilirsiniz.

BağlantıBayrakladüzenlendi · Matt RicksMatt RicksMatriks Destek8.033

Yorumlar (1)

Cevabınız

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