python-binance: 获取所有订单,不指定交易品种

python-binance: Get all orders, without specifying symbol

正在尝试使用 python-binance 模块获取我的 Binance 账户订单历史记录。有一个选项可以在一个交易品种内获取所有订单 (see documentation):

orders = client.get_all_orders(symbol='BNBBTC', limit=10)

但问题是我不能在符号参数中传递超过 1 个硬币 如何传递符号参数列表,我想在单个函数中获取超过 1 个硬币的订单历史记录 因为我正在尝试为我的币安账户构建投资组合。或者有其他方法吗?

目前,即使没有模块 python-binance.

,也无法在一次调用中不指定交易品种就获得所有历史订单或交易。

Binance 论坛上有一个 ongoing discussion 请求此功能。


解决方法:

  • 如果您知道自己排序的符号:对循环中的每个符号多次使用函数 get_all_orders()
  • 如果您不知道您订购的符号:您可以为 Binance 上可用的每个符号发送 GET 请求(如上面链接的讨论中所述)。但要小心 rateLimits.

我也在问自己同样的问题。好吧,解决方法是遍历 Binance 中所有可用的代码,寻找我们过去交易过的代码。

如果您正在使用API的免费计划,最好是设置一个存储文件或数据库并存储所有结果。然后你必须注意保持那里的变化。

是的,这正是我要处理的。

(编辑): 将需要休眠功能以避免每分钟超过 1200 次查询。

(示例):

def getAllTickers(self):

        # Get all available exchange tickers
        exchangeInfo = self.client.get_exchange_info()

        # Extract the tickers general info
        exchangeSymbols = []

        for i in exchangeInfo['symbols']:
            exchangeSymbols.append(i)

        return exchangeSymbols

            
    def getMyTrades(self, strSymbol):
        return self.client.get_my_trades(symbol=strSymbol)

    def getMyTradedTickers(self):

        tickers = self.getAllTickers()
        # Extract every ticker where trade happened
        traded = []
        for i in tickers:
            tickerTransactions = self.getMyTrades(i["symbol"])
            if tickerTransactions :
                traded.append(tickerTransactions)
                print(i["symbol"], " transactions available")
            else :
                print(i["symbol"], " has no transactions")
            self.time.sleep(0.1)
        
        return traded

**代码质量敬请谅解。 Python 不是我的主要编码语言,我正在习惯它。