日期时间的 Coinbase 历史现货价格
Coinbase Historic Spot Price at Date-Time
coinbase API 允许您在向 https://api.coinbase.com/v2/prices/BTC-USD/spot 发出请求时指定日期。 API 声明日期格式应为 YYYY-MM-DD。是否可以接收到特定时间的历史价格(例如:1 小时前的价格)?我在他们的 ios 应用程序上看到了这一点,但他们似乎没有通过 API.
提供这些数据
感谢大家的帮助!
有疑问,现货价格一般是指价格"right now"。它确实说您可以使用 YYYY-MM-DD (UTC),但没有指定时间。
看看这个类似的帖子:
Get bitcoin historical data
我最近对此做了一些研究,我认为@gavinstevens 的回答是正确的,下面描述的实验证实了这一点。
建立了一些日期来测试:
import dt as dt
import requests
today=dt.date.today()
today_dt=dt.datetime.now()
earlier_dt=today_dt-dt.timedelta(hours=6)
print(today)
'2017-03-31'
print(today_dt.strftime("%Y-%m-%d %H:%M:%S"))
'2017-03-31 11:57:58'
print(earlier_dt.strftime("%Y-%m-%d %H:%M:%S"))
'2017-03-31 05:57:58'
#build dicts to pass in the api requests
dict_today={'date':today.strftime("%Y-%m-%d")}
dict_dt_now={'date':today_dt.strftime("%Y-%m-%d %H:%M:%S")}
dict_dt_earler={'date': earlier_dt.strftime("%Y-%m-%d %H:%M:%S")}
现在,对于现货价格案例:
r=requests.get('https://api.coinbase.com/v2/prices/BTC-USD/spot/',params=dict_today)
print(r.text)
{"data":{"amount":"1082.42","currency":"USD"},...}
r=requests.get('https://api.coinbase.com/v2/prices/BTC-USD/spot/',params=dict_dt_now)
print(r.text)
{"data":{"amount":"1078.45","currency":"USD"},...}
r=requests.get('https://api.coinbase.com/v2/prices/BTC-USD/spot/',params=dict_dt_earler)
print(r.text)
{"data":{"amount":"1078.03","currency":"USD"},...}
正如您从上面的代码片段中看到的那样,api 为每个经过的日期时间返回不同的价格。接下来要回溯很多天,以确保该模型适用于所有历史数据...
way_earlier_dt=today_dt-dt.timedelta(days=365)
dict_way_earlier={'date': way_earlier_dt.strftime("%Y-%m-%d %H:%M:%S")}
r=requests.get('https://api.coinbase.com/v2/prices/BTC-USD/spot/',params=dict_way_earlier)
print(r.text)
{"data":{"amount":"415.23","currency":"USD"},...}
确实returns那个日期时间的合理价格。减去六个小时作为最终检查...
way_earlier_dt=way_earlier_dt-dt.timedelta(hours=6)
dict_way_earlier={'date': way_earlier_dt.strftime("%Y-%m-%d %H:%M:%S")}
r=requests.get('https://api.coinbase.com/v2/prices/BTC-USD/spot/',params=dict_way_earlier)
print(r.text)
{"data":{"amount":"415.23","currency":"USD"},...}
呃哦!价格与之前的要求相同。看来我们要崩溃了。
让我们做一个 "walk across midnight" 测试,看看日期时间历史请求是否只对当天有效。我们可以从 "today_dt" 值开始,减去 12,然后减去 16 小时...
yesterday_dt_12=today_dt-dt.timedelta(hours=12)
yesterday_dt_16=today_dt-dt.timedelta(hours=16)
print(yesterday_dt_12.strftime("%Y-%m-%d %H:%M:%S"))
'2017-03-30 23:57:58'
print(yesterday_dt_16.strftime("%Y-%m-%d %H:%M:%S"))
'2017-03-30 19:57:58'
dict_yest_12={'date':yesterday_dt_12.strftime("%Y-%m-%d %H:%M:%S")}
dict_yest_16={'date':yesterday_dt_16.strftime("%Y-%m-%d %H:%M:%S")}
r=requests.get('https://api.coinbase.com/v2/prices/BTC-USD/spot/',params=dict_yest_12)
print(r.text)
{"data":{"amount":"1039.37","currency":"USD"},..}
r=requests.get('https://api.coinbase.com/v2/prices/BTC-USD/spot/',params=dict_yest_16)
print(r.text)
{"data":{"amount":"1039.37","currency":"USD"},...}
唉,我们有答案了。我们无法使用 coinbase api 现货请求获取历史 BTC 现货价格。我做了更多调整,并确认初始实验中的价格差异是今天 api 返回的当前 BTC 现货价格的波动。
伤心!
是的,这是可能的。要获取最近的现货价格,请使用以下命令。
小时:https://api.coinbase.com/v2/prices/BTC-USD/historic?period=hour
日:https://api.coinbase.com/v2/prices/BTC-USD/historic?period=day
月份:https://api.coinbase.com/v2/prices/BTC-USD/historic?period=month
coinbase API 允许您在向 https://api.coinbase.com/v2/prices/BTC-USD/spot 发出请求时指定日期。 API 声明日期格式应为 YYYY-MM-DD。是否可以接收到特定时间的历史价格(例如:1 小时前的价格)?我在他们的 ios 应用程序上看到了这一点,但他们似乎没有通过 API.
提供这些数据感谢大家的帮助!
有疑问,现货价格一般是指价格"right now"。它确实说您可以使用 YYYY-MM-DD (UTC),但没有指定时间。
看看这个类似的帖子: Get bitcoin historical data
我最近对此做了一些研究,我认为@gavinstevens 的回答是正确的,下面描述的实验证实了这一点。
建立了一些日期来测试:
import dt as dt
import requests
today=dt.date.today()
today_dt=dt.datetime.now()
earlier_dt=today_dt-dt.timedelta(hours=6)
print(today)
'2017-03-31'
print(today_dt.strftime("%Y-%m-%d %H:%M:%S"))
'2017-03-31 11:57:58'
print(earlier_dt.strftime("%Y-%m-%d %H:%M:%S"))
'2017-03-31 05:57:58'
#build dicts to pass in the api requests
dict_today={'date':today.strftime("%Y-%m-%d")}
dict_dt_now={'date':today_dt.strftime("%Y-%m-%d %H:%M:%S")}
dict_dt_earler={'date': earlier_dt.strftime("%Y-%m-%d %H:%M:%S")}
现在,对于现货价格案例:
r=requests.get('https://api.coinbase.com/v2/prices/BTC-USD/spot/',params=dict_today)
print(r.text)
{"data":{"amount":"1082.42","currency":"USD"},...}
r=requests.get('https://api.coinbase.com/v2/prices/BTC-USD/spot/',params=dict_dt_now)
print(r.text)
{"data":{"amount":"1078.45","currency":"USD"},...}
r=requests.get('https://api.coinbase.com/v2/prices/BTC-USD/spot/',params=dict_dt_earler)
print(r.text)
{"data":{"amount":"1078.03","currency":"USD"},...}
正如您从上面的代码片段中看到的那样,api 为每个经过的日期时间返回不同的价格。接下来要回溯很多天,以确保该模型适用于所有历史数据...
way_earlier_dt=today_dt-dt.timedelta(days=365)
dict_way_earlier={'date': way_earlier_dt.strftime("%Y-%m-%d %H:%M:%S")}
r=requests.get('https://api.coinbase.com/v2/prices/BTC-USD/spot/',params=dict_way_earlier)
print(r.text)
{"data":{"amount":"415.23","currency":"USD"},...}
确实returns那个日期时间的合理价格。减去六个小时作为最终检查...
way_earlier_dt=way_earlier_dt-dt.timedelta(hours=6)
dict_way_earlier={'date': way_earlier_dt.strftime("%Y-%m-%d %H:%M:%S")}
r=requests.get('https://api.coinbase.com/v2/prices/BTC-USD/spot/',params=dict_way_earlier)
print(r.text)
{"data":{"amount":"415.23","currency":"USD"},...}
呃哦!价格与之前的要求相同。看来我们要崩溃了。
让我们做一个 "walk across midnight" 测试,看看日期时间历史请求是否只对当天有效。我们可以从 "today_dt" 值开始,减去 12,然后减去 16 小时...
yesterday_dt_12=today_dt-dt.timedelta(hours=12)
yesterday_dt_16=today_dt-dt.timedelta(hours=16)
print(yesterday_dt_12.strftime("%Y-%m-%d %H:%M:%S"))
'2017-03-30 23:57:58'
print(yesterday_dt_16.strftime("%Y-%m-%d %H:%M:%S"))
'2017-03-30 19:57:58'
dict_yest_12={'date':yesterday_dt_12.strftime("%Y-%m-%d %H:%M:%S")}
dict_yest_16={'date':yesterday_dt_16.strftime("%Y-%m-%d %H:%M:%S")}
r=requests.get('https://api.coinbase.com/v2/prices/BTC-USD/spot/',params=dict_yest_12)
print(r.text)
{"data":{"amount":"1039.37","currency":"USD"},..}
r=requests.get('https://api.coinbase.com/v2/prices/BTC-USD/spot/',params=dict_yest_16)
print(r.text)
{"data":{"amount":"1039.37","currency":"USD"},...}
唉,我们有答案了。我们无法使用 coinbase api 现货请求获取历史 BTC 现货价格。我做了更多调整,并确认初始实验中的价格差异是今天 api 返回的当前 BTC 现货价格的波动。
伤心!
是的,这是可能的。要获取最近的现货价格,请使用以下命令。
小时:https://api.coinbase.com/v2/prices/BTC-USD/historic?period=hour
日:https://api.coinbase.com/v2/prices/BTC-USD/historic?period=day
月份:https://api.coinbase.com/v2/prices/BTC-USD/historic?period=month