-
[python][업비트] pyupbit 기본 함수IT/python 2021. 12. 12. 13:11
관련 포스팅: pyupbit와 talib을 이용한 코인 자동매매 프로그램
코인 거래소의 api는 확실히 증권사 api보다는 약 5만배 가량 사용하기가 편했다
이번 포스팅서는 코인 자동매매 프로그램을 구현하면서 사용했던 pyupbit의 함수들을 적고자 한다.
# 필요 라이브러리
######################################################################################
pyupbut (pip install pyupbit)
Name: pyupbit
Version: 0.2.21
Summary: python wrapper for Upbit API
Home-page: https://github.com/sharebook-kr/pyupbit
Author: Jonghun Yoo, Brayden Jo
Author-email: brayden.jo@outlook.com, jonghun.yoo@outlook.com, pyquant@outlook.com
License: UNKNOWN
Location: c:\users\home\anaconda3\envs\coin3\lib\site-packages
Requires: pandas, requests, pyjwt, websockets
Required-by:######################################################################################
# 코드
import pyupbit
ticker list in krw exchange
ticker_list = pyupbit.get_tickers(fiat="KRW") ticker_list
['KRW-BTC', 'KRW-ETH', 'KRW-NEO', 'KRW-MTL', 'KRW-LTC', 'KRW-XRP', 'KRW-ETC', 'KRW-OMG', 'KRW-SNT', 'KRW-WAVES', 'KRW-XEM', 'KRW-QTUM', 'KRW-LSK', 'KRW-STEEM', 'KRW-XLM', 'KRW-ARDR', 'KRW-ARK', 'KRW-STORJ', 'KRW-GRS', 'KRW-REP', 'KRW-ADA', 'KRW-SBD', 'KRW-POWR', 'KRW-BTG', 'KRW-ICX', 'KRW-EOS', 'KRW-TRX', 'KRW-SC', 'KRW-ONT', 'KRW-ZIL', 'KRW-POLY', 'KRW-ZRX', 'KRW-LOOM', 'KRW-BCH', 'KRW-BAT', 'KRW-IOST', 'KRW-RFR', 'KRW-CVC', 'KRW-IQ', 'KRW-IOTA', 'KRW-MFT', 'KRW-ONG', 'KRW-GAS', 'KRW-UPP', 'KRW-ELF', 'KRW-KNC', 'KRW-BSV', 'KRW-THETA', 'KRW-QKC', 'KRW-BTT', 'KRW-MOC', 'KRW-ENJ', 'KRW-TFUEL', 'KRW-MANA', 'KRW-ANKR', 'KRW-AERGO', 'KRW-ATOM', 'KRW-TT', 'KRW-CRE', 'KRW-MBL', 'KRW-WAXP', 'KRW-HBAR', 'KRW-MED', 'KRW-MLK', 'KRW-STPT', 'KRW-ORBS', 'KRW-VET', 'KRW-CHZ', 'KRW-STMX', 'KRW-DKA', 'KRW-HIVE', 'KRW-KAVA', 'KRW-AHT', 'KRW-LINK', 'KRW-XTZ', 'KRW-BORA', 'KRW-JST', 'KRW-CRO', 'KRW-TON', 'KRW-SXP', 'KRW-HUNT', 'KRW-PLA', 'KRW-DOT', 'KRW-SRM', 'KRW-MVL', 'KRW-STRAX', 'KRW-AQT', 'KRW-GLM', 'KRW-SSX', 'KRW-META', 'KRW-FCT2', 'KRW-CBK', 'KRW-SAND', 'KRW-HUM', 'KRW-DOGE', 'KRW-STRK', 'KRW-PUNDIX', 'KRW-FLOW', 'KRW-DAWN', 'KRW-AXS', 'KRW-STX', 'KRW-XEC', 'KRW-SOL', 'KRW-MATIC', 'KRW-NU', 'KRW-AAVE', 'KRW-1INCH', 'KRW-ALGO']
krw-btc ohlcv data
btc_ohlcv = pyupbit.get_ohlcv('KRW-BTC', interval='day') btc_ohlcv.info()
<class 'pandas.core.frame.DataFrame'> DatetimeIndex: 200 entries, 2021-05-27 09:00:00 to 2021-12-12 09:00:00 Data columns (total 6 columns): # Column Non-Null Count Dtype --- ------ -------------- ----- 0 open 200 non-null float64 1 high 200 non-null float64 2 low 200 non-null float64 3 close 200 non-null float64 4 volume 200 non-null float64 5 value 200 non-null float64 dtypes: float64(6) memory usage: 10.9 KB
btc_ohlcv
connect account
ac_key = '발급받은 access key' sc_key = '발급받은 scret key' upbit = pyupbit.Upbit(ac_key, sc_key)
load balances
upbit.get_balances()
[{'currency': 'KRW', 'balance': '32173.26928697', 'locked': '0.0', 'avg_buy_price': '0', 'avg_buy_price_modified': True, 'unit_currency': 'KRW'}, {'currency': 'BTC', 'balance': '0.00016406', 'locked': '0.0', 'avg_buy_price': '60951000', 'avg_buy_price_modified': False, 'unit_currency': 'KRW'}, {'currency': 'EOS', 'balance': '0.00000002', 'locked': '0.0', 'avg_buy_price': '3930', 'avg_buy_price_modified': False, 'unit_currency': 'KRW'}, {'currency': 'ADA', 'balance': '5.47945205', 'locked': '0.0', 'avg_buy_price': '1825', 'avg_buy_price_modified': False, 'unit_currency': 'KRW'}, {'currency': 'VTHO', 'balance': '1.39059119', 'locked': '0.0', 'avg_buy_price': '0', 'avg_buy_price_modified': False, 'unit_currency': 'KRW'}, {'currency': 'TRX', 'balance': '177.7812895', 'locked': '0.0', 'avg_buy_price': '112.4978', 'avg_buy_price_modified': False, 'unit_currency': 'KRW'}]
buy
symbol = 'KRW-BTC' budget = 10000 buy_order = upbit.buy_market_order(symbol, budget)
buy_order
{'uuid': 'ccfa1987-048f-4ccd-b2d4-ca9f8290439d', 'side': 'bid', 'ord_type': 'price', 'price': '10000.0', 'state': 'wait', 'market': 'KRW-BTC', 'created_at': '2021-12-12T10:43:11+09:00', 'volume': None, 'remaining_volume': None, 'reserved_fee': '5.0', 'remaining_fee': '5.0', 'paid_fee': '0.0', 'locked': '10005.0', 'executed_volume': '0.0', 'trades_count': 0}
check order
upbit.get_order(buy_order['uuid'])
{'uuid': 'ccfa1987-048f-4ccd-b2d4-ca9f8290439d', 'side': 'bid', 'ord_type': 'price', 'price': '10000.0', 'state': 'cancel', 'market': 'KRW-BTC', 'created_at': '2021-12-12T10:43:11+09:00', 'volume': None, 'remaining_volume': None, 'reserved_fee': '5.0', 'remaining_fee': '0.000305135', 'paid_fee': '4.999694865', 'locked': '0.610575135', 'executed_volume': '0.00016329', 'trades_count': 1, 'trades': [{'market': 'KRW-BTC', 'uuid': 'befb77f3-b03f-447c-bf53-32a2d5ffa3c3', 'price': '61237000.0', 'volume': '0.00016329', 'funds': '9999.38973', 'created_at': '2021-12-12T10:43:11+09:00', 'side': 'bid'}]}
sell
symbol = 'KRW-BTC' volume = 0.00016329 sell_order = upbit.sell_market_order(symbol, volume) sell_order
{'uuid': '609fdee4-389b-4853-b2b6-de5440bc1e78', 'side': 'ask', 'ord_type': 'market', 'price': None, 'state': 'wait', 'market': 'KRW-BTC', 'created_at': '2021-12-12T10:46:25+09:00', 'volume': '0.00016329', 'remaining_volume': '0.00016329', 'reserved_fee': '0.0', 'remaining_fee': '0.0', 'paid_fee': '0.0', 'locked': '0.00016329', 'executed_volume': '0.0', 'trades_count': 0}
check order
upbit.get_order(sell_order['uuid'])
{'uuid': '609fdee4-389b-4853-b2b6-de5440bc1e78', 'side': 'ask', 'ord_type': 'market', 'price': None, 'state': 'done', 'market': 'KRW-BTC', 'created_at': '2021-12-12T10:46:25+09:00', 'volume': '0.00016329', 'remaining_volume': '0.0', 'reserved_fee': '0.0', 'remaining_fee': '0.0', 'paid_fee': '4.99912335', 'locked': '0.0', 'executed_volume': '0.00016329', 'trades_count': 1, 'trades': [{'market': 'KRW-BTC', 'uuid': '20611e88-a4c0-44a5-9f1b-2c2abc781ae2', 'price': '61230000.0', 'volume': '0.00016329', 'funds': '9998.2467', 'created_at': '2021-12-12T10:46:25+09:00', 'side': 'ask'}]}
'IT > python' 카테고리의 다른 글
[python] 한컴뷰어 없이 hwp파일 pdf로 변환 (0) 2021.12.12 [python] 한컴뷰어 없이 hwp파일 텍스트 추출하기 (0) 2021.12.12 [python] konlpy 오류 해결 (0) 2021.12.07 [python] pyinstaller trojan 이슈 (0) 2021.12.07 [python] flask서버에서 클라이언트의 ip주소 알아내기 (0) 2021.12.02