Исторические цены эфириума - Coinbase API

Использование API-интерфейса python coinbase. Функции get_buy_price, get_sell_price, get_spot_price, get_historical_data и т. д.... кажется, возвращают только цены биткойнов. Есть ли способ запросить цены Ethereum?

Казалось бы, currency_pair = 'BTC-USD' можно изменить на что-то похожее на currency_pair = 'ETH-USD', хотя это не имеет никакого эффекта.

Я ожидаю, что API просто не поддерживает это, за исключением того, что в официальной документации прямо указано:

Получите общую цену покупки одного биткойна или эфира

Я могу немного обойти это, используя флаг quote='true' в запросе на покупку/продажу. Однако это работает только в будущем, мне нужны исторические данные.


person sam    schedule 27.03.2017    source источник


Ответы (3)


исходный код всегда будет вашим другом .

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 отправлен

person Giannis Spiliopoulos    schedule 30.03.2017
comment
@sam, кстати, все методы, кроме исторических данных, уже должны работать с валютной парой. Если кажется, что они не работают, возможно, вам нужно обновить версию API в своем профиле на сайте coinbase, а также убедиться, что вы не запрашиваете более старую версию API из своего кода. - person Giannis Spiliopoulos; 31.03.2017
comment
Я не знаю python, я разработчик iOS, в основном я использую URL для извлечения данных и их анализа. не могли бы вы дать мне URL-адрес для этих исторических данных, наконец, ваша программа генерирует URL-адрес для извлечения данных. Спасибо .. я - person Surendra Kumar; 17.12.2017

Я попробовал это и столкнулся с проблемой, что использование параметра «currency_pair» вместе с параметром «исторический» создаст историю с точностью до 1 секунды только за последние несколько дней.

Я решил эту проблему, используя API клиента GDAX вместе с клиентом GDAX Python:

Установите клиент GDAX Python:

pip install gdax

Затем вы можете использовать общедоступную часть API даже без учетной записи GDAX:

import gdax

client = gdax.PublicClient()
client.get_product_historic_rates('ETH-USD', granularity=60*60*24)

Чтобы получить список доступных продуктов (криптовалюта/валютные пары FIAT), используйте

client.get_products()

и сканируйте записи идентификатора.

person Frank Blabu    schedule 30.05.2017

У меня что-то сработало с похожей проблемой со звонком обменных курсов. Попробуйте изменить параметры в

coinbase\кошелек\client.py

от

response = self._get('v2', 'цены', 'спот', данные=параметры)

to

response = self._get('v2', 'цены', 'спот', params=params)

person penderi    schedule 09.01.2018