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;
}
Unblocked Games offering a wide range of experiences: action, puzzle, platform, racing, clicker mechanics, strategy, sports, even horror.
https://unblocked1games.github.io