关于币安限价订单价格与数量取整的正确性验证问询
币安限价订单价格/数量取整方法的正确性验证
在币安创建限价订单时,尤其是设置止盈/止损比例或计算下单数量的环节,必须依据交易所信息API返回的过滤器规则对价格和数量进行取整处理,否则订单创建请求会直接失败。
我发现Binance.Net库中的ClampPrice方法仅实现了基础的最小-最大值限制逻辑,这并不完全符合币安的过滤规则。因此我自己编写了一个扩展方法,针对价格按BinanceSymbolPriceFilter.TickSize取整,针对数量按BinanceSymbolLotSizeFilter.StepSize取整,代码如下:
public static class BinanceHelpers { public static decimal RoundStepSize(decimal priceOrQuantity, decimal stepSize) => priceOrQuantity - priceOrQuantity % stepSize; }
我需要从币安官方API文档这类可信来源,确认这个方法的正确性和完整性。
以下是交易所信息端点返回的BTC/USDT过滤器信息:
Filters = {BinanceSymbolFilter[]} BinanceSymbolFilter[9] [0] = BinanceSymbolPriceFilter FilterType = {SymbolFilterType} Price MaxPrice = {Decimal} 1000000.00000000 MinPrice = {Decimal} 0.01000000 TickSize = {Decimal} 0.01000000 [1] = BinanceSymbolLotSizeFilter FilterType = {SymbolFilterType} LotSize MaxQuantity = {Decimal} 9000.00000000 MinQuantity = {Decimal} 0.00001000 StepSize = {Decimal} 0.00001000 [2] = BinanceSymbolIcebergPartsFilter FilterType = {SymbolFilterType} IcebergParts Limit = {int} 10 [3] = BinanceSymbolMarketLotSizeFilter FilterType = {SymbolFilterType} MarketLotSize MaxQuantity = {Decimal} 114.12693879 MinQuantity = {Decimal} 0.00000000 StepSize = {Decimal} 0.00000000 [4] = BinanceSymbolTrailingDeltaFilter FilterType = {SymbolFilterType} TrailingDelta MaxTrailingAboveDelta = {int} 2000 MaxTrailingBelowDelta = {int} 2000 MinTrailingAboveDelta = {int} 10 MinTrailingBelowDelta = {int} 10 [5] = BinanceSymbolPercentPriceBySideFilter AskMultiplierDown = {Decimal} 0.2 AskMultiplierUp = {Decimal} 5 AveragePriceMinutes = {int} 5 BidMultiplierDown = {Decimal} 0.2 BidMultiplierUp = {Decimal} 5 FilterType = {SymbolFilterType} PercentagePriceBySide [6] = BinanceSymbolNotionalFilter ApplyMaxToMarketOrders = {bool} false ApplyMinToMarketOrders = {bool} true AveragePriceMinutes = {int} 5 FilterType = {SymbolFilterType} Notional MaxNotional = {Decimal} 9000000.00000000 MinNotional = {Decimal} 5.00000000 [7] = BinanceSymbolMaxOrdersFilter FilterType = {SymbolFilterType} MaxNumberOrders MaxNumberOrders = {int} 200 [8] = BinanceSymbolMaxAlgorithmicOrdersFilter FilterType = {SymbolFilterType} MaxNumberAlgorithmicOrders MaxNumberAlgorithmicOrders = {int} 5
内容的提问来源于stack exchange,提问作者nop
相关产品推荐
相关产品推荐

