SymbolInformation CreateSymbolInformation(Binance.Market market) { var priceFilter = market.filters.SingleOrDefault((f) => f.filterType == Binance.FilterType.PRICE_FILTER.ToString()); var lotSizeFilter = market.filters.SingleOrDefault((f) => f.filterType == Binance.FilterType.LOT_SIZE.ToString()); var minNotionalFilter = market.filters.SingleOrDefault((f) => f.filterType == Binance.FilterType.MIN_NOTIONAL.ToString()); var cmcEntry = GetCmcEntry(market.baseAsset); return(new SymbolInformation { BaseAsset = market.baseAsset, QuoteAsset = market.quoteAsset, Symbol = market.symbol, Status = market.status, MinPrice = priceFilter.minPrice, MaxPrice = priceFilter.maxPrice, TickSize = priceFilter.tickSize, PriceDecimals = DigitsCount(priceFilter.tickSize), MinQuantity = lotSizeFilter.minQty, MaxQuantity = lotSizeFilter.maxQty, StepSize = lotSizeFilter.stepSize, OrderTypes = market.orderTypes, QuantityDecimals = DigitsCount(lotSizeFilter.stepSize), MinNotional = minNotionalFilter.minNotional, TotalDecimals = DigitsCount(minNotionalFilter.minNotional), IsMarginTradingAllowed = market.isMarginTradingAllowed, CmcId = cmcEntry != null ? cmcEntry.id : -1, CmcName = cmcEntry != null ? cmcEntry.name : market.baseAsset, CmcSymbol = cmcEntry != null ? cmcEntry.symbol : market.symbol }); }
SymbolInformation CreateSymbolInformation(Binance.Market market) { var priceFilter = market.filters.SingleOrDefault((f) => f.filterType == Binance.FilterType.PRICE_FILTER.ToString()); var lotSizeFilter = market.filters.SingleOrDefault((f) => f.filterType == Binance.FilterType.LOT_SIZE.ToString()); return(new SymbolInformation() { BaseAsset = market.baseAsset, QuoteAsset = market.quoteAsset, Symbol = market.symbol, Status = market.status, MinPrice = priceFilter.minPrice, MaxPrice = priceFilter.maxPrice, PriceDecimals = DigitsCount(priceFilter.tickSize), MinQuantity = priceFilter.minQty, MaxQuantity = priceFilter.maxQty, QuantityDecimals = DigitsCount(lotSizeFilter.stepSize), }); }
SymbolInformation CreateSymbolInformation(Binance.Market market) { var priceFilter = market.filters.SingleOrDefault((f) => f.filterType == Binance.FilterType.PRICE_FILTER.ToString()); var lotSizeFilter = market.filters.SingleOrDefault((f) => f.filterType == Binance.FilterType.LOT_SIZE.ToString()); var cmcEntry = cmc_listing.FirstOrDefault(x => CorrectAssetName(market.baseAsset).Equals(x.symbol, StringComparison.CurrentCultureIgnoreCase)); Debug.WriteLineIf(cmcEntry == null, $"Missing {market.baseAsset}"); return(new SymbolInformation() { BaseAsset = market.baseAsset, QuoteAsset = market.quoteAsset, Symbol = market.symbol, Status = market.status, MinPrice = priceFilter.minPrice, MaxPrice = priceFilter.maxPrice, PriceDecimals = DigitsCount(priceFilter.tickSize), MinQuantity = priceFilter.minQty, MaxQuantity = priceFilter.maxQty, QuantityDecimals = DigitsCount(lotSizeFilter.stepSize), CmcId = cmcEntry != null ? cmcEntry.id : -1, CmcName = cmcEntry != null ? cmcEntry.name : market.baseAsset, CmcSymbol = cmcEntry != null ? cmcEntry.symbol : market.symbol }); }