이번 포스팅에서는 내 잔고 데이터를 불러오고, 이를 통해 나의 수익률과 평균 매입 단가를 알아보자. 이번 포스팅에서는 pyupbit라는 모듈을 통해 이를 구할 예정이니 만약, 해당 모듈이 설치되어있지 않다면 아래의 포스팅에 나와 있는 코드를 통해 설치하고 오는 것을 추천한다.
[업비트/자동매매] Python으로 쉽게 하는 매수/매도 : 비트코인 자동매매 프로그램 만들기
수익률을 구하는 방법에는 여러 가지가 있지만, 우리는 자동매매 프로그램을 만드는 것이 목적이기 때문에 체계적, 반복적으로 코드를 활용하기 위해 이를 함수의 형태로 만들어 보겠다. 그러기 위해서는 모듈을 통해 내 잔고 데이터를 불러올 수 있어야 한다.
내 잔고 데이터를 불러오자
import pyupbit
Upbit_AccessKey = "본인의 고유 Access Key"
Upbit_SecretKey = "본인의 고유 Secret Key"
# 업비트 객체를 만든다
upbit = pyupbit.Upbit(Upbit_AccessKey, Upbit_SecretKey)
# 내 잔고를 불러온다
balances = upbit.get_balances()
print("현재 내 잔고 현황 \n\n", balances)
실행 결과
'내' 잔고를 불러오는 과정이기 때문에 모듈을 통해 업비트 계정과의 연결다리를 만들어 주었다. 위의 이미지를 본다면, 리스트 안에 딕셔너리의 형태로 데이터들이 들어있는 것을 볼 수 있다. 이때 주의할 점은 key뿐만이 아니라 value의 자료형 또한 문자열 형태이기 때문에 이를 활용하는 과정에 계산이 포함된다면 형 변환을 해줄 필요가 있다.
간단하게 각각의 key가 뜻하는 것을 알아본다면 아래와 같다.
- currency : 코인의 이름(KRW는 원화)
- balance : 소유한 코인의 개수
- avg_buy_price : 평균 매입 단가
- unit_currency : 거래 화폐
여기서 우리는 avg_buy_price를 통해 평균 매입 단가를 알 수 있으며, 따로 현재 코인의 시세를 불러와 수익률을 구할 수도 있다. 하지만 우리는 이를 아래의 함수를 통해 나타내 보겠다.
수익률을 구해보자
def get_revenue_rate(balances, ticker):
revenue_rate = 0.0
for coin in balances:
# 티커 형태로 전환
coin_ticker = coin['unit_currency'] + "-" + coin['currency']
if ticker == coin_ticker:
# 현재 시세
now_price = pyupbit.get_current_price(coin_ticker)
# 수익률 계산을 위한 형 변환
revenue_rate = (now_price - float(coin['avg_buy_price'])) / float(coin['avg_buy_price']) * 100.0
return revenue_rate
print("현재 KRW-GAS의 수익률 : ", get_revenue_rate(balances, "KRW-GAS"))
실행 결과
참으로 처참한 결과... 사실 예전에 자동매매 돌리다가 어느새인가 실수로 남겨지게 된 잉여코인이다... (보는 재미가 있어서 일부러 내버려 두는 중)
다들 이렇게 본인만의 애완코인(?)을 하나씩 장만하는 것도 나쁘지 않다고 생각한다. 오히려 제물 느낌으로 나름 추천할 정도? 오늘은 간단하게 수익률을 구하는 함수를 만들어 보았다. 다음 포스팅에서는 매매하기 위한 조건을 체크하는 포스팅으로 돌아오도록 하겠다.
◆ 함께 보면 좋은 글
'웹 프로그래밍 > 프론트엔드' 카테고리의 다른 글
[HTML/CSS/JS] JQuery의 addClass와 removeClass : 엘리먼트에 클래스를 추가, 삭제해 보자 (0) | 2023.05.28 |
---|---|
[업비트/자동매매] Python으로 쉽게 평가금액 확인하기 : 매수금액을 구해보자 (0) | 2023.05.26 |
[HTML/CSS] 사이드바 메뉴 만들기 : 늘어나는 2차 메뉴 만들기 feat. overflow: hidden (0) | 2023.05.22 |
[HTML/CSS] Position (absolute와 relative) & z-index를 활용해 보자 (0) | 2023.05.19 |
[HTML/CSS] transform-origin & rotate를 사용하자 : 변신하는 아이콘 만들기 feat. position (0) | 2023.05.18 |
댓글