使用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'
标志来解决这个问题。然而这只能向前发展,我想要历史数据。
答案 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。但是现在你可以使用我的代码片段了。
答案 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)