问题描述
我正在使用币安进行交易,我有一个代码可以提取5分钟蜡烛数据(例如),当我单击运行代码时,它将收集数据,但是如何继续也为新蜡烛提取数据?这是我的代码:
import binance.client
from binance.client import Client
import pandas as pd
import numpy as np
import time
import datetime
from datetime import datetime,timedelta
import matplotlib.pyplot as plt
Pkey = 'xxxxxxxx'
Skey = 'ccccccccccccc'
client = Client(api_key=Pkey,api_secret=Skey)
ticker = 'BTCUSDT'
interval = Client.KLINE_INTERVAL_5MINUTE
depth = '13 hours ago'
raw = client.get_historical_klines(ticker,interval,depth)
raw = pd.DataFrame(raw)
print(raw)
谢谢
解决方法
正如@Selcuk提到的是他的评论,您可以循环binance阅读并在每次阅读之间暂停。在您的情况下,您每隔5分钟检索一次数据,因此您可以等待5分钟,然后再次读取并请求前5分钟。您可以使用append
附加到初始数据框。
尝试以下代码:
import ......
Pkey = 'xxxxxxxx'
Skey = 'ccccccccccccc'
client = Client(api_key=Pkey,api_secret=Skey)
ticker = 'BTCUSDT'
interval = Client.KLINE_INTERVAL_5MINUTE
depth = '13 hours ago'
raw = client.get_historical_klines(ticker,interval,depth)
raw = pd.DataFrame(raw)
alldata = raw
print(raw) # intial load
depth = '5 minutes ago'
while True: # loop forever
time.sleep(300) # wait 5 minutes
raw = client.get_historical_klines(ticker,depth) # 5 minutes of data
raw = pd.DataFrame(raw)
alldata.append(raw) # add to main dataset