python coinbaseAPI--関数--get_buy_price
、get_sell_price
、get_spot_price
、get_historical_data
などの使用...ビットコインの価格のみを返すには、イーサリアムの価格を照会する方法はありますか?
currency_pair = 'BTC-USD'
をcurrency_pair = 'ETH-USD'
に似たものに変更できるように見えますが、これは効果がありません。
公式ドキュメントに次のように明示的に記載されている場合を除いて、APIは単にこれをサポートしていないと思います。
1つのビットコインまたはエーテルを購入するための合計価格を取得します
購入/販売リクエストでquote='true'
フラグを使用することで、これをある程度回避できます。ただし、これは前進するためにのみ機能します。履歴データが必要です。
ソースコード は常にあなたの友達になります。
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を送ります。しかし今のところ、私のコードスニペットを使用できます。
これを試してみましたが、「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エントリをスキャンします。
為替レートを呼び出すのと同様の問題で、何かがうまくいきました。でパラメータを変更してみてください
coinbase\wallet\client.py
から
response = self._get( 'v2'、 'prices'、 'spot'、data = params)
に
response = self._get( 'v2'、 'prices'、 'spot'、params = params)