본문 바로가기
프로젝트/코인 자동매매

파이썬 코인 자동매매 봇 만들기#8 - 빗썸 API 신청 및 잔고조회 하기

by 큰공 2021. 9. 8.
728x90
반응형

들어가며

2021.08.19 - [IT/파이썬] - 파이썬 코인 자동매매 봇 만들기#1 - pybitumb 모듈 설치하기

2021.08.21 - [IT/파이썬] - 파이썬 코인 자동매매 봇 만들기#2 - 24시간 변동률 정렬하기

2021.08.24 - [IT/파이썬] - 파이썬 코인 자동매매 봇 만들기#3 - 급등주를 찾아라

2021.08.25 - [IT/파이썬] - 파이썬 코인 자동매매 봇 만들기#4 - 매수 / 매도 시뮬레이션

2021.08.30 - [IT/파이썬] - 파이썬 코인 자동매매 봇 만들기#5 - 시뮬레이션 첫 수익률은?

2021.09.05 - [IT/파이썬] - 파이썬 코인 자동매매 봇 만들기#6 - STOP LOSS 기능을 추가

2021.09.06 - [IT/파이썬] - 파이썬 코인 자동매매 봇 만들기#7 - NONE TYPE ERROR 수정

 

파이썬 코인 자동매매 봇 만들기#7 - NONE TYPE ERROR 수정

들어가며 2021.08.19 - [IT/파이썬] - 파이썬 코인 자동매매 봇 만들기#1 - pybitumb 모듈 설치하기 2021.08.21 - [IT/파이썬] - 파이썬 코인 자동매매 봇 만들기#2 - 24시간 변동률 정렬하기 2021.08.24 - [IT/..

coinpipe.tistory.com

 이번 포스팅은 이전 글에 대해서 크게 이어지는 내용은 아니긴합니다만, 이전글을 못 보고 오신분들은 순차적으로 글을 보시고 오시는것을 추천드립니다.

 

목표

 어제 오늘 비트코인 장세가 급락을 하면서, 추후 장세가 어떻게 될 지 의문이 드는 시기이네요. 자동매매가 잘 성공을 거두어서 하락장일때는 매매하지 않도록 하도록해서 손해를 입지 않게끔 해야 할 텐데요. 

 

 오늘은 하락장세여서 매수가 많이 이뤄지지 않아, 지난번 처럼의 시뮬레이션 결과를 따로 내지 않겠습니다. 

 

 이때까지는 빗썸 Pubilc API 만을 사용하여, 계정 정보가 없더라도 빗썸에서 제공하고 있는 코인 시세 정보를 이용하여 가상으로 매수/매도를 진행했었는데요.

 

 이제 실질적으로 빗썸 Private API 를 이용하여, 계정 정보와 연동하여 실질적으로 잔고조회, 매수, 매도를 하는것을 시도해 볼까합니다.

 

 이번 포스팅에서는 빗썸 Private API 소개, 계정 연동, 잔고조회 까지 진행하도록 하겠습니다.

 

Private API

 우선, 빗썸 API 를 모아둔 링크 주소를 공유드립니다.

https://apidocs.bithumb.com/

 

No.1 가상자산 플랫폼, 빗썸

가상자산 거래소, 렌딩, 스테이킹, 예치, 비트코인, 이더리움, 리플, 비트코인캐시, 라이트코인, 비트코인 골드, 이오스, 이더리움클래식, 퀀텀, 체인링크, 실시간 시세, 쉽고 안전한 거래

www.bithumb.com

 

 빗썸 API 는 크게 Rest API / WebSoket API 로 나뉘고, Rest API는 또 Public API 와 Prviate API로 나눠진다고 보시면 됩니다. Rest / WebSocket 에 대한 내용은 추후에 WebSocket 관련 내용을 포스팅할때 또 언급드릴 기회가 있을거 같습니다.

 

 1~7번까지의 포스팅에서는 Public API 만 사용했었고, 이제부터는 Private API를 사용해 볼까합니다. 두종류의 API의 가장큰 차이점은 "계정연동" 에 있습니다. 

 

 Public API는 누구나 동일하게 얻을 수 있는 정보이며, Private API는 실질적으로 매수/매도/잔고조회를 할려면 개인의 계정에 연동되어야 얻을 수 있는 정보를 구분 해둔거라고 보시면 됩니다.

 

빗썸 Private API 신청하기

 먼저 빗썸을 로그인한뒤, 자신의 계정으로 Private API를 활성화를 해야 합니다.

 상세한 공식 가이드는 아래 링크를 참조해주십시오.

https://www.bithumb.com/customer_support/info_guide?seq=1901&categorySeq=205 

 

No.1 가상자산 플랫폼, 빗썸

