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

Aşağıdaki koda

 

// Gerekli başla - Açığa satış
		[Parameter(true)]
		public bool AcigaSatisYapilsin;

		[Parameter(false)]
		public bool AksamSeansiniDahilEt;

		[Parameter(Side.All)]
		public Side HangiIslemleBaslasin;

		public bool FX_Alis(string sembol, decimal quantity)
		{
			bool sonuc = false;
			if (LastOrderSide.Obj != Side.Buy)
			{
				var _quantity = (LastOrderSide.Obj == Side.All || !AcigaSatisYapilsin) ? quantity:(LastOrderSideForShort.Obj == Side.All) ? quantity:quantity * 2;

				SendMarketOrder(sembol, _quantity, OrderSide.Buy, includeAfterSession:AksamSeansiniDahilEt);
				Debug("Alış emri gönderildi.[ " + _quantity + " adet ]");
				LastOrderSideForShort = LastOrderSide;
				sonuc = true;
			}
			return sonuc;
		}

		public bool FX_Satis(string sembol, decimal quantity)
		{
			bool sonuc = false;
			if (LastOrderSide.Obj != Side.Sell)
			{
				var _quantity = (LastOrderSide.Obj == Side.All || !AcigaSatisYapilsin) ? quantity:(LastOrderSideForShort.Obj == Side.All) ? quantity:quantity * 2;

				SendMarketOrder(sembol, _quantity, OrderSide.Sell, includeAfterSession:AksamSeansiniDahilEt);
				Debug("Satış emri gönderildi.[ " + _quantity + " adet ]");
				LastOrderSideForShort = LastOrderSide;
				sonuc = true;
			}
			return sonuc;
		}

		public override void OnSyntheticOrderTriggered(SyntheticAlgoOrder sOrder)
		{
			if (sOrder.EnableOrderSending)
			{
				Debug("Sentetik emir tetiklendi");

				if (AcigaSatisYapilsin)
					LastOrderSide.Obj = Side.All;
			}
		}
		// #Gerekli bitti - Açığa satış

 

aşağıdaki şekilde bir blok ekledim ama işe yaramadı. Ne yaparsam beceremedim. Bu konuda yardımcı olabilecek var mı?

 

public bool FX_Stop(string sembol, decimal quantity)
		{
			bool sonuc = false;
			if (LastOrderSide.Obj == Side.Sell && AcigaSatisYapilsin)
			{
				SendMarketOrder(sembol, quantity, OrderSide.Buy, includeAfterSession:AksamSeansiniDahilEt);
				Debug("Kısa pozisyon kapatıldı.[ " + quantity + " adet ]");
				LastOrderSideForShort = LastOrderSide;
				sonuc = true;
			}else if (LastOrderSide.Obj == Side.Buy)
			{
				SendMarketOrder(sembol, quantity, OrderSide.Sell, includeAfterSession:AksamSeansiniDahilEt);
				Debug("Uzun pozisyon kapatıldı.[ " + quantity + " adet ]");
				LastOrderSideForShort = LastOrderSide;
				sonuc = true;
			}
			return sonuc;
		}

 

Algoritmik Trading kategorisinde (26 puan) tarafından | 143 kez görüntülendi

1 cevap

0 beğenilme 0 beğenilmeme

Merhaba,

Pozisyon kapatmak için FX_Stop() fonksiyonunu aşağıdaki gibi kullanıp dener misiniz?

public bool FX_Stop(string sembol, decimal quantity)
{
	StopLoss(sembol,SyntheticOrderPriceType.Percent,0);
}

 

(15,852 puan) tarafından
Bu şekilde koşula bakılmaksızın ilk düşüşte pozisyonu stopluyor
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.



7,961 soru
7,941 cevap
4,531 yorum
13,088 kullanıcı