기존의 이더리움 가격 - Coinbase API

조회수 1101회

파이썬 coinbase API를 사용해서 -- get_buy_price , get_sell_price , get_spot_price , get_historical_data 등의 함수는 비트 코인 가격만을 반환하는 것 같습니다. Ethereum 가격을 알 수 있는 방법이 있을까요?

currency_pair = 'BTC-USD' 가 유사하게 currency_pair = 'ETH-USD' 같이 변경될 수 있는 것처럼 보여도 효과는 없습니다.

공식적으로 문서가 지원하는

Get the total price to buy one bitcoin or ether

를 제외하고는 API가 단순히 이것을 지원하지 않을 것으로 기대합니다.

구매 / 판매 요청에 quote='true' 플래그를 사용하여 이 문제를 해결할 수는 있지만 이것은 단지 앞으로만 나아갈 뿐이므로 기존의 데이터를 원합니다.

  • (•́ ✖ •̀)
    알 수 없는 사용자

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

    성공입니다 제가 홍보를 위해 보내기 전에 지금은 제 코드 snippet 을 사용할 수 있습니다.

    • (•́ ✖ •̀)
      알 수 없는 사용자
  • 지난 며칠 동안 저는 이것을 시도했을 때 '예전의' 매개 변수와 함께 'currency_pair' 매개 변수를 사용하면 1 초의 세분화 기록을 생성한다는 문제점이 있었습니다.

    그래서 대신에 GDAX 파이썬 클라이언트와 함께 GDAX 클라이언트 API를 사용해서 이 문제를 해결했습니다.

    GDAX Python 클라이언트 설치 :

    pip install gdax 
    

    그런 다음 GDAX 계정 없이 공개 API 일부를 사용할 수 있습니다.

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

    사용 가능한 목록 (cryptocurrency 혹은 FIAT currency 쌍)을 얻으려면

     client.get_products() 
    

    을 사용하고 id 개체를 검색하세요.

    • (•́ ✖ •̀)
      알 수 없는 사용자
  • 저도 환율 문제로 비슷한 문제가 생겨서 도움이 되었습니다.

    coinbase\wallet\client.py

    에서

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

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

    으로 params를 바꿔보세요.

    • (•́ ✖ •̀)
      알 수 없는 사용자

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)