历史以太坊价格 - Coinbase API
Posted
技术标签:
【中文标题】历史以太坊价格 - Coinbase API【英文标题】:Historical ethereum prices - Coinbase API 【发布时间】:2017-08-19 15:47:57 【问题描述】:使用 python coinbase API——函数——get_buy_price
、get_sell_price
、get_spot_price
、get_historical_data
等……似乎都只返回比特币价格。有没有办法查询以太坊价格?
似乎currency_pair = 'BTC-USD'
可以更改为类似于currency_pair = 'ETH-USD'
的内容,尽管这没有效果。
我希望 API 根本不支持这一点,除非官方文档明确指出:
获取购买一个比特币或以太币的总价
我可以通过在买入/卖出请求中使用quote='true'
标志来解决这个问题。然而,这只能向前推进,我想要历史数据。
【问题讨论】:
【参考方案1】:source code 永远是你的朋友。
def get_spot_price(self, **params):
"""https://developers.coinbase.com/api/v2#get-spot-price"""
if 'currency_pair' in params:
currency_pair = params['currency_pair']
else:
currency_pair = 'BTC-USD'
response = self._get('v2', 'prices', currency_pair, 'spot', data=params)
return self._make_api_object(response, APIObject)
def get_historic_prices(self, **params):
"""https://developers.coinbase.com/api/v2#get-historic-prices"""
response = self._get('v2', 'prices', 'historic', data=params)
return self._make_api_object(response, APIObject)
我们可以看到两个函数都调用了同一个 api 端点。我们看到get_spot_price
支持currency_pair
参数并将其作为api 调用的一部分传递。另一方面,get_historic_prices
没有。
我想知道如果这样做会发生什么。让我们试试吧:
from coinbase.wallet.client import Client
from coinbase.wallet.model import APIObject
client = Client(api_key, api_secret)
client._make_api_object(client._get('v2', 'prices', 'ETH-USD', 'historic'), APIObject)
<APIObject @ 0x10dd04938>
"currency": "USD",
"prices": [
"price": "52.60",
"time": "2017-03-30T17:03:48Z"
,
"price": "52.60",
"time": "2017-03-30T17:03:38Z"
,
"price": "52.54",
"time": "2017-03-30T17:03:28Z"
,
"price": "52.54",
"time": "2017-03-30T17:03:18Z"
,
"price": "52.54",
"time": "2017-03-30T17:03:08Z"
,
"price": "52.53",
"time": "2017-03-30T17:02:58Z"
,
"price": "52.53",
"time": "2017-03-30T17:02:48Z"
,
"price": "52.53",
"time": "2017-03-30T17:02:38Z"
,
"price": "52.53",
"time": "2017-03-30T17:02:28Z"
,
.....
成功了!
我会按照他们的方式发送 PR。但现在你可以使用我的代码 sn-p。
PR submitted
【讨论】:
@sam,顺便说一下,除了历史数据之外的所有方法都应该适用于货币对。如果它们似乎不起作用,也许您需要在 coinbase 站点的个人资料中更新您的 API 版本,并确保您没有从您的代码中要求较旧的 API 版本 我不懂python,我是ios开发者,基本上我使用url来获取数据和解析数据。你能给我这个历史数据的 url,最后你的程序正在生成 url 来获取数据。谢谢..我【参考方案2】:我尝试了这个,但遇到的问题是,将“currency_pair”参数与“historic”参数一起使用只会在过去几天内生成 1 秒粒度的历史记录。
我通过使用 GDAX 客户端 API 以及 GDAX Python client 解决了这个问题:
安装 GDAX Python 客户端:
pip install gdax
那么即使没有 GDAX 帐户,您也可以使用公共 API 部分:
import gdax
client = gdax.PublicClient()
client.get_product_historic_rates('ETH-USD', granularity=60*60*24)
要获取可用产品列表(加密货币/法定货币对),请使用
client.get_products()
并扫描 id 条目。
【讨论】:
【参考方案3】:在调用汇率时遇到了类似的问题,这对我有用。 尝试更改
中的参数coinbase\wallet\client.py
来自
response = self._get('v2', 'prices', 'spot', data=params)
到
response = self._get('v2', 'prices', 'spot', params=params)
【讨论】:
以上是关于历史以太坊价格 - Coinbase API的主要内容,如果未能解决你的问题,请参考以下文章
安装 metamask 和 coinbase chrome 扩展时如何获取 metamask 以太坊对象?
Coinbase入局带火以太坊L2生态,Arbitrum生态大盘点