web-dev-qa-db-ja.com

過去のイーサリアム価格-CoinbaseAPI

python coinbaseAPI--関数--get_buy_priceget_sell_priceget_spot_priceget_historical_dataなどの使用...ビットコインの価格のみを返すには、イーサリアムの価格を照会する方法はありますか?

currency_pair = 'BTC-USD'currency_pair = 'ETH-USD'に似たものに変更できるように見えますが、これは効果がありません。

公式ドキュメントに次のように明示的に記載されている場合を除いて、APIは単にこれをサポートしていないと思います。

1つのビットコインまたはエーテルを購入するための合計価格を取得します

購入/販売リクエストでquote='true'フラグを使用することで、これをある程度回避できます。ただし、これは前進するためにのみ機能します。履歴データが必要です。

9
sam

ソースコード は常にあなたの友達になります。

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_pricecurrency_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提出

14

これを試してみましたが、「currency_pair」パラメーターを「historic」パラメーターと一緒に使用すると、過去数日間のみ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エントリをスキャンします。

4
Frank Blabu

為替レートを呼び出すのと同様の問題で、何かがうまくいきました。でパラメータを変更してみてください

coinbase\wallet\client.py

から

response = self._get( 'v2'、 'prices'、 'spot'、data = params)

response = self._get( 'v2'、 'prices'、 'spot'、params = params)

0
penderi