업비트 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번 내용을 그래프로 일별 시각화를 한다.
실현손익과 미실현손익을 다루는 부분은 응용편에서 한번 다루어보겠습니다. 다음 글에서는 차트 데이터를 불러오는 내용을 다루어보겠습니다.
'Programming > Crypto' 카테고리의 다른 글
AWS EC2 서버 설정하기 (0) | 2022.07.17 |
---|---|
pyupbit 활용 - 암호화폐 데이터 부르기 (0) | 2022.07.01 |
pyupbit 활용 - 코인 매수/매도하기 (1) | 2022.06.15 |
pyupbit 활용 - 코인 정보 및 현재가/매수/매도 호가 가져오기 (0) | 2022.06.12 |
pyupbit 소개 및 설치 (0) | 2022.06.12 |