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

비트맥스 API 엑셀 모든 코인 시세 조회 - VBA

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

비트 맥스는 USD 또는 USDT로 거래 가능한 코인 종류가 현재 총 15개 있네요

 

특이한 점은... 비트코인을 XBT로 사용하고 있다는 점입니다.

 

그래서 엑셀에 노출할 때 XBT는 BTC로 변경해서 노출하게 만들었습니다.

 

Symbol을 넣지 않으면 모든 거래 내용이 나온다고 되어있었는데 이더리움만 노출되지 않아서 결국 하나씩 찾는 방법을 선택했습니다.

 

일단 혹시 모르니 모든 거래 내용을 보는 방법은 레퍼런스 사이트에 존재하긴 합니다.

 

https://www.bitmex.com/api/v1/instrument?

 

이렇게 하면 lastprice가 나오는데 문제는... ETHUSD를 아무리 찾아도 나오지 않았습니다.

 

이더리움 거래는 신기하게 나타나지 않네요.

 

그래서 결국 하나씩 찾아가는 방법을 택했습니다.

 

https://www.bitmex.com/api/v1/instrument?symbol=심벌

 

의 형태입니다.

 

 


1. 심벌을 찾는다.

 

https://www.bitmex.com/api/bitcoincharts

해당 사이트 (API)에 모든 심벌이 나타납니다.

 

2. 해당 심벌을 사용하여 각 각 lastprice를 찾는다.

 

https://www.bitmex.com/api/v1/instrument?symbol=심벌

심벌 자리에 1번에서 찾은 심벌을 넣어서 찾을 겁니다.

 

여러 번 인터넷을 접속하는 거라 속도는 느리지만 이더리움은.... 작은 코인이 아니기 때문에 어떻게든 찾아야 합니다.

 


Sub BitMex()
'코인 종류 찾기
Set cointype = Request("https://www.bitmex.com/api/bitcoincharts")

'코인별 찾기
For i = 1 To cointype("all").Count
    Symbol = cointype("all")(i)
    If InStr(Symbol, "USD") > 0 Or InStr(Symbol, "USDT") > 0 Then
        URL = "https://www.bitmex.com/api/v1/instrument?symbol=" & Symbol & "&columns=symbol%2ClastPrice"
        Set result = Request(URL)
        LastPrice = result(1)("lastPrice")
        Symbol = Replace(Symbol, "XBT", "BTC")
        rcnt = rcnt + 1
        Cells(rcnt, 1).Resize(1, 2) = Array(Symbol, LastPrice)
    End If
Next
End Sub
Function Request(URL)
Set Whttp = CreateObject("winhttp.winhttprequest.5.1")
Whttp.Open "get", URL
Whttp.send
Whttp.waitforresponse

Set Request = JsonConverter.ParseJson(Whttp.responsetext)


End Function

대소문자 구분되어야 합니다.

 

그리고 JsonConverter의 경우 아래 링크 참조하시면 됩니다.

 

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

반응형

댓글