Coinbase - get_spot_price - 历史

时间:2017-10-13 13:52:02

标签: python coinbase-api

必须是一个新手问题。 试图获取coinbase上的历史每日现货价格。 使用api的python实现如下。

https://developers.coinbase.com/api/v2#get-spot-price

price = client.get_spot_price(currency_pair= 'BTC-USD', date='2016-5-10')

结果(实际上是今天的价格):

    2016-5-10
{
  "amount": "5613.84",
  "base": "BTC",
  "currency": "USD"
}

我得到了当前的现货价格。任何人都可以对我所缺少的东西有所了解吗? 谢谢!

3 个答案:

答案 0 :(得分:1)

如果您只是自己点击URI,它可以正常工作:

https://api.coinbase.com/v2/prices/BTC-USD/spot?date=2017-05-10

这给出了一个合理的答案(加上我们可以为了这个问题而忽略的警告):

{"data":{"base":"BTC","currency":"USD","amount":"1758.04"},"warnings":[{"id":"missing_version","message":"Please supply API version (YYYY-MM-DD) as CB-VERSION header","url":"https://developers.coinbase.com/api#versioning"}]}

所以在某处您正在进行错误的查询。图书馆被破坏了,或者你正在使用它而不是你所说的那样。尝试上面的URL,然后尝试使用Wireshark之​​类的工具来查看基于库的解决方案正在查询的内容。

答案 1 :(得分:1)

我发现API无法获取json请求的参数。 它在'clean_params'函数中抛出参数dict,它总是返回一个空字典。

在API文件util.py第31行

def encode_params(params, **kwargs):
  """Clean and JSON-encode a dict of parameters."""
  cleaned = clean_params(params, **kwargs)
  return json.dumps(params) # changed from cleaned (was empty) to params

我知道它不干净但有效。

price = client.get_spot_price(currency_pair = 'BTC-USD',date='2014-05-10')

{
  "amount": "453.19", 
  "base": "BTC", 
  "currency": "USD"
}

答案 2 :(得分:0)

来自API:

  

以YYYY-MM-DD(UTC)格式指定历史现货价格的日期

您可能需要为月份指定2位数

price = client.get_spot_price(currency_pair= 'BTC-USD', date='2016-05-10')