본문 바로가기
웹 프로그래밍/프론트엔드

[업비트/자동매매] Python으로 쉽게 평가금액 확인하기 : 매수금액을 구해보자

by me_in_sk 2023. 5. 26.
반응형

 

 

이번 포스팅에서는 우리가 소지한 코인의 매수금액과 총평가금액을 구하는 함수를 만들어보자. 이는 지난 포스팅에서 다루었던 잔고 데이터를 기반으로 구할 예정이니, 이에 대해 더 알고 싶다면 아래의 지난 포스팅을 참고하길 바란다.

 

 

[업비트/자동매매] Python으로 쉽게 하는 수익률 구하기 : 내 잔고 데이터를 알아보자

 

[업비트/자동매매] Python으로 쉽게 하는 수익률 구하기 : 내 잔고 데이터를 알아보자

이번 포스팅에서는 내 잔고 데이터를 불러오고, 이를 통해 나의 수익률과 평균 매입 단가를 알아보자. 이번 포스팅에서는 pyupbit라는 모듈을 통해 이를 구할 예정이니 만약, 해당 모듈이 설치되

me-in-journey.com


 

 

우선 우리가 소지한 코인의 매수금액을 구해보자. 우리가 실제로 보유한 코인에 대한 데이터가 필요하므로 모듈을 통해 업비트 계정과의 연결다리를 만들어야 한다. 추가로, 소지한 코인에 대한 데이터를 다루는 것이기에 먼저 우리의 잔고 데이터를 불러올 필요가 있다.

 

 

잔고 데이터를 불러오자

import pyupbit


Upbit_AccessKey = "본인 고유의 Access Key"
Upbit_SecretKey = "본인 고유의 Secret Key" 

upbit = pyupbit.Upbit(Upbit_AccessKey, Upbit_SecretKey)


balances = upbit.get_balances()

 

실행 결과는 위에 나와 있는 지난 포스팅에서 다루었으니 생략하도록 하고, 위의 balances에는 내가 보유한 코인들에 대한 잔고 데이터가 담기게 된다. 이러한 잔고 데이터 중에는 각 코인의 평균 매수금액이 포함되어 있으며, 마찬가지로 소지한 코인의 개수를 알 수 있다.

 

 

코인의 매수 금액을 알아보자

def get_coin_money(balances, ticker):
    coin_money = 0.0
    for coin in balances:
        coin_ticker = coin['unit_currency'] + '-' + coin['currency']
    
        if ticker == coin_ticker:
            coin_money = float(coin['avg_buy_price']) * float(coin['balance'])
            break

    return coin_money


print("내가 가진 KRW-GAS의 보유 금액(원) : ", get_coin_money(balances, "KRW-GAS"))

 

실행 결과

매수-금액
특정 코인의 매수금액

 

위의 이미지를 보면 오해할 수 있지만, 해당 코인은 지난 포스팅에서 소개했듯 나의 애완(?) 코인으로 실제로 나는 해당 코인을 0.2714492원어치 가지고 있다. (볼수록 하찮아서 귀엽지 않나요...?)

다음으로 우리의 총평가액을 구해 볼 차례이다. 우선 아래의 코드를 살펴보자.

 

 

총평가금액을 구해보자

def get_total_money(balances):
    total_money = float(balances[0]['balance'])    #보유한 원화를 통해 초기화

    for coin in balances:
        ticker = coin['currency']

        # 드롭 받은 코인은 제외
        if float(coin['avg_buy_price']) != 0:          
            coin_ticker = coin['unit_currency'] + '-' + coin['currency']
            now_price = pyupbit.get_current_price(coin_ticker)
            total_money += float(now_price) * float(coin['balance'])

    return total_money


print("총 평가금액(원) : ", get_total_money(balances))

 

실행 결과

평가-금액
총평가금액

 

성공적으로 우리가 가진 총평가금액을 확인할 수 있었다. 이를 통해 코인마다 매매할 금액의 비중을 조절할 수도 있고, 매매하던 도중 익절을 하거나 손절했을 시 프로그램을 통해 나에게 현재 평가금액을 메시지로 전송할 수도 있다. 뭐든지 활용을 하기 나름이기에 우리는 계속해서 다양한 기능을 알아보기로 하고 이번 포스팅은 여기서 마친다.

반응형

댓글