호돌찌의 AI 연구소
article thumbnail

 

업비트 API Key 불러와서 코인 별 잔고 및 정보를 확인하는 내용에 대해 기술해보겠습니다. 

 

 

 

계좌 확인하기


이 글에서 API Key를 pickle로 저장을 했었습니다. 저장한 Key를 불러보면 다음과 같이 부를 수 있습니다. 그 후 upbit.get_balances() 를 이용하여 확인을 합니다. 

 

import pickle
import pyupbit

with open('./keypair/upbit_secret_key.pkl', 'rb') as k:
    secret_key = pickle.load(k)
    
upbit = pyupbit.Upbit(secret_key['access key'], secret_key['secret key'])

upbit.get_balances()

 

아래처럼 원화가 100만원 정도 있는 것을 알 수 있고, 보유한 다른 코인들도 알 수 있습니다. list 안에 dictionary 형태로 있음을 알 수 있습니다. balance는 보유수량이고, avg_but_price는 평단가 입니다. 

dictionary 안에 있는 값들은 전부 string으로 읽기 때문에 추후에 type을 변환해주어야 합니다. 

 

 

보유 코인 수익률 계산하기


현재 가격에서 보유한 평단가를 뺀 다음, 평단가로 나누면 수익률이 나타납니다. 원화를 제외를 하여 현재 코인 가격을 읽은 다음 보유한 평단가를 가져와 계산을 하면 됩니다. 보유한 코인들에 대해 보유수량, 평단가, 현재가, 평단가, 수익률을 전부 조회 하는 내용입니다. 자세한 내용은 아래 주석을 참고하면 되겠습니다. 

 

jango_balance = upbit.get_balances()

# 보유한 코인들에 대해 보유수량, 평단가, 현재가, 평단가, 수익률을 전부 조회 
for coin_jango in jango_balance:
    coin_list = coin_jango['currency']
    
    # 원화는 제외
    if coin_list == "KRW": 
        continue
    print('--------------------------------------------------------------')
    # 티커, 수량, 평단가
    print(coin_list, coin_jango['balance'], coin_jango['avg_buy_price']) 
    
    # airdrop 받은 코인 등을 제외하기 위해서 임의로 예외처리함
    try:
        price = pyupbit.get_current_price("KRW-" + coin_list) # 원화마켓 코인 찾기
        print("now price : ", price)
        avg_price = float(coin_jango['avg_buy_price']) # 평단가 str > float type change
        print("avg price : ", avg_price)
        earnings_rate = 100 * (price - avg_price) / avg_price # 수익률 계산
        print("earnings_rate", earnings_rate)
    except:
        pass

 

 

 

응용할 부분


추후에 응용할 부분은 다음과 같이 생각할 수 있습니다. 

1. 일정 수익률을 넘거나 아래인 경우 지정가매도 또는 시장가매도

2. 일별로 원화(KRW)를 저장하여 증가분 및 실현손익 내용을 저장한다. 

3. 원화 및 보유한 코인들의 내용들을 바탕으로 미실현손익 내용을 저장한다. 

4. 2~3번 내용을 그래프로 일별 시각화를 한다. 

 

실현손익과 미실현손익을 다루는 부분은 응용편에서 한번 다루어보겠습니다. 다음 글에서는 차트 데이터를 불러오는 내용을 다루어보겠습니다. 

profile

호돌찌의 AI 연구소

@hotorch's AI Labs

포스팅이 도움이 되셨다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!