根据 Kraken API 文档, getOpenOrders端点没有data
参数,所以这解释了为什么你的结果没有被过滤。
两种方法:
- 使用pykrakenapi 包将所有输出整齐地包装在 Pandas DataFrame 中:
import krakenex
from pykrakenapi import KrakenAPI
api = krakenex.API(<<key>>, <<secret>>)
connection = KrakenAPI(api)
pairs = ['ADAEUR', 'XTZEUR']
open_orders = connection.get_open_orders()
open_orders = open_orders[open_orders['descr_pair'].isin(pairs)]
print(open_orders)
- 仅使用
krakenex
并从 JSON 输出中过滤:
import krakenex
api = krakenex.API(<<key>>, <<secret>>)
pairs = ['ADAEUR', 'XTZEUR']
open_orders = api.query_private(method='OpenOrders')['result']['open']
open_orders = [(o, open_orders[o]) for o in open_orders if open_orders[o]['descr']['pair'] in pairs]
print(open_orders)
这两种方法都是这样编写的,因此它们可以过滤一对或多对。方法 1 返回一个 Pandas DataFrame,第二个方法返回一个列表,其中每个打开的订单都有一个(订单 ID(str),订单信息(dict))的元组。