목차
728x90
반응형
Summary
지난 게시물에서 업비트 자동 매매 프로그램을 만들기 위해서 필요한 환경을 구성해 보았습니다.
이어서 이번 게시물에서는 업비트 자동 매매 프로그램 만들기 2탄 업비트 사이트에서 정보를 조회하는 방법입니다.
혹시 파이썬 설치 / VSCode 설치 / 업비트 API 키 발급이 안되어 있으신 분들은 이전 게시물을 확인해주세요.
[Python] - (Python) 업비트 자동 매매 프로그램(1) - 환경구성
0) vscode 에서 업비트 API 연동하기
- 우선 API 사용을 위해 API 키를 발급받을 때 Access Key, Secret Key를 "Key.txt" 파일에 저장
- 터미널에서 필요한 모듈을 설치
pip install pyupbit - 업비트 API 모듈 import 및 Upbit Key 연동
import pyupbit
### 거래할 코인 symbol
coin = "KRW-XRP"
### API 키 파일 참조
with open("key.txt") as f:
access_key, secret_key = [line.strip() for line in f.readlines()]
### 업비트 연동
upbit = pyupbit.Upbit(access_key, secret_key)
위 코드는 기본적으로 기재한 뒤 코드를 작성 하겠습니다.
1) 현재 보유금액 조회
- 보유 현금 조회
upbit.get_balance("KRW")
def get_balance_cash():
return upbit.get_balance("KRW")
print(get_cur_balance())
2) 현재가격 조회
- 특정 코인의 현재 가격 조회
pyupbit.get_current_price(ticker)
def get_cur_price(ticker):
return pyupbit.get_current_price(ticker)
print(get_cur_price(coin))
참고로 거래할 코인의 티커명은 사전에 알아두셔야합니다.
import requests
url = "https://api.upbit.com/v1/market/all"
res = requests.get(url).json()
ticker_list = {}
for i in res:
name = i['korean_name']
ticker = i['market']
if ticker.startswith("KRW"):
ticker_list[name] = ticker
# 전체 항목 조회
print(ticker_list)
# 코인 이름으로 ticker 찾기
print(ticker_list['리플'])
3) 현재 코인 보유 수량 조회
- 특정 코인의 현재 보유 수량 조회
upbit.get_balance(ticker)
def get_balance_coin(ticker):
return upbit.get_balance(ticker)
print(get_balance_coin(coin))
4) 평균 매수가 조회
- 특정 코인의 평균 매수 가격 조회
upbit.get_avg_buy_price(ticker)
def get_buy_avg(ticker):
return upbit.get_avg_buy_price(ticker)
print(get_buy_avg(coin))
5) 주문 (미체결)정보 조회
- 특정 코인의 미체결 된 주문 정보 조회
upbit.get_order(ticker)
또는
upbit.get_order(uuid)
def get_order_info(ticker):
try:
orders = upbit.get_order(ticker)
if "error" in orders[0]:
return None
return orders[-1] # 마지막 주문건에 대한 정보 리턴
except Exception as e:
print(e)
return None
# info는 원하는 symbol 을 입력하거나, 주문의 uuid 를 입력
print(get_order_info(info))
- get_order 구문 파악
ticker_or_uuid = 조회할 ticker(주문 전체 조회) 또는 uuid(단일 조회)
state = 현재 상태 (생략가능)
limit = 출력할 주문 정보 개수 (생략가능)
get_order(ticker_or_uuid='KRW-XRP',
state='wait',
limit=100)
결과는 리스트 형태로 되어있습니다. 리스트의 인덱스는 주문 역순입니다.
가장 최근 주문 정보는 리스트의 마지막에 위치합니다.
각 리스트의 내용은 dictionary 형태로 되어있습니다.
해당 dictionary 내용은 주문의 정보를 나타냅니다.
항목(키) | 설명(값) |
uuid | 주문의 고유 식별자 |
side | 주문 타입 ('ask'는 매도 / 'bid'는 매수 주문을 의미) |
ord_type | 주문 유형 (예: 'limit'는 한도 주문을 의미) |
price | 주문 가격 |
state | 주문 상태 (예: 'wait'는 대기 중인 주문을 의미) |
market | 주문이 발생한 시장 (예: 'KRW-XRP'는 한국 원화로 리플을 거래하는 시장을 의미) |
created_at | 주문 생성 시간 |
volume | 주문 수량 |
remaining_volume | 남아있는 주문량 |
reserved_fee | 예약된 수수료 |
remaining_fee | 남아있는 수수료 |
paid_fee | 지불된 수수료 |
locked | locking 금액 또는 자산 |
executed_volume | 실행된 주문량 |
trades_count | 거래 횟수 |
오늘은 이렇게 API를 활용한 자산 / 가격 / 코인정보 등을 조회하는 방법을 알아보았습니다.
다음 게시물에서는 주문하는 방법을 알아보도록 하겠습니다.