[암호화폐] 업비트에서 실거래를 해 봅시다. by tradingideas

View this thread on steempeak.com
· @tradingideas ·
$84.49
[암호화폐] 업비트에서 실거래를 해 봅시다.
그동안 개발한 시뮬레이터를 기반으로 업비트 실거래를 해봅시다.
업비트에서는 websocket을 이용하여 실시간 체결 내역을 얻을 수 있습니다.
websocket을 이용하여 실시간 시세를 받는 방법은 아래 글에 기술해 놓았습니다.

https://money-expert.tistory.com/32?category=757693

그리고 그동안 개발한 시뮬레이터를 기반으로 실거래를 하는 프로그램을 만들어보겠습니다.

우선 upbit에서 API키를 받아야 거래가 가능합니다. API키를 받는 방법은 업빗거래소에서 고객센터/Open API안내로 간 후 Open API 사용하기를 누르면 됩니다.

![](https://cdn.steemitimages.com/DQmWLQsZPVA22uRdWYinP4rw6P9ukLQpqLup2JfD5q3tv8y/image.png)

이렇게 받은 API 키를 upbit.txt 파일에 아래와 같은 형태로 저장하면 됩니다.

acess key

secret key

 

옆에 있는 업비트 개발자 센터를 누르면 API관련 문서가 나옵니다. API에 대하여 궁금한 사항이 있을 때 확인하시면 됩니다.

 
github에서 찾아보면 upbit api를 사용하기 쉽게 class로 만든 소스가 많이 있습니다. 이중 많이 사용하는 pyupbit을 fork하여 사용하도록 하겠습니다.


 pyupbit에는 대부분의 API가 구현되어 있지만 몇가지 함수도 추가하고, return 값을 변경하기도 하였습니다.

이렇게 변경한 소스는 아래 위치에서 다운받을 수 있습니다.

github.com/multizone-quant/pyupbit


다만 위 링크에 접속한 후 아래 그림과 같이 브렌치인 my_upbit-0.2를 선택한 후 오른쪽에 있는 code download를 누릅니다. 소스 zip 파일이 다운되면 개발할 곳에 압축해제하시면 됩니다. 

![](https://cdn.steemitimages.com/DQmRnpD5P5f9X8tTRtfBghmPkgxvCSWA3xzyQsqpRVoYQgE/image.png)

pyupbit을 바로 사용할 수 있겠지만 앞으로 다양한 거래소 자동매매를 개발할 예정이기 때문에 거래소에 독립적인 나만의 API가 필요합니다. 그래서 여러 거래소의 특성을 무시하고, 매매에 필요한 정보를 얻을 수 있는 wrapper class를 별도로 개발합니다.

 

pyupbit class를 기반으로 class MyUpbit를 만들었습니다. 따라서 pyupbit을 직접 사용하지 않기 때문에 pyupbit에 있는 readme.txt는 무시하셔도 됩니다.

 

앞으로 개발할 upbit 거래소 자동 매매 프로그램은 아래 링크에서 다운받으시면 됩니다.

github.com/multizone-quant/system-trading-crypto

 

거래소 관련 class를 먼저 올렸습니다.

jpy_basic_ex.py : 거래소 base class
jpy_dummy_ex.py : simulation을 위한 dummy class
jpy_upbit.py    : pyupbit wrapper class
jpy_upbit.py가 앞으로 사용할 upbit 거래소에서 자동매매를 위한 class입니다. jpy_upbit.py 단독으로 실행을 하면 제공하는 API test를 하는 함수들이 동작을 합니다.

 

jpy_upbit에서 제공하는 함수들의 return 값은 list의 array로 구성되어 있습니다. 만약 오류가 생기면 [0]번째 항목에 'error'라는 key word가 있습니다. 오류 message는 ret[0]['error']['message']에 포함되어 있습니다.

 

실제 매매하는 함수는 아래 5가지입니다. 이중 시장가 주문의 경우에는 buy의 경우에는 매수할 금액을 입력하고, sell의 경우에는 매도할 수량을 입력하면 됩니다.

 
~~~
buy_limit_order(ticker, price, qty)
buy_market_order(ticker, amount)
sell_limit_order(ticker, price, qty)
sell_market_order(ticker, qty)
cancel_order(uuid)
~~~
 

아직 체결되지 않은 주문은 아래 함수를 사용합니다. 특정 코인에 대한 미체결 주문을 알 수 있을 뿐 아니라, 'ALL'을 입력하면 현재 체결되지 않은 모든 코인 정보를 얻어올 수 있습니다.

 
~~~
pending_orders(ticker)  # or 'ALL'
~~~
 

잔고를 확인하는 방법입니다. 'KRW'를 인자로 넣으면 현재 원화 잔고가 특정 암호화폐 (예, 'BTC')를 넣으면 해당 암호화폐가, 'ALL'을 인자로 넣으면 모든 잔고를 얻을 수 있습니다. 

return값은 list의 array로 [0]번째 값에 하나 혹은 복수 코인의 잔고가 들어있습니다. 또한 오류인 경우에는 'error' keyword가 포함되어 있습니다. 사용예는 jpy_upbit.py에 밑 부분에 있습니다.

잔고는 ['total']과 ['orderable'] 항목이 있는데, 'orderable'은 잔고 중 신규 주문이 가능한 수량입니다.

 

다음에는 이전에 기술한 전략 시뮬레이터와 거래소 API를 합쳐서 upbit에서 특정 전략으로 자동매매를 하는 방법을 기술하도록 하겠습니다.
👍  , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , and 529 others
👎  ,
properties (23)
post_id88,734,513
authortradingideas
permlinkb4ns5
categoryhive-101145
json_metadata{"tags":["hive-101145","sct-kr","sct-freeboard","s","union","mini","jjm","lgt","sct"],"image":["https:\/\/cdn.steemitimages.com\/DQmWLQsZPVA22uRdWYinP4rw6P9ukLQpqLup2JfD5q3tv8y\/image.png","https:\/\/cdn.steemitimages.com\/DQmRnpD5P5f9X8tTRtfBghmPkgxvCSWA3xzyQsqpRVoYQgE\/image.png"],"links":["https:\/\/money-expert.tistory.com\/32?category=757693"],"app":"steemcoinpan\/0.1","format":"markdown","canonical_url":"https:\/\/www.steemcoinpan.com\/@tradingideas\/b4ns5"}
created2020-12-11 13:49:00
last_update2020-12-11 13:49:00
depth0
children4
net_rshares201,590,517,772,786
last_payout2020-12-18 13:49:00
cashout_time1969-12-31 23:59:59
total_payout_value44.706 SBD
curator_payout_value39.788 SBD
pending_payout_value0.000 SBD
promoted0.000 SBD
body_length2,613
author_reputation1,239,747,763,028,945
root_title"[암호화폐] 업비트에서 실거래를 해 봅시다."
beneficiaries[]
max_accepted_payout1,000,000.000 SBD
percent_steem_dollars10,000
author_curate_reward""
vote details (595)
@upvu ·
<a href="https://coupa.ng/bHgxg2" target="_blank"><img src="https://ads-partners.coupang.com/banners/273554?subId=&traceId=V0-301-879dd1202e5c73b2-I273554&w=728&h=90" alt=""></a>
<div class='shr_item' style='position:relative; min-height:158px; margin:12px 0; padding:9px 10px; border:1px solid #dbdbdb; border-radius:1px; background-color:#fff;'><div class='item_dtl' style='position:relative; height:158px; padding:5px; border:1px solid #f0f1f4;'><span class='thmb' style='float:left; overflow:hidden; width:156px; height:156px; margin-right:9px; border:1px solid #e7e7e7;'><a href='https://qoo.tn/AoaPVR/Q163214049'><img src='https://steemitimages.com/240x0/https://gd.image-gmkt.com/li/061/293/1455293061.g_400-w-st_g.jpg' width='156' alt='' style='vertical-align: middle; border: 0 none;'></a></span><p class='tit' style='overflow:hidden; max-height:68px; margin-bottom:7px; line-height:17px; color:#000;'>[US$49.00](▼14%)[Nespresso]스타벅스 네스프레소 호환 캡슐 7종 / 120 캡슐 골라담기 / 20개씩 총 6종류 교차 선택 가능 / 중복 선택 가능 / 재고 확보 / 무료배송 / 개당 약 486원 최저가★</p><span class='url' style='position:absolute; left:170px; bottom:10px; display:block; font-weight:bold; color:#9197a3;'>WWW.QOO10.COM</span></div></div>
👍  
properties (23)
post_id88,734,541
authorupvu
permlinkre--b4ns5-20201211t135207667z
categoryhive-101145
json_metadata{"tags":["hive-101145","sct-kr","sct-freeboard","s","union","mini","jjm","lgt","sct"]}
created2020-12-11 13:52:09
last_update2020-12-11 13:52:09
depth1
children0
net_rshares488,735,675
last_payout2020-12-18 13:52:09
cashout_time1969-12-31 23:59:59
total_payout_value0.000 SBD
curator_payout_value0.000 SBD
pending_payout_value0.000 SBD
promoted0.000 SBD
body_length1,191
author_reputation1,778,279,410,038
root_title"[암호화폐] 업비트에서 실거래를 해 봅시다."
beneficiaries[]
max_accepted_payout1,000,000.000 SBD
percent_steem_dollars10,000
author_curate_reward""
vote details (1)
@sct.krwp ·
@tradingideas transfered 10 KRWP to @krwp.burn. voting percent : 91.82%, voting power : 60.46%, steem power : 1986659.70, STU KRW : 1200. 
@tradingideas staking status : 7500 KRWP
                                @tradingideas limit for KRWP voting service : 15 KRWP (rate : 0.002)
                                What you sent : 10 KRWP [49358459 - 2ecdea80274759de61867b6f4e6f691d756fa6ac]
properties (22)
post_id88,734,574
authorsct.krwp
permlinkre--b4ns5-20201211t135535885z
categoryhive-101145
json_metadata{"tags":["hive-101145","sct-kr","sct-freeboard","s","union","mini","jjm","lgt","sct"]}
created2020-12-11 13:55:36
last_update2020-12-11 13:55:36
depth1
children0
net_rshares0
last_payout2020-12-18 13:55:36
cashout_time1969-12-31 23:59:59
total_payout_value0.000 SBD
curator_payout_value0.000 SBD
pending_payout_value0.000 SBD
promoted0.000 SBD
body_length390
author_reputation9,872,893,322,408
root_title"[암호화폐] 업비트에서 실거래를 해 봅시다."
beneficiaries[]
max_accepted_payout1,000,000.000 SBD
percent_steem_dollars10,000
@uplus ·
흥미롭군요
properties (22)
post_id88,736,452
authoruplus
permlinkql6p4b
categoryhive-101145
json_metadata{"app":"steemit\/0.2"}
created2020-12-11 16:43:30
last_update2020-12-11 16:43:30
depth1
children0
net_rshares0
last_payout2020-12-18 16:43:30
cashout_time1969-12-31 23:59:59
total_payout_value0.000 SBD
curator_payout_value0.000 SBD
pending_payout_value0.000 SBD
promoted0.000 SBD
body_length5
author_reputation9,672,874,554,958
root_title"[암호화폐] 업비트에서 실거래를 해 봅시다."
beneficiaries[]
max_accepted_payout1,000,000.000 SBD
percent_steem_dollars10,000
@joueurgear ·
nice idea !
👍  
properties (23)
post_id88,739,035
authorjoueurgear
permlinkql76jt
categoryhive-101145
json_metadata{"app":"steemit\/0.2"}
created2020-12-11 22:59:54
last_update2020-12-11 22:59:54
depth1
children0
net_rshares277,205,554
last_payout2020-12-18 22:59:54
cashout_time1969-12-31 23:59:59
total_payout_value0.000 SBD
curator_payout_value0.000 SBD
pending_payout_value0.000 SBD
promoted0.000 SBD
body_length11
author_reputation3,004,538,530
root_title"[암호화폐] 업비트에서 실거래를 해 봅시다."
beneficiaries[]
max_accepted_payout1,000,000.000 SBD
percent_steem_dollars10,000
author_curate_reward""
vote details (1)