【问题标题】:Get historical Klines for multiple pair combination with a base (USDT)获取多对组合与基础 (USDT) 的历史 Klines
【发布时间】:2021-09-23 13:01:22
【问题描述】:

目前我有一个非常手动的过程来从 Binance 返回一对历史烛台数据,例如 AVAXUSDT

我希望能够从 Binance 获取以 USDT(或其他)为基础货币的多对组合的烛台数据,例如AVAXUSDT、LUNAUSDT、ADAUSDT等

这是我返回单对的脚本的一部分

candlesticks = client.get_historical_klines("AVAXUSDT", Client.KLINE_INTERVAL_12HOUR, "1 Jan, 2019", "18 Sep, 2021")

我怎样才能得到很多对?

【问题讨论】:

    标签: python binance binance-api-client


    【解决方案1】:

    一个可能的解决方案:

    import binance
    import time
    
    # tqdm not necessary, is only used for showing progress during klines iteration
    from tqdm import tqdm
    
    def multiple_klines(quote_currency: str) -> dict:
        klines = {}
    
        # You don't need API key/secret for this type of requets
        client = binance.Client()
    
        # Extract trading pairs from exchange information
        exchange_info = client.get_exchange_info()
        symbols = [x['symbol'] for x in exchange_info['symbols']]
    
        # Filter list
        selected_symbols = list(filter(lambda x: x.endswith(quote_currency), symbols))
    
        # Iterate over filtered list of trading pairs
        for symbol in tqdm(selected_symbols):
            klines[symbol] = client.get_historical_klines(
                symbol, client.KLINE_INTERVAL_12HOUR,
                "1 Jan, 2019", "18 Sep, 2021"
            )
    
            # Prevent exceeding rate limit:
            if int(client.response.headers['x-mbx-used-weight-1m']) > 1_000:
                print('Pausing for 30 seconds...')
                time.sleep(30)
    
        return klines
    
    klines_dict = multiple_klines('USDT')
    
    

    注意事项:

    • 此类调用无需身份验证(API 密钥/秘密)。但请注意rate limits(每分钟允许调用 API)。
    • 您为 klines 调用选择的时间跨度和间隔不会包含从开始到结束的所有数据,因为 API 仅返回 500 个“行”(默认情况下,最大 1000 个)。您选择的时间跨度为 992 天,因此有 1984 个“行”,间隔为 12 小时。
    • 返回一个dict,其中包含交易对(例如BTCUSDT)作为键,klines 数据作为值。
    • Klines 数据返回为nested list。您可以找到文档here

    【讨论】:

      猜你喜欢
      • 2020-12-10
      • 1970-01-01
      • 2017-06-17
      • 1970-01-01
      • 2021-12-28
      • 1970-01-01
      • 2011-01-16
      • 2022-11-13
      • 2021-08-30
      相关资源
      最近更新 更多