자동매매를 제공하는 거래소가 늘어나고 있습니다.
제가 사용해본 곳은 kucoin인데요. main menu에서 trading bot을 선택하면 trading봇을 선택할 수 있습니다. 기본적인 classic grid를 선택하여 돌려보았습니다. trading할 종목 고르고, 매매에 관련된 몇몇 파라미터를 선택하면 알아서 매매를 합니다. 결과가 궁금하시죠? 대부분의 자동매매가 그렇듯이 매매 대상인 코인이 오르면 수익이 나고, 내리면 손실이 납니다. ㅠㅠ

 

개인적으로 가입하여 돌려보지는 않았지만 빗썸에도 오토트레이딩 기능이 있습니다.

업빗에는 자동매매 기능이 아직은 보이지 않는군요. 이런 것을 보면 빗썸이 확실히 공격적으로 영업을 하는 것 같습니다.

 

그래서.. 이전에 한참 자동매매 개발할 때 만들어 둔 자동매매 프로그램을 기동해보았습니다. 이 프로그램은 스팀이 200원 정도, 스달이 1000원 정도 할 때 돌렸다가 스팀 가격이 급등을 하는 바람에 중지했습니다.

자동매매는 가격이 박스권에서 움직여야 수익이 나는 구조이므로, sbd 10,000원 정도면 돌려볼만 할 것 같습니다. 1000원 하던 sbd이 10,000원이 넘었지만 왠지 더 떨어질 것 같지 않은 이 느낌이 맞아야할텐데요.

일단은 스달에 대하여 아래 조건으로 자동매매 설정을 했습니다.

투입수량 : SBD 500개 매수 시작가 : 10,400원 매수 후 매도가 : + 500원 매도 후 매수가 : -500원 매수 최저가 : 9,000원 # 9,000원 이하면 더 이상 매수 안함 매수 최고가 : 12,000원 # 12,000원 이상에서는 매수 안함. 매도만 500원 단위로 함 매수 단위 : 100개

그동안 열심히 모든 스달을 재원으로 공급하여 돌려보았습니다.

오예!! 돌리자마자 매매가 한번 되었습니다.

 

하지만 4/22일 대폭락이 오면서 SBD 가격도 폭락을 하였습니다. 원래 거래 조건이 9,000원 이하에서는 추가 매수를 중지하였기 때문에 더 이상 추매는 없었습니다. 하지만 암호화폐 시장이 이 정도 하락으로 끝날 것 같지 않아서 추가 매수하고 자동매매를 계속하기로 하였습니다.

 

하한선을 6000원을 설정하고 다시 돌리기 시작했습니다. 9000원까지 매도할 수 있도록 600개를 추가로 매수했습니다.

그랬더니.. SBD는 나름 매매가 되고 있습니다. SBD이 다시 9000원으로 쭉 가는 것 보다 왔다 갔다를 반복하면서 올라가는 것이 수익면에서는 좋습니다.

 

이렇게 돌리기를 벌써 1주일이 지났습니다. 지난 1주일 간의 성적입니다.

 

아래 그래프에서 보듯이 윗꼬리와 아래꼬리가 길수록 매매가 많이 됩니다. 다행히 변동성이 꽤 있었군요.

 

 

그럼 지난 1주일 동안 매매 결과를 보도록 하겠습니다.

3일 정도 변동성이 잘 나와서 매매가 많이 되었습니다. 반면에 4일 동안은 하루에 2-3번 정도 거래가 되었고요.
결과론적으로는 중간에 열심히 매매한 것보다 그냥 매수 후 보유한 것이 더 좋은 결과가 나옵니다. 그 이유는 5,990원에 매수한 것이 큰 역할을 한 것 같습니다. 당연한 이야기지만 저가에 산 후 가격이 50% 이상 올랐으니 장기 보유하는 경우가 수익이 날 수 밖에 없습니다.

트레이딩에는 정답이 없습니다. 결국 수익이 나는 방법이 정답이 되겠죠. 지금까지 결과를 보면 나름 만족합니다. 앞으로 변동성이 더 크지고 현재 가격대에서 박스권을 형성한다면 자동매매가 유리할 것 이고, 만약 SBD가 급등을 한다면 장기 보유가 더 유리합니다.

물론 장기 보유라 함은 끝까지 들고 가는 것을 의미합니다. 언제까지 들고 갈지는 개인의 인내심의 크기겠죠. 당분간은 같은 로직으로 자동매매를 계속 돌려보도록 하겠습니다.

반응형

설정

트랙백

댓글

그동안 전략 시뮬레이션을 개발하는 과정을 기술하였는데요. 이제는 실제 매매를 해 보겠습니다.

 

이글에서는 upbit에서 자동매매를 개발하는 과정을 기술합니다.

우선 실제 매매를 위해서는 거래소에서 API key를 받아야 합니다. upbit 거래소에 로그인 한 후 고객센터/Open API 안내/OPen API 사용하기를 누른 후 access키와 secret 키를 받아야 합니다.

 

 

 

이렇게 받은 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 파일이 다운되면 개발할 곳에 압축해제하시면 됩니다. 

 

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에서 특정 전략으로 자동매매를 하는 방법을 기술하도록 하겠습니다.

 

반응형

설정

트랙백

댓글