需要将获取到的 timestamps 转换为 datetime 类型,然后才能正确地计算出开始时间和结束时间。代码示例如下所示:
import pandas as pd
import datetime
from binance.client import Client
client = Client(api_key, api_secret)
# 定义开始时间和结束时间
start = datetime.datetime(2021, 1, 1)
end = datetime.datetime(2022, 1, 1)
# 获取原始的 K线数据
raw_klines = client.get_historical_klines(symbol='BTCUSDT', interval='1d', start_str=start.timestamp()*1000, end_str=end.timestamp()*1000)
# 将 timestamps 转换为 datetime 类型
klines = []
for k in raw_klines:
str_time = datetime.datetime.fromtimestamp(k[0]/1000.0).strftime('%Y-%m-%d %H:%M:%S')
klines.append([str_time, float(k[1]), float(k[2]), float(k[3]), float(k[4]), float(k[5])])
# 将 K线数据转换为 Pandas DataFrame 格式
df = pd.DataFrame(klines, columns=['datetime', 'open', 'high', 'low', 'close', 'volume'])