본문 바로가기
코인/비트렉스API

비트렉스 API 엑셀 사용 모든코인 시세 정리하기 - VBA

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

비트렉스 API를 사용하여 엑셀에다가 코인 시세 정리하는 엑셀 파일입니다.

 

시세차익에 관련한 것을 찾다 보니 비트렉스라는 큰 코인 거래소가 있었습니다.

 

비트렉스도 엑셀에 시세를 정리해서 사용하면 편리할 것 같아서 작성하였습니다.

 

김프 계산기에는 추후에 추가할 예정입니다.

 

비트렉스는 USDT , BTC , ETH , EUR , USD 재화로 코인 구매가 가능합니다.

 

사실 BTC , ETH의 경우 코인의 종류 변경이라고 보시는 게 맞겠네요.

 

일단 비트렉스 API를 어떻게 엑셀에 옮겨 넣는지부터 설명하겠습니다.

 

 

 

비트렉스 API 문서를 먼저 확인합니다. (bittrex api 라고 검색하면 잘 나옵니다.)

 

문제는 여기서 원하는게 어떤 것인지 찾는 게 어렵습니다.

 

하지만 시세 같은경우는 대부분 public에 존재합니다. 

 

중요한 나만의 자산같은건 public에 존재할 수 없겠죠?

 

그리고는 그냥 막 찾은 결과 모든 코인이 나오는

public/getmarketsummaries

api를 사용하기로 했습니다.

 

여기서 결과값으로 받아 올 수 있는 것들은

"MarketName": "BTC-LTC", "High": 0.0135, "Low": 0.012, "Volume": 3833.97619253, "Last": 0.01349998, "BaseVolume": 47.03987026, "TimeStamp": "2014-07-09T 07:22:16.72","Bid": 0.01271001, "Ask": 0.012911, "OpenBuyOrders": 45, "OpenSellOrders": 45, "PrevDay": 0.01229501, "Created": "2014-02-13T 00:00:00","DisplayMarketName": "string"

 

이렇게 받아 올 수 있습니다.

 

이걸 정리하자면

결과값 내용
MarketName 마켓 이름
High 고가
Low 저가
Volume 거래량
Last 최근 거래금액
BaseVolume 기본 거래량
TimeStamp 검색한 시간
Bid 매수 금액
Ask 매도 금액
OpenBuyOrders 이 부분은 검색해도 이해가 잘 안가서... 설명을 못드리네요.
추측하자면 위에서부터
구매 주문 개수 (100원 , 105원 이런형태의 개수)
판매 주문 개수 
전날 종가
코인이 거래되기 시작한 날짜
OpenSellOrders
PrevDay
Created

정도인 것 같습니다.

 

그러면 이제 VBA 코드를 정리하겠습니다.

 

 

그전에 json 파싱 관련 부분이 필요합니다.

 

json 파싱 링크

해당 파일을 불러오면 됩니다.

 

링크 문서에 포함되어있지만 레퍼런스에 Microsoft Scripting Runtime을 추가하셔야 합니다.

Sub bittrex()
Application.ScreenUpdating = False

Cells.ClearContents

Set whttp = CreateObject("winhttp.winhttprequest.5.1")
whttp.Open "get", "https://api.bittrex.com/api/v1.1/public/getmarketsummaries"
whttp.SetRequestHeader "user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.135 Safari/537.36"
whttp.Send
whttp.WaitForResponse

Set JSon = JsonConverter.ParseJson(whttp.ResponseText)
Set whttp = Nothing
Set Result = JSon("result")
Rcnt = 5
For Each Rtext In Result
colcnt = 0
Rcnt = Rcnt + 1
For Each Rtext1 In Rtext
TypeValue = Rtext1
Value = Rtext(Rtext1)
colcnt = colcnt + 1
If Rcnt = 6 Then
Cells(Rcnt, colcnt) = TypeValue
End If
Cells(Rcnt + 1, colcnt) = Value
Next
Next
End Sub

이렇게 적용하면 됩니다.

 

그러면 이렇게 정리되어 나타납니다.

 

 

 

반응형

댓글