0 beğenilme 0 beğenilmeme
423 kez görüntülendi
merhaba algoritma işleme girdikten sonra %2 kar al olarak pasife al emri ile birlikte göndermek için nasıl bir yapı kullanmalıyım çift yön stratejide
Algoritmik Trading kategorisinde (88 puan) tarafından | 423 kez görüntülendi

1 cevap

0 beğenilme 0 beğenilmeme

Merhaba,

emriniz gerçekleştiği gibi kar al seviyesi hesaplanıp ters yönde emir gönderilebilir aşağıdaki yapıyı invceleyebilirsiniz.

decimal priceStep, quantityStep = 1;
		int exchangeID;

		public override void OnInitComplated()
		{
			var symbolDetail = GetSymbolDetail(Symbol);

			exchangeID = symbolDetail.ExchangeDetail.ExchangeID;
			var close = FX_Sonfiyat(Symbol); ;

			if (exchangeID != (int) ExchangeType.Ise && exchangeID != (int) ExchangeType.Viop)
			{
				priceStep = 1 / (decimal) Math.Pow(10, symbolDetail.DecimalCount);
				quantityStep = 1 / (decimal) Math.Pow(10, symbolDetail.TradeFraction);
			}else
			{
				priceStep = GetPriceStepForBistViop(Symbol, close);
			}
		}

		public override void OnOrderUpdate(IOrder order)
		{
			if (order.OrdStatus.Obj == OrdStatus.Filled)
			{
				var fiyat = order.Price != 0? order.Price:(order.LastPx != 0? order.LastPx:order.FilledAmount / order.FilledQty);
				var adet = order.OrderQty;
				
				if(order.Side.Obj==Side.Buy){
					Debug("Alış emri gerçekleşti ");
					
					// %2 karlı şatış
					var satisFiyati=FX_FiyatAyarla(fiyat*1.02m);
					SendLimitOrder(Symbol,adet,OrderSide.Sell,satisFiyati);					
				}
			}
		}
		
		public decimal FX_LotAyarla(decimal quantity)
		{
			return Math.Floor(quantity / quantityStep) * quantityStep;
		}

		public decimal FX_FiyatAyarla(decimal price)
		{
			return Math.Floor(price / priceStep) * priceStep;
		}

		public decimal FX_Sonfiyat(string sembol)
		{
			return GetSelectedValueFromBarData(GetBarData(sembol, SymbolPeriod), OHLCType.Close);
		}

 

(15,892 puan) tarafından
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,639 soru
8,593 cevap
4,826 yorum
19,845 kullanıcı