如何通过Python调用Kraken API限定仅查询单个交易对的挂单?
问题原因
Kraken REST API的OpenOrders私有接口原生不支持通过pair参数过滤指定交易对挂单,你传入的pair参数会被接口直接忽略,因此默认返回所有交易对的未成交挂单,该限制和你使用的krakenex库无关,更换其他REST调用库也无法规避。
解决方案
方案1:本地过滤(无需改调用逻辑,适配低频查询场景)
拿到全量挂单后通过订单自带的交易对属性过滤即可,修改后代码如下:
client = krakenex.API(<<key>>, <<secret>>) # 无需传无效的pair参数 open_ord = client.query_private(method='OpenOrders')['result']['open'] # 过滤仅保留ADAEUR交易对的挂单 adaeur_open_ord = [order for order in open_ord.values() if order['descr']['pair'] == 'ADAEUR']
方案2:使用WebSocket API(适配高频查询场景,效率更高)
如果需要频繁查询挂单数据提升运行效率,可以切换到Kraken的私有WebSocket API,订阅指定交易对的订单更新,只会收到目标交易对的挂单变动推送,不需要每次拉取全量数据。你可以使用kraken-wsapi库完成相关调用。
内容的提问来源于stack exchange,提问作者Anton Mueller
相关产品推荐
相关产品推荐

