엑셀 프로젝트/엑셀을 이용한 빗썸API 자동매매

[bithumb API 1] 엑셀로 마켓 코드 조회

엑셀로투자자 2025. 1. 17. 07:41
반응형

빗썸 API활용

가상화폐 거래에는 빗썸이나 업비트가 주로 활용된다. 특히 빗썸을 많이 사용하는데, 아래와 같이 웹페이지의 제한된 화면으로는 데이터 분석에 한계가 있다. 

그림1: 가상화폐 시세조회

홈페이지 상에서 제한된 기능을 보완하기 위해서 빗썸에서는 빗썸 API Docs(https://apidocs.bithumb.com/)를 제공하고 있는데, API를 활용해서 여러 가지 데이터 작업이 가능하다. 아래 그림 2와 같이 API레퍼런스를 클릭하면 API와 관련된 다양한 자료를 볼 수 있다.

그림2: 빗썸 API 레퍼런스 화면

마켓코드 조회

빗썸에서는 API를 활용하기 쉽도록 예시코드 제시하고 있다. 아래에 제시된 예시코드를 엑셀에 맞게 변형만 해주면 엑셀에서 쉽게 빗썸에서 제공하는 마켓코드를 조회할 수 있다.

그림3: 마켓 코드 조회

구조를 보면 어차피 HTTP로 시작하는 URL로 정보 요청을 보내는 구조이기 때문에 엑셀의 엑셀 VBA 웹 데이터 가져오기(웹 크롤링)에서 구현한 것과 같이 "MSXML2.XMLHTTP.6.0" 객체를 만들어서 정보요청을 하면 된다.

실제적인 구현은 시트와 요청 url을 정의해주고, HTTP요청 객체를 만들어서 홈페이지 예시코드에 나와있는 header값을 붙여서 정보 요청을 보내면(send) 된다. 

Sub 마켓코드조회()

    ' HTTP 요청을 처리할 객체 선언
    Dim http요청 As Object
    Dim url As String
    Dim 응답결과 As String

    ' 마켓 코드 데이터를 저장할 "coin" 시트를 변수로 설정
    Dim 코인시트 As Worksheet
    Set 코인시트 = ThisWorkbook.Worksheets("coin")

    ' Bithumb API에서 마켓 코드 정보를 가져오는 URL
    apiurl = "https://api.bithumb.com/v1/market/all?isDetails=false"

    ' MSXML2.XMLHTTP.6.0 객체 생성 (HTTP 요청을 위한 객체)
    Set http요청 = CreateObject("MSXML2.XMLHTTP.6.0")

    ' HTTP GET 요청 보내기
    With http요청
        .Open "GET", apiurl, False ' GET 요청을 보냄 (False: 동기 요청)
        .setRequestHeader "accept", "application/json" ' JSON 형식으로 응답을 받도록 설정
        .send ' 요청 실행
        응답결과 = .responseText ' 응답 데이터를 문자열로 저장
    End With

    ' API 응답 결과를 "coin" 시트의 A1 셀에 저장
    코인시트.Cells(1, 1) = 응답결과

    ' HTTP 요청 객체 해제 (메모리 정리)
    Set http요청 = Nothing

End Sub

위 코드를 실행하면 아래와 같이 "A1"셀에 json 형식의 정보가 담기는 것을 확인할 수 있다. 추가적으로 json 형식의 데이터를 편집하는 함수를 직접 만들거나 json 편집 라이브러리를 활용해서 데이터 정리가 가능하다.

그림4: VBA 실행 결과

반응형