0 beğenilme 0 beğenilmeme
508 kez görüntülendi

 

Merhaba , 

*OnInit Complated() mı doğru OnInit Completed() mı?

*OnInitComplated() yapısı içierisine StopLoss fonksiyonunu yazabiliyor muyuz? GetRealPosition() ile çektiğimiz portföy bilgilerine göre Stop olmasını sağlayabilir miyiz? Aşağıdaki gibi?

public override void OnInitComplated()
		{
			var pozisyon = GetRealPositions();
			if (pozisyon.ContainsKey(Symbol))
			{
				var Maliyet = pozisyon[Symbol].AvgCost;
				var Quantity = pozisyon[Symbol].QtyAvailable;

				Debug("Maliyet	: " + Maliyet);
				Debug("Başlangıç Miktarı	: " + Quantity);
				
				StopLoss(Symbol, SyntheticOrderPriceType.Percent, ZararDurdur);

 

Algoritmik Trading kategorisinde (72 puan) tarafından | 508 kez görüntülendi
0 0

OnInitComplated() yapısı içerisinde Aşağıdaki gibi LastOrderSide kontrolü yapabiliyor muyuz?

var pozisyon = GetRealPositions();

				if (pozisyon.ContainsKey(Symbol))
				{
					var satılabilirAdet = pozisyon[Symbol].QtyAvailable;
					var ortMaliyet = pozisyon[Symbol].AvgCost;
					var yon = pozisyon[Symbol].Side;
					if (yon.Obj == Side.Buy)
					{
						
                        LastOrderSide.Obj = Side.Buy;
                        Debug("Long pozisyondasınız")

					}else
					{
                        LastOrderSideForShort.Obj = Side.Sell;
						Debug("Short pozisyondasınız");
					}

Ayrıca mevcutta, kullanılan sembol portföyde var ise başlangıç miktarını doğru çekiyor. Ancak işlemden sonra sanki başlangıçta 0(sıfır)mış gibi rapor ile aynı ilerliyor. aşağıdaki örnekteki gibi 45 sözleşme var satış yapıyor 0(sıfır) olması gerekirken tekrar 45 sözleşme görünüyor ve StopLoss şartı gerçekleşiyor ve tekrar Long pozisyona geçiyor. Halbuki elde 0(sıfır) olduğundan StopLoss ile ilgisinin olmaması lazım.

02.07.2023 21:39:37.180  :Maliyet : 7.12

02.07.2023 21:39:37.182  :Başlangıç Miktarı : 45.0

05.07.2023 13:00:03.015  :Satış emri gönderildi.[ 45 adet ]

05.07.2023 13:00:04.589  : Emir Gerçekleşti.

05.07.2023 13:00:04.589  :İşlem yapılabilir miktar : 45.0

05.07.2023 13:00:15.398  :Sentetik emir tetiklendi

05.07.2023 13:00:16.664  : Emir Gerçekleşti.

05.07.2023 13:00:16.665  :İşlem yapılabilir miktar : 0

Bir diğer konu ise gözlemime göre OnInitComplated() içinde StopLoss fonksiyonu koyunca stratejinin başlatıldığı bardaki değeri maliyet gibi alıyor ve ona göre işlem yapıyor. Gerçek maliyeti tanıtma şansımız var mı?

1 cevap

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

Merhaba,

*OnInit Complated() mı doğru OnInit Completed() mı?

ikisi de doğru ikisi de aynı amaca hizmet etmektedir.

*OnInitComplated() yapısı içierisine StopLoss fonksiyonunu yazabiliyor muyuz? GetRealPosition() ile çektiğimiz portföy bilgilerine göre Stop olmasını sağlayabilir miyiz? Aşağıdaki gibi?

Evet yazılabilir sentetik emirler tanımlandığı andaki fiyatı referans alıp stratejide pozisyon oluştuğunda aktif olmaktadır.

örnek vermek gerekirse elinizde pozisyon yok ve sentetik emir tanımadınız o anki fiyat 10TL olsun 30dak sonra pozisyon oluştuğunda o anki fiyat 9TL bile olsa 10TL'yi referans alır.

(15,892 puan) tarafından
tarafından seçilmiş
0 0

Ve bir de şunu cevaplayabilirseniz  OnInitComplated içinde LastOrderSide kontrolü yaptırtabiliyor muyuz?

public override void OnInitComplated()
		{
			var poz = GetRealPositions();
			if (poz.ContainsKey(Symbol))
			{
				var Maliyet = poz[Symbol].AvgCost;
				var yon = poz[Symbol].Side;
					if (yon.Obj == Side.Buy)
					{
						Debug("Long pozisyondasınız");
						LastOrderSide.Obj = Side.Buy
						
					}
					if (yon.Obj == Side.Sell)
					{
						Debug("Short pozisyondasınız");
						LastOrderSideForShort.Obj= Side.Sell
						
					}
			}
		}

 

Hoş geldiniz, Matriks Destek Platformu sizlere sorularınızın hızlıca cevaplanması için bir ortam sağlar. 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.



8,635 soru
8,589 cevap
4,821 yorum
19,782 kullanıcı