历史以太坊价格 - Coinbase API

Posted

技术标签:

【中文标题】历史以太坊价格 - Coinbase API【英文标题】:Historical ethereum prices - Coinbase API 【发布时间】:2017-08-19 15:47:57 【问题描述】:

使用 python coinbase API——函数——get_buy_priceget_sell_priceget_spot_priceget_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生态大盘点

以太坊geth客户端下的一些常用命令

刚刚,比特币突然大崩盘!马斯克一句话,数字货币集体暴跌!以太坊却一枝独秀,什么逻辑?

以太坊杀手?NA(Nirvana)Chain忠于挑战自己

专业以太坊矿机价格!配置是关键