[암호화폐] 프로젝트#1 : 업비트 지정가 자동 매수/매도하기
스팀엔진에 관련한 개발을 시작한 이유가 LP를 해 보기 위함이었습니다. 그런데 SCT 거래 내용을 보면 매매가 활발하지 않고 호가 공백이 커서 LP 역할을 하기 힘이 들 것 같습니다. 또한 매수하고 싶은 분이 많은데, LP가 자꾸만 호가를 올리면 관종이 될 것 같은 불길한 예감이 들기도 합니다. 이런 관점에서 아직은 LP 역할을 할 시점은 아닌 것 같습니다.
그렇다고 손 놓고 놀 수는 없으니 일단 관련 개발은 시작해 봅니다.
매매가 가장 활발한 곳이 업비트죠. 그래서 업비트에서 LP에서 필요한 기본적인 자동 매매를 개발하는 작업을 시작합니다. 여기에서 자동매매란 정해진 가격에 매수 주문을 낸 후 매수가 되면 정해진 가격에 매도를 하는 방식입니다.
upbit API에 대해서는 제가 몇 번 글을 썼었는데요. 관련 내용을 모두 찾을 수가 없군요. 일단 찾은 것만 공유합니다[1][2]
처음부터 다시 시작해 봅니다.
[2] 글을 보시면 개략적인 내용이 정리가 되어 있지만 다시 한번 정리해 봅니다.
우선 upbit api를 사용하기 위해서는 upbit에 계정이 있어야 합니다. 지금은 신규 가입이 안 되니 기존 가입자만 api 주문이 가능합니다. 기존 upbit 가입자라면 upbit/mypage에가서 api용 kery를 받아야 합니다.
그리고 api관련 내용은 아래 사이트에서 확인이 가능합니다. 개발 언어별로 사용 예를 잘 정리가 되어 있습니다.
https://docs.upbit.com/v1.0.6/reference
github에 올라와 있는 아래 패키지를 이용했습니다.
https://github.com/sharebook-kr/pyupbit
지정가 자동매매를 위하여 필요한 기능은 지정가 매수/ 지정가 매도/체결결과 확인입니다.
우선 매수 및 주문입니다.
방법은 아주 간단합니다. upbit에서 받은 access, secret 키를 입력한 후 Upbit라는 클래스를 만든 후 매수/매도 주문 함수를 부르면 됩니다.
access = ''
secret = ''
upbit = Upbit(access, secret)
result = upbit.buy_limit_order("KRW-STEEM", 200, 10) # (ticker, price, volume):
print(result)
result = upbit.sell_limit_order("KRW-STEEM", 1000, 10) # (ticker, price, volume):
print(result)
미체결 주문 내역을 확인하는 방법은 아래와 같습니다.
orders = upbit.pending_orders("KRW-STEEM")
for order in orders[0] :
print(order['side'], "%8s"%order['price'], "%8s"%order['remaining_volume'], "%8s"%order['executed_volume'])
order의 구조는 아래와 같습니다. remaining_volume과 executed_volume 값을 보면서 얼마나 매수가 되고, 매도가 되었는지 판단이 가능할 것 같습니다.
방금 주문한 내용이 보입니다.
지정가 자동 매매를 위한 API는 모두 확인하였습니다. 매수 주문한 수량이 얼마나 매수가 되었는지, 매도한 수량이 얼마나 매도가 되었는지에 대한 정보를 바탕으로 방법을 고민해 보아야 할 것 같습니다.
스팀 가격이 연일 큰 폭으로 왔다 갔다 하고 있죠. 큰 변동성을 보이는 지금이야말로 지정가 매매하기 딱 좋은 시기로 보입니다.
[1] https://steemit.com/kr/@tradingideas/api
[2] https://steemit.com/sct/@tradingideas/upbit
jcar토큰 7월 구독 보팅입니다. 삼복 무더위, 건강하게 이겨나가세요. ^^
요런 코딩 재미있습니다. ㅋ
업비트는 체결 내역을 알려주는 api가 없어서 생각보다 복잡하군요.
Posted using Partiko Android
오 엔진내 LP 엄청 기대되는데요?! 아 그리고 트아님 INV 잘받았습니다. 감사합니다! ^^
LP는 위험도가 높아서 아주 소량만 재미로 해야할 듯 합니다.
Posted using Partiko Android
Thank you for your continued support towards JJM. For each 1000 JJM you are holding, you can get an additional 1% of upvote. 10,000JJM would give you a 11% daily voting from the 700K SP virus707 account.
Hi @tradingideas!
Your post was upvoted by @steem-ua, new Steem dApp, using UserAuthority for algorithmic post curation!
Your UA account score is currently 4.366 which ranks you at #2559 across all Steem accounts.
Your rank has improved 22 places in the last three days (old rank 2581).
In our last Algorithmic Curation Round, consisting of 116 contributions, your post is ranked at #86.
Evaluation of your UA score:
Feel free to join our @steem-ua Discord server