- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我一直在使用这个脚本通过 Binance API 和这个脚本从一些加密货币中获取价格:
https://steemit.com/python/@marketstack/how-to-download-historical-price-data-from-binance-with-python
问题是,使用此脚本我无法控制日期范围:例如,我想选择 2015 年 12 月和 2020 年 12 月之间的期间范围,或者我想要任何加密货币的第一天交易的每日价格......等等。
所以我和你分享我正在使用的代码(从steemit代码复制并稍微修改)
我该怎么做?
# https://steemit.com/python/@marketstack/how-to-download-historical-price-data-from-binance-with-python###
import requests
import json
import pandas as pd
import numpy as np
import datetime as dt
frequency = input("Please enter the frequency (1m/5m/30m/.../1h/6h/1d/ : ")
def get_bars(symbol, interval=frequency):
root_url = 'https://api.binance.com/api/v1/klines'
url = root_url + '?symbol=' + symbol + '&interval=' + interval
data = json.loads(requests.get(url).text)
df = pd.DataFrame(data)
df.columns = ['open_time',
'o', 'h', 'l', 'c', 'v',
'close_time', 'qav', 'num_trades',
'taker_base_vol', 'taker_quote_vol', 'ignore']
df.index = [dt.datetime.fromtimestamp(x / 1000.0) for x in df.close_time]
return df
btcusdt = get_bars('BTCUSDT')
ethusdt = get_bars('ETHUSDT')
df0=pd.DataFrame(btcusdt)
df0.to_csv('_btcusdt.csv')
df1=pd.DataFrame(ethusdt)
df1.to_csv('_ethusdt.csv')
谁能帮我优化一下?
最佳答案
import os
from binance.client import Client
import pandas as pd
import datetime, time
def GetHistoricalData(self, howLong):
self.howLong = howLong
# Calculate the timestamps for the binance api function
self.untilThisDate = datetime.datetime.now()
self.sinceThisDate = self.untilThisDate - datetime.timedelta(days = self.howLong)
# Execute the query from binance - timestamps must be converted to strings !
self.candle = self.client.get_historical_klines("BNBBTC", Client.KLINE_INTERVAL_1MINUTE, str(self.sinceThisDate), str(self.untilThisDate))
# Create a dataframe to label all the columns returned by binance so we work with them later.
self.df = pd.DataFrame(self.candle, columns=['dateTime', 'open', 'high', 'low', 'close', 'volume', 'closeTime', 'quoteAssetVolume', 'numberOfTrades', 'takerBuyBaseVol', 'takerBuyQuoteVol', 'ignore'])
# as timestamp is returned in ms, let us convert this back to proper timestamps.
self.df.dateTime = pd.to_datetime(self.df.dateTime, unit='ms').dt.strftime(Constants.DateTimeFormat)
self.df.set_index('dateTime', inplace=True)
# Get rid of columns we do not need
self.df = self.df.drop(['closeTime', 'quoteAssetVolume', 'numberOfTrades', 'takerBuyBaseVol','takerBuyQuoteVol', 'ignore'], axis=1)
print(self.df)
我确实希望这对某人有所帮助。
client = Client(api_key, api_secret)
当然欢迎任何改进!
关于python - 如何使用 Python 使用币安 API 获取加密货币的所有价格历史记录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66295187/
我在 Ember 部分模板的链接上有一个 fadeTo 动画;该动画在鼠标单击链接时激活,其完成方式如下: jQuery('#object').fadeTo(1000, 1); 所以需要1秒才能完成;
我使用的是 debian 7 x64,我想在启动时添加一个自动启动服务,但它不起作用。 命令:“update-rc.d defaults”运行良好并返回给我:update-rc.d:使用基于依赖的启动
我安装了 Debian jessie。 内核版本: Linux srv1 3.16-3-amd64 #1 SMP Debian 3.16.5-1 (2014-10-10) x86_64 GNU/Lin
我在我的服务器 (debian 7.5) 上使用 docker 和 docker compose。 我有 1 个 mysql 容器和 1 个 postgresql 容器用于 2 个应用程序。 当我想为
大家好,我有一个小问题。 让我解释一下我有 3 个目录和 3 个不同的启动脚本。 user/dir1/launch1.sh user/dir2/launch2.sh user/dir3/launc
我需要安装一些包来为在 VB 中运行的 Debian 9 操作系统中的项目准备工作区。我有指令: ---------------------------------------------------
前段时间,我有一台运行 Debian 的新单板计算机,它最终将成为学校项目的“核心”。 现在,我正在使用有线网络和 ssh 访问板载发行版。只要这个东西在我的桌面上就没问题,但当它被内置到机器人的目标
我正在运行 Debian 6.0.7 Squeeze 并安装了 Plymouth 以获得启动画面以掩盖启动时出现的系统调用。我还安装了一个 nVidia 显卡,我已经为其安装了驱动程序并遵循了来自 h
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 这个问题似乎不是关于 a specific programming problem, a softwar
我是一名优秀的程序员,十分优秀!