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

Merhaba,

Binance'de 15dk'lık periodda alim emrimi gönderdiğim anda , emir gerçekleştiği anda %1 lik bir stoploss da nasil tanimlayabilirim ?

Sanirim order eventleri içerisine girmem gerekiyor ama başarılı bir şekilde çalıştırmayı başaramadim.

Hangi event altinda alim fiyatımın %1 altına stoploss koymayi nasil hesaplayıp hangi fonksiyonu kullanarak yapabileceğimi gösterebilirseniz çok sevinirim.

teşekkürler.

 

		public override void OnOrderUpdate(IOrder order)
		{
			if (order.OrdStatus.Obj == OrdStatus.Filled)
			{
				var sonGerceklesmeFiyati = order.AvgPx;
				var stopFiyati = sonGerceklesmeFiyati*0.01M;
				//SendBinanceStopLimitOrder(Symbol1,OrderQuantity1 * kaldirac,OrderSide.Buy,(sonGerceklesmeFiyati - stopFiyati));
				//SendBinanceStopLimitOrder(Symbol1,OrderQuantity1 * kaldirac,OrderSide.Buy,)
			}
		}

 

Algoritmik Trading kategorisinde (89 puan) tarafından
tarafından yeniden etikenlendirildi | 374 kez görüntülendi

1 cevap

0 beğenilme 0 beğenilmeme

Merhaba,

Kullandığınız fonksiyonda price ve stopPrice olmak üzere iki fiyat bilgisi gerekir aşağıdaki örneği inceleyebilirsiniz.

iyi çalışmalar.

decimal priceStep, quantityStep = 1;
		int exchangeID;

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

			exchangeID = symbolDetail.ExchangeDetail.ExchangeID;
			var close = GetSelectedValueFromBarData(GetBarData(),OHLCType.Close);

			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);
			}

			Debug("exchangeID: " + exchangeID + " priceStep: " + priceStep + " quantityStep: " + quantityStep);
		}

		public override void OnOrderUpdate(IOrder order)
		{
			if (order.OrdStatus.Obj == OrdStatus.Filled && order.Side.Obj==Side.Buy)
			{
				// 30000$ olduğunu varsayalım
				var sonFiyat = order.Price != 0m? order.Price:order.FilledAmount / order.FilledQty;
				
				// 29700$
				var tetiklenmeFiyati=FX_FiyatAyarla(sonFiyat*0.99m);
				
				//priceStep=0.01 ise => 29690$
				var hedefFiyat=tetiklenmeFiyati-(priceStep*1000);
				
				// fiyat 29700 geldiğinde 29690'dan satış emri gönderecek
				SendBinanceStopLimitOrder(Symbol, 0.003m, OrderSide.Sell, hedefFiyat, tetiklenmeFiyati);
				
			}
		}
		
		// Adet ayarlamasını binance göre yapmak için
		public decimal FX_LotAyarla(decimal quantity)
		{
			return Math.Floor(quantity / quantityStep) * quantityStep;
		}
		
		// Fiyat ayarlamasını binance göre yapmak için
		public decimal FX_FiyatAyarla(decimal price)
		{
			return Math.Floor(price / priceStep) * priceStep;
		}

 

(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,636 soru
8,590 cevap
4,821 yorum
19,785 kullanıcı