参数说明

Quantity

LOT_SIZE 过滤器对订单中的 quantity 也就是数量参数进行合法性检查。
如果获取到的 stepSize 为 0.01,则quantity小数位最多两位,如 3.14 可通过检查,3.141 就会出错。

Price

价格过滤器 用于检测订单中 price 参数的合法性。
如果获取到的 tickSize 为 0.01,则price小数位最多两位,如 3.14 可通过检查,3.141 就会出错。

params = {
    'symbol': 'BTCUSDT',
    'side': 'BUY',
    'type': 'LIMIT',
    'timeInForce': 'GTC',
    'quantity': quantity,
    'price': price
}

设置正确的参数

获取tickSize和stepSize

pairExchangeInfo = self.client.exchange_info('BTCUSDT')
#tickSize = 0.0001
tickSize = float(pairExchangeInfo['symbols'][0]['filters'][0]['tickSize'])
#stepSize = 0.01
stepSize = float(pairExchangeInfo['symbols'][0]['filters'][2]['stepSize'])

根据tickSize和stepSize计算正确的价格和数量参数

i = 1
n = 1
while True:
    if tickSize * (10 ** i) >= 1:
        break
    i += i
while True:
    if stepSize * (10 ** n) >= 1:
        break
    n += n
price = round(price,int(i))
quantity = round(quantity,int(n))