fy_ren
1
根据接口获得到的参数,和实际使用的对不上
币种 |
tickSize |
stepSize |
价格位数 |
数量位数 |
BTCUSDT |
0.01 |
0.00001 |
2 |
6 |
ETHUSDT |
0.01 |
0.0001 |
2 |
5 |
XRPUSDT |
0.0001 |
1 |
4 |
1 |
TRXUSDT |
0.00001 |
0.1 |
5 |
1 |
价格的位数没看到问题,但是数量上是对不上的,前面3种比获取到的多以为,TRX又是正常的,还有试过一些其他的币,都对不上,这个数量的精度应该是怎么获取的,看了论坛其他人的一些提问,感觉好像也没有明确
dino
2
以 BTCUSDT为例, 数量的精度是到小数点后5位。 可以看接口 /exchangeInfo下面的 filters:
"filters": [
{
"filterType": "PRICE_FILTER",
"minPrice": "0.01000000",
"maxPrice": "1000000.00000000",
"tickSize": "0.01000000"
},
{
"filterType": "PERCENT_PRICE",
"multiplierUp": "5",
"multiplierDown": "0.2",
"avgPriceMins": 5
},
{
"filterType": "LOT_SIZE",
"minQty": "0.00001000",
"maxQty": "9000.00000000",
"stepSize": "0.00001000"
},
{
"filterType": "MIN_NOTIONAL",
"minNotional": "10.00000000",
"applyToMarket": true,
"avgPriceMins": 5
},
{
"filterType": "ICEBERG_PARTS",
"limit": 10
},
{
"filterType": "MARKET_LOT_SIZE",
"minQty": "0.00000000",
"maxQty": "416.13477412",
"stepSize": "0.00000000"
},
{
"filterType": "TRAILING_DELTA",
"minTrailingAboveDelta": 10,
"maxTrailingAboveDelta": 2000,
"minTrailingBelowDelta": 10,
"maxTrailingBelowDelta": 2000
},
{
"filterType": "MAX_NUM_ORDERS",
"maxNumOrders": 200
},
{
"filterType": "MAX_NUM_ALGO_ORDERS",
"maxNumAlgoOrders": 5
}
其中的LOT_SIZE中的
stepSize : 0.00001000
所以如果你下单卖 1.00001个btc,系统不会报错。
不过如果你下单卖0.00001个btc,这样又不行了。因为没有通过MIN_NOTIONAL
的检查。
当前价 btcusdt = $20330, $20330 x 0.00001 = $0.2033 < $10.
总结一下:
- LOT_SIZE 定义了下单的数量精度和最大最小数量要求。
- 所有过滤器都需要满足
- 如果服务器报错,可以根据具体错误来定位具体问题。
fy_ren
3
先感谢您的回复,可能是我的问题没有描述清楚,那我这边根据您这个例子进行解释
-
BTCUSDT
的stepSize
为0.00001
,我能否理解为数量的精度最多到小数点后5位,但是实际情况是我可以购买1.000001个,也就是6位
- 然后是
XRPUSDT
的stepSize
是1,TRXUSDT
的stepSize
是0.1,但是实际情况他们的数量精度都是小数点后一位
- 然后是为什么会有这个问题呢,刚好是因为算法中需要用到这个精度是几位,在这种情况下,无法确定
顺便能问下,测试网下单后,限价订单还挂在上面,没有结束,但是实际情况价格应该已经满足了,这个是什么原因呢,十分感谢
dino
6
现货还是合约的?
需要把订单的详细信息发出来。然后为什么你认为应该满足了?
你这个问题单独开个帖子说吧。 一个帖子说一个问题最好。