계좌잔고 조회하기
37
3 asked
계좌잔고 조회하기 했는데
보유수량 : 0.0
평가금액 : 0
평가손익 : 0
으로 나옵니다...
실제 업비트에 코인이 있는 상태인데 ! 매수평균가는 잘나오는데 보유수량, 평가금액, 평가손익은 왜 0으로 나올까요..?
open api 권한은
자산조회, 주문조회, 주문하기, 출금조회, 입금조회 만 해놓은 상태입니다
Answer 1
0
안녕하세요, 인프런 AI 인턴입니다.
유정인님, 업비트 API 권한 설정은 현재 상태라면 계좌 잔고 조회에 문제가 없어 보입니다.
업비트의 /v1/accounts 응답에서 보유 수량은 balance와 locked를 확인해야 합니다.
{
"currency": "BTC",
"balance": "0.001",
"locked": "0.000",
"avg_buy_price": "50000000"
}
따라서 보유 수량은 다음과 같이 계산하는 것이 안전합니다.
holding_quantity = float(account["balance"]) + float(account["locked"])
balance만 사용하면 주문에 묶여 있는 수량인 locked가 제외될 수 있습니다.
또한 업비트의 계좌 조회 API는 기본적으로 다음 정보만 제공합니다.
balance: 주문에 사용 가능한 수량
locked: 주문에 묶인 수량
avg_buy_price: 매수 평균가
평가금액과 평가손익은 API에서 직접 제공하지 않으므로 현재 시세를 별도로 조회하여 계산해야 합니다.
import requests
accounts = requests.get(
"https://api.upbit.com/v1/accounts",
headers=headers
).json()
for account in accounts:
currency = account["currency"]
balance = float(account["balance"])
locked = float(account["locked"])
avg_buy_price = float(account["avg_buy_price"])
holding_quantity = balance + locked
print(f"통화: {currency}")
print(f"보유수량: {holding_quantity}")
print(f"매수평균가: {avg_buy_price}")
예를 들어 BTC의 평가금액과 평가손익은 현재가를 조회한 뒤 다음처럼 계산할 수 있습니다.
market = "KRW-BTC"
ticker = requests.get(
"https://api.upbit.com/v1/ticker",
params={"markets": market}
).json()[0]
current_price = float(ticker["trade_price"])
evaluation_amount = holding_quantity * current_price
purchase_amount = holding_quantity * avg_buy_price
profit_loss = evaluation_amount - purchase_amount
print(f"평가금액: {evaluation_amount:,.0f}원")
print(f"평가손익: {profit_loss:,.0f}원")
특히 다음 부분을 확인해 보시기 바랍니다.
balance와locked를 모두 더하고 있는지 확인합니다.
- API 응답의
currency가 실제 보유 코인과 일치하는지 확인합니다.
BTC와KRW-BTC를 혼동하지 않았는지 확인합니다.
- 문자열로 반환되는 수량을
float또는Decimal로 변환했는지 확인합니다.
- 보유 코인을 찾을 때
balance > 0만 검사하고 있지 않은지 확인합니다.
- 평가금액과 평가손익을 계좌 조회 응답에서 직접 가져오려고 하고 있지 않은지 확인합니다.
먼저 아래 코드로 업비트에서 실제로 반환되는 원본 응답을 출력해 보시면 원인을 빠르게 확인할 수 있습니다.
from pprint import pprint
pprint(accounts)
원본 응답에서 해당 코인의 balance, locked, avg_buy_price 값을 확인했을 때 balance와 locked가 모두 0이라면 조회 중인 API 키 또는 계정이 실제 자산이 있는 계정과 다른 경우도 확인해 보셔야 합니다.
수강기간 연장 문의드립니다!
0
6
1
최빈값
0
10
1
수강 가이드라인
0
12
1
교재 문의
0
24
2
수강 연장 가능 여부 문의
0
32
2
강의 구매했는데 교재 필수일까요
0
24
2
수강기간 연장 가부 문의드립니다.
0
24
2
수강기간 연장이 가능한지 양해를 구하며 문의를 드립니다.
0
27
2
정처기 2026-3 실기 문의
0
57
2
정처기 실기 3회 컴싸 사용 여부
0
34
1
매수하기
0
32
2
작업형2 모의문제2에서 drop이랑 인코딩
0
34
2
모의고사 1 회 2번문제 중
0
51
2
26-2 이론문제 재탕
1
40
1
26-2년도 코드문제
0
29
0
26-2 코드문제
0
31
1
15분 48초 질문
0
42
2
26-1년도 이론문제 재탕
0
57
1
환경변수 기반 업비트 API 키 가져오기에서 none이 나옵니다ㅠㅠ
0
95
2
강의 자료 코드
0
103
2
dotenv 로드 실패
0
348
3
bot03.py 실행시 db 생성이 안 됩니다.
0
140
2
btc_data_1year.csv 파일 저장이 안됩니다.
0
200
3
자동매매 봇
0
136
1

