Сбой фильтра Binance: PRICE_FILTER

#java #binance

Вопрос:

Я использую java API binance и пытаюсь выпустить лимитную продажу.

Но я продолжаю получать ошибки:

com.binance.api.клиент.исключение.Исключение BinanceApiException: Сбой фильтра: PRICE_FILTER

Я искал причину, которая могла бы вызвать эту проблему, и обнаружил, что разные монеты требуют разной точности. Однако, как мне узнать эту точность?

когда я делаю, например

 client.getExchangeInfo().getSymbolInfo("symbolname").getQuotePrecision()
 

а затем попробуйте установить мою установленную цену в 1,5 от цены покупки, например, что-то вроде:

         int precision = client.getExchangeInfo().getSymbolInfo(TOKEN).getQuotePrecision()
        NewOrderResponse res=client.newOrder(marketBuy(TOKEN,amount).newOrderRespType(NewOrderResponseType.FULL));
        String buyPrice = res.getFills().get(0).getPrice();
        String sellPrice = calculateSellprice(buyPrice, 1.3,precision);

        private String calculateSellprice(String buyPrice, double i,int precision) {
            return String.format("%."   precision   "f" , Double.parseDouble(buyPrice) * i);
        }
 

Я все еще получаю ту же ошибку. Как тогда правильно установить цену?

Комментарии:

1. Первое, что я должен предложить, это попробовать использовать BigDecimal вместо double.

Ответ №1:

чтобы получить информацию о точности и другую информацию о фильтре, связанную с различными ошибками фильтра, такими как PRICE_FILTER и PRICE_PERCENTAGE, вам необходимо вызвать конечную точку /api/v3/exchangeInfo. https://binance-docs.github.io/apidocs/spot/en/#exchange-information. Если вы увидите там данные ответа, вы найдете точность, а также свойство фильтров, которое обладает всеми конкретными свойствами фильтра, которые вам необходимо соблюдать, в зависимости от пары, которую вы ему даете.