0 beğenilme 0 beğenilmeme
230 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 (70 puan) tarafından
tarafından yeniden etikenlendirildi | 230 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,682 puan) tarafından
7,647 soru
7,642 cevap
4,448 yorum
11,117 kullanıcı