2017-03-27 2 views
9

Mit der Python Coinbase API-- Die Funktionen-- get_buy_price, get_sell_price, get_spot_price, get_historical_data, etc ... scheinen alle nur Bitcoin Preise zurückgeben. Gibt es eine Möglichkeit, die Ethereum-Preise abzufragen?historischen Etherium Preise - Coinbase API

Es scheint, dass currency_pair = 'BTC-USD' zu etwas ähnlich wie currency_pair = 'ETH-USD' geändert werden könnte, obwohl dies keinen Effekt hat.

Ich würde erwarten, dass der API einfach dies nicht unterstützt, mit der Ausnahme, dass die offizielle Dokumentation heißt es ausdrücklich:

der Gesamtpreis ein Bitcoin zu kaufen oder Ether

ich arbeiten kann um dies etwas durch die Verwendung der quote='true' Flag in der Kauf/Verkauf-Anfrage. Das funktioniert aber nur vorwärts, ich hätte gerne historische Daten.

Antwort

13

source code wird immer dein Freund sein.

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) 

Wir können sehen, dass beide Funktionen den gleichen API-Endpunkt aufrufen. Wir sehen, dass get_spot_price das Argument currency_pair unterstützt und es als Teil des API-Aufrufs weitergibt. Auf der anderen Seite get_historic_prices nicht.

Ich frage mich, was passieren würde, wenn es passiert wäre. Lass es uns versuchen:

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" 
     }, 
     ..... 

Erfolg!

Ich werde eine PR ihren Weg geschickt. Aber jetzt können Sie mein Code-Snippet verwenden.


PR submitted

+0

@sam, übrigens sollten alle Methoden außer historischen Daten schon mit dem Währungspaar funktionieren. Wenn sie nicht zu funktionieren scheinen, müssen Sie vielleicht Ihre API-Version in Ihrem Profil auf der Coinbase-Site aktualisieren und auch sicherstellen, dass Sie keine ältere API-Version von Ihrem Code anfordern. –

+0

Ich weiß nicht, Python, ich bin iOS-Entwickler, im Grunde ich Verwenden Sie URL zum Abrufen von Daten und Analysieren von Daten. können Sie mir bitte URL für diese historischen Daten geben, schließlich erzeugt Ihr Programm Url, um Daten zu holen. Thx .. ich –

4

habe ich versucht, diese und hatte das Problem, dass ein ‚currency_pair‘ Parameter zusammen mit dem ‚historischen‘ Parameter verwendet, wird nur eine Geschichte mit 1 Sekunde Granularität für die letzten paar Tage zu produzieren.

Ich löste dies durch die GDAX Client-API stattdessen verwenden, zusammen mit dem GDAX Python client:

GDAX Python-Client installieren:

pip install gdax 

Dann können Sie den öffentlichen API Teil verwenden, auch ohne ein GDAX Konto mit :

import gdax 

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

, um eine Liste der verfügbaren Produkte (Kryptowährung/FIAT Währungspaare) zu erhalten, verwenden

client.get_products() 

und suchen Sie nach den ID-Einträgen.

0

Etwas funktionierte für mich mit einem ähnlichen Problem beim Umtauschkurs. Versuchen Sie, die Parameter in

coinbase \ wallet \ client zu ändern.py

von

response = self._get ('v2', 'Preise', 'Spot', params = Daten)

zu

Antwort = self._get ('v2', 'preise', 'spot', params = params)