지난번에 발급받은 API Key를 바탕으로 특정 코인을 매수/매도를 해보겠습니다.
2022.06.12 - [Programming/Crypto] - [Basic] Upbit API Key 발급하기
2022.06.12 - [Programming/Crypto] - [Basic] pyupbit 활용 - 코인 정보 및 현재가/매수/매도 호가 가져오기
- Reference :
https://github.com/sharebook-kr/pyupbit
API Key 불러오기
이 글에서 API Key를 pickle로 저장을 했었습니다. 저장한 Key를 불러보면 다음과 같이 부를 수 있습니다.
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 Class에 key들의 정보를 담은 값들을 지정합니다. 이후에 이를 바탕으로 잔고 조회나 주문이 가능합니다.
시장가로 매수해보기
buy_market_order() method를 활용하면 시장가로 바로 체결이 됩니다. 10000원만큼의 비트코인을 시장가로 매수한다는 뜻입니다.
print(upbit.buy_market_order("KRW-BTC", 10000))
print('BUY!!!!')
시장가로 매도해보기
매도를 하기 위해서는 얼마만큼 배도를 할 지, 매수한 코인의 보유 수량을 알아야 합니다. 보유한 수량을 알기 위해서는 아래와 같은 method를 활용합니다.
print(upbit.get_balance("KRW-BTC")) # arguments = ticker
그 후, sell_market_order() method를 활용하면 시장가로 바로 체결이 됩니다. 만약에 분할매도를 하고 싶다면 btc_balance값을 원하는 횟수만큼 나누면 됩니다.
btc_balance = upbit.get_balance("KRW-BTC") # 해당 티커 보유수량을 할당
print(upbit.sell_market_order("KRW-BTC", btc_balance))
print('sell!!!!')
성공적으로 매도된 것을 알 수 있습니다.
지정가로 매수해보기
사용하는 원리는 시장가와 상당히 비슷하지만, 지정가로 매수/매도하기 위해서는 기준이 되는 가격이 필요합니다. 아래코드는 현재 금액을 부르고, 2% 싼 가격에 매수 주문을 넣는다는 뜻입니다.
# 현재 금액
btc_now_price = pyupbit.get_current_price("KRW-BTC")
# 매수하고 싶은 금액
buy_amount = 10000
# ticker, 타점, 수량(매수하고 싶은 금액/현재가)
upbit.buy_limit_order("KRW-BTC", btc_now_price * 0.98, buy_amount/btc_now_price)
글을 쓰는 시점에서 비트코인 가격이 27,750,000원인데 2%싼 가격에 주문이 들어간 것을 알 수 있습니다.
매도는 마찬가지로 buy_limit_order() 대신 sell_limit_order()를 이용하면 됩니다.
미체결 주문 조회 및 취소
현재 주문이 들어간 것에 대한 정보는 get_order() 를 이용합니다.
upbit.get_order("KRW-BTC")
Run 하면 미체결된 주문 id와 각종 정보(가격, ticker, 수량 등)가 있음을 알 수 있습니다. 비트코인을 0.00036036개만큼 현재가보다 2% 싸게 주문을 넣었다는 뜻입니다.
취소를 하기 위해서는 id가 필요합니다. 그래서 다음과 같이 수행합니다. 주문한 코인이 1개뿐이라서 index를 지정하였습니다. 추후에 전체 취소하려면 나중에 주문한 것만큼 loop를 돌며 취소하면 될 것 같습니다.
order = upbit.get_order("KRW-BTC")
order[0]['uuid']
upbit.cancel_order(order[0]['uuid'])
미체결된 주문이 사라진 것을 알 수 있습니다.
다음 글에서는 차트 데이터에 대해 살펴보겠습니다.
아래는 블로그 주인장의 토스 익명 후원 링크입니다. 글이 도움되거나 흡족스러웠다면 후원해주시면 감사하겠습니다.
'Programming > Crypto' 카테고리의 다른 글
pyupbit 활용 - 암호화폐 데이터 부르기 (0) | 2022.07.01 |
---|---|
pyupbit 활용 - 계좌 잔고 확인하기 (0) | 2022.06.26 |
pyupbit 활용 - 코인 정보 및 현재가/매수/매도 호가 가져오기 (0) | 2022.06.12 |
pyupbit 소개 및 설치 (0) | 2022.06.12 |
업비트(Upbit) API Key 발급하기 (0) | 2022.06.12 |