본문 바로가기
코인/코인베이스API

코인베이스 API 엑셀 거래 가능 모든코인 시세 정리 - VBA

by 큐브빌드 2021. 5. 20.
반응형

미국에 아주 비싼 몸값으로 상장한 코인베이스 코인 거래소 입니다.

 

세계적인 거래소인만큼 코인베이스에서 거래 가능한 모든 코인의 시세는 엑셀로 정리해서 볼 필요가 있다고 생각합니다.

 

그래서 조금 헤매었지만 엑셀로 옮기는것을 완료하였습니다.


여담

코인베이스에 대한 여담은 쿨하게 넘어가셔도 됩니다.

 

시간이 오래 걸린 이유는 사실 리플때문입니다.

 

코인베이스는 거래 가능한 코인과 거래 불가능한 코인이 존재하였습니다.

 

거래 불가능한 코인이지만 지갑은 형성되어서 함께 노출되고 있는것 같습니다.

 

리플이 SEC 소송으로 시세가 오르락 내리락 했었습니다.

 

이건 많은 기사가 다루어졌죠

 

 

 

 

 

 

 

지식은 거기서 끝이였습니다.

 

하지만 알고보니 코인베이스는 1월 SEC가 소송을 제기해서 XRP를 상폐시켰답니다.

 

그걸 몰랐던 무지함으로 API에서 주는 정보 중 XRP가 없어서 계속 잘못 된 코드만 확인했다고 생각했습니다.

 

하지만 우여곡절끝에 확인하고 끝냈습니다~!!

 


코인베이스 API를 엑셀에 적용하기

코인베이스 API를 엑셀에 적용하기 위해서는 결국 코인베이스 API 문서를 확인합니다.

 

많은 코인거래소들이 public으로 인증 없이 사용가능한 부분에 시세가 있는데 코인베이스는 달랐습니다.

 

일단 코인베이스에서 찾은 public 의 형태는

 

API 내용
Get Currencies 유통 되는 통화 (국가별 통화)
Get Exchange rates 환율 (여기에 거래 가능한 코인이 존재)
Get spot price 현재 시장가격 (거래 가격)
Get current time 현재 시간

코인베이스를 엑셀에 정리할려고 하는것은 결국 Exchange rates만 사용하려고 하지만 

 

조금 더 상세하게 설명하겠습니다.

 

Exchange Rates API 주소는

https://api.coinbase.com/v2/exchange-rates?currency=USD

입니다.

 

디폴트값이 USD이기 때문에 코인베이스에서 USD로 구매 가능한 모든 코인 리스트가 노출 됩니다.

 

문제점 하나는 코인이 아닌 각 국가별 재화 환율도 노출됩니다.

 

그다음 spot price를 사용합니다.

https://api.coinbase.com/v2/prices/:currency_pair/spot

 

currency_pair에 거래되는 재화를 넣으면 됩니다.

 

예를들어 BTC의 USD 가격을 알고싶다면 BTC-USD라고 입력하면 됩니다.

 

https://api.coinbase.com/v2/prices/BTC-USD/spot

 

이렇게 되겠죠?

 

 

 

 

 

 

 

만약 KRW-USD라고 적어도 됩니다. 한국돈이 됩니다.

 

마지막으로 이건 선택입니다.

 

spot price와 Exchange Rates값은 거의 유사합니다.

 

그말이 무엇이냐 하면

 

spot price에서 BTC를 USD로 구매하는데 10 USD 값이 나온다면

 

Exchange Rates의 USD라고 했을 때 Btc의 Rates값은 0.1이 나옵니다.

 

비례식을 풀면 1(BTC) : 10(USD) = X(BTC) : 1(USD) 해서 X = 1/10 BTC가 됩니다.

 

Exchange Rates = 1 USD로 구매 가능한 코인 수 (인터넷 1회 접속 = 빠른속도)
Spot Price = 1개 코인을 구매하는데 필요한 USD (각 코인별 인터넷 접속 = 느린속도)

 

이러하기 때문에 Exchange Rates만 사용하겠습니다.

 

(테스트 결과 기분탓인지 몰라도 정확도는 spot price가 높습니다.)

 

 

Sub CoinBase()
Set whttp = CreateObject("WinHttp.Winhttprequest.5.1")

whttp.Open "get", "https://api.coinbase.com/v2/exchange-rates?currency=USD"
whttp.send
whttp.waitforresponse
Set Result = JsonConverter.ParseJson(whttp.responsetext)

Set whttp = Nothing

For Each Symbol In Result("data")("rates")
Rcnt = Rcnt + 1
Price = Result("data")("rates")(Symbol)
Cells(Rcnt, 1).Resize(1, 2) = Array(Symbol, Round(1 / Price, 5))
Next

End Sub

 

입니다.

 

JsonConverter는 아래 링크 참조하시면 됩니다.

코인 거래소 (업비트 코인원 빗썸 등) API 엑셀 파싱 사용하기 - VBA json 파싱 (tistory.com)

반응형

'코인 > 코인베이스API' 카테고리의 다른 글

코인베이스 지원되지 않는 코인- 잡담  (0) 2021.05.15

댓글