历史以太坊价格 - Coinbase API

时间:2017-03-27 04:21:09

标签: python python-3.x ethereum coinbase-api

使用python coinbase API - 函数 - get_buy_priceget_sell_priceget_spot_priceget_historical_data等......似乎都只返回比特币价格。有没有办法查询以太坊价格?

似乎currency_pair = 'BTC-USD'可以更改为类似于currency_pair = 'ETH-USD'的内容,尽管这没有效果。

我希望API根本不支持这个,除了官方文档明确说明:

  

获得购买一个比特币或以太币的总价

我可以通过在买/卖请求中使用quote='true'标志来解决这个问题。然而这只能向前发展,我想要历史数据。

3 个答案:

答案 0 :(得分:14)

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。但是现在你可以使用我的代码片段了。

PR submitted

答案 1 :(得分:4)

我尝试了这个并遇到了使用&#39; currency_pair&#39;参数以及历史性的&#39;参数将仅生成过去几天的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)

要获取可用产品列表(加密货币/ FIAT货币对),请使用

client.get_products()

并扫描id条目。

答案 2 :(得分:0)

有一些东西对我来说有一个类似的问题来调用汇率。 尝试更改

中的参数
  

coinbase \钱包\ client.py

来自

  

response = self._get(&#39; v2&#39;,&#39;价格&#39;,&#39; spot&#39;,data = params)

  

response = self._get(&#39; v2&#39;,&#39;价格&#39;,&#39; spot&#39;,params = params)