0 beğenilme 0 beğenilmeme
257 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 | 257 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,892 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.



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