python - Binance ccxt 获取 ohlcv 超过 1000 限制

标签 python binance

尝试创建一个循环,获取开始和日期(3 个月)之间 pair_list 中硬币的所有 5m 间隔 ohlcv 数据

基于一些讨论和片段,我提出了以下内容,但是,它不起作用

import ccxt
import config
import pandas as pd
pd.set_option('display.max_rows', 1000)
pd.set_option('display.max_columns', 500)
pd.set_option('display.width', 1000)


import warnings
warnings.filterwarnings('ignore')

import numpy as np
#np.printoptions(precision=2, suppress=True)

from datetime import datetime, timedelta, date, time

import datetime as dt

import datedelta
import calendar
import dateutil.relativedelta
from dateutil.relativedelta import relativedelta


start = str(int(dt.datetime(2021, 5, 1).replace(hour=1).timestamp() * 1000))
end = str(int(dt.datetime(2021, 2, 1).replace(hour=1).timestamp() * 1000))

for i in pair_list:

    startDate = end
    while startDate>start:

        bars[i] = 'exchange.fetch_ohlcv(binancePair[i], timeframe=timeframe, '
        if startDate is not None:
            bars[i] += 'since='+ str(startDate) +', limit=1000'
            d2[i] = pd.DataFrame(bars[i][:-1], columns =['timestamp', 'open', 'high', 'low', 'close', 
            'volume' ])
            d[i] = pd.concat([d2[i], d[i]], axis=0, ignore_index=True, keys=None)
            startDate[i] = d[i].timestamp[0] 

            d[i].reset_index(drop=True, inplace=True)   
            d[i]['timestamp'] = pd.to_datetime(d[i]['timestamp'], unit='ms')
    

最佳答案

这不是您正在寻找的答案,但它肯定会解决您的问题 (ccxt):

    limit=None

代码看起来像这样(ccxt):

    start_date = int(datetime.datetime(2018, 1, 1, 10, 20).timestamp() * 1000)
    candles = exchange.fetch_ohlcv('BTC/USDT', timeframe='1d', since=start_date, 2012', limit=None)

这应该让蜡烛显示时间,然后您可以轻松修改 pandas df。

我知道 Binance 交易所文档声明 1000 限制,但在使用他们的 api 时他们仍然允许大量数据,例如此代码适用于 Binance (binance api):

    candles = client.get_historical_klines("BTCUSDT", Client.KLINE_INTERVAL_1DAY, "1 Jan, 2018", "22 May, 2021")

我知道你具体想做什么,因为有些交易所确实需要限制。尽管 Binance 交易所这些代码片段会起作用。

我会在几天后抽出时间来回答最初的问题,在此之前我希望这对您有所帮助。

关于python - Binance ccxt 获取 ohlcv 超过 1000 限制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67472047/

相关文章:

python - 如何从源代码构建 Python 3.4.6?

python - Python 中的 CAC 客户端应用程序身份验证

python - 如何使 Django 表单字段仅包含字母数字字符

python - 发生binance api(连接)错误时无法继续程序

python - 错误: Timestamp for this request is outside of revcWindow

websocket - 币安 future 账户更新通过 websocket 进行 Steam 交易有问题吗?

python - 在 pandas DataFrame 中有效地查找匹配行(基于内容)

python - 将 numpy.random.get_state() 写入文件

websocket - Binance WebSocket Order Book - 深度每次都在变化