가상자산 거래소, 렌딩, 스테이킹, 예치, 비트코인, 이더리움, 리플, 비트코인캐시, 라이트코인, 비트코인 골드, 이오스, 이더리움클래식, 퀀텀, 체인링크, 실시간 시세, 쉽고 안전한 거래

www.bithumb.com

 공식 가이드에 맞추어 하나씩 진행해보도록 하겠습니다.

 

 1) 로그인 후 상단 메일 주소 선택 -> 계정 관리 -> 거래 관리 -> API 관리로 이동합니다.

 2) API 활성화 항목 접근 (접근 허용) 항목에서 KRW출금, 가상자산 출금은 비활성화 하고, 나머지를 활성화 합니다.

 3) 보안 비밀 번호를 똭 입력하고, 아래 보안 인증에서 ARS 인증을 진행합니다.

 ( 빗썸 공식 ARS 번호가 KT 후후에 스팸 등록이 되어있네요?? - 전화를 받아줍니다...)

 4) API KEY 생성 버튼을 누르면, 아래와 같이 유의사항을 한번 읽고, 확인 버튼을 누릅니다.

 자주 사용하지 않으면 자동 비활성화 처리도 되나 보네요.

 

5) Connect Key와 Secret Key 가 발급이 되었습니다. 

 앞의 유의사항에 있듯이, Secret Key 를 꼭 다른곳에 저장해놓으시기 바랍니다.

 

6) 활성화를 선택하면, 한번더 유의 팝업이 뜹니다. 승인하기를 누르겠습니다.

 

 7) 그러면 웹페이지 상에서 Secret key 가 안보이게 됩니다.!

꼭 5) 6) 순번에서 Secret Key 를 다른곳에 저장해야 하는 이유가 여기에 있습니다.

 

 8) 활성화 인증을 메일 인증으로 한 단계 더 수행합니다. 

 계정 정보에 메일으로 API KEY 활성화 메일이 수신되며, 해당 메일에서 다시 API 활성화를 진행합니다.

 

 9) 드디어 빗썸 Private API 가 활성화가 되었습니다.

 활성화/비활성화 버튼이 비활성화로 변경되었음을 확인하실 수 있습니다.

 

잔고 조회

 이제 API도 발급 받았으니, 잔고를 조회 해볼 순서입니다.

 

 우선, 코드 부터 공유드립니다. con_key 와 sec_key 는 위에서 발급 받은 개인 계정을 사용해야 합니다.

import pybithumb
import time

con_key = "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
sec_key = "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"

bithumb = pybithumb.Bithumb(con_key, sec_key)

won = 0

for ticker in pybithumb.get_tickers() :
    balance = bithumb.get_balance(ticker)
    if balance[0] > 0 :
        print(ticker, "-", "보유수량", format(balance[0],'f'), ", 평가금액", format(balance[0] * pybithumb.get_current_price(ticker),'f'))
        won = won + balance[0] * pybithumb.get_current_price(ticker)
    
    time.sleep(0.1)

print ( "총 원화 자산 :", won + balance[2])

 

아래 코드가 잔고를 조회 할 수 있는 API입니다.  발급 받은 키 값을 이용하여, bithumb 객체를 생성하고, 이에 해당 객체를 통해서 원하는 종목의 잔고를 조회할 수 있습니다.

bithumb = pybithumb.Bithumb(con_key, sec_key)
balance = bithumb.get_balance(ticker)

 

 balance 변수는 4개의 값을 가지고 있는 튜플 형태로 리턴되며, 

 [0] : 가지고 있는 코인 종목의 보유 수량

 [1] : 가지고 있는 코인 종목의 현재 거래 중인 수량 ( 매도 신청을 했다 던지..)

 [2] : 보유 중인 총 원화 

 [3] : 주문에 사용된 원화 ( 현재 원화로 매수 주문 중인 원화 ) 를 의미합니다.

 

ticker 를 통해서 현재 모든 종목을 순차적으로 검색을 해서, 코인 잔고 수량이 0 이상이 것에 대해서 코인 종목, 보유 수량, 원화 평가 금액을 출력하고, 원화 평가 금액을 총합을 하여 마지막에 보유 원화가 얼마인지 출력하는 코드입니다.

 

결과 값

 아래 결과 값 처럼 잔고가  조회가 되는 모습입니다.

 

 리플, 비트코인골드에 팔리지 않는 매우 소수의 수량을 보유 하고 있으며, (이거 어떻게 깔끔하기 0으로 만드나요?)

 이프스 (WOZX) 에 한화 약 15만원 치 매수 한 상태입니다.

15만원이 15억이 되는 날까지 한번 도전 해보겠습니다!! 중간에 포기 하지 않기를 스스로 다독여야 할거 같습니다.

 

다들 성투하십시오!! 

 

 

 

 

728x90
반응형

댓글