brunch

You can make anything
by writing

C.S.Lewis

by 한상훈 Jan 11. 2021

[오픈 소스] 업비트 가상화폐 트레이딩 봇

시장의 움직임을 감시하고, 자산을 자동으로 처리합니다.

지난 글들에서 업비트 API를 사용해 가상화폐 자동 매매 봇을 제작하는 방법과 알고리즘을 간단히 소개해봤습니다. 하지만 아쉬움이 좀 있었습니다. 아무래도 글로만 설명하다 보니 사용성이 떨어지는 것 같았습니다. 그래서 대단한 코드는 아니지만 제가 쓴 코드의 일부분을 오픈소스로 공유하고자 합니다.


이 코드를 사용하시면 웹 개발자분들은 Node만 사용하실 수 있어도 사용하는데 문제가 없을 거라 생각합니다. 간단히 코드를 돌려보면서 메커니즘을 익혀보시면 될 것 같습니다.




코드는 다음과 같은 디렉터리 구조를 가졌습니다.

action 디렉터리자신의 계좌 확인, 시장가 전량 매수, 시장가 전량 매도 등의 행동을 할 수 있습니다.


class 디렉터리는 거래에 필요한 여러 클래스를 만들어뒀습니다. 이 중에서 class/real 디렉터리에 있는 클래스는 실제 거래에 사용되고, 그 밖의 클래스는 실제 거래가 아닌 경우에도 사용됩니다.


config 디렉터리는 API 키 정보를 넣으시면 됩니다.


listenr 디렉터리시장의 움직임을 감시하는 코드입니다. 제가 샘플로 하나만 넣어뒀는데 여유가 있을 때마다 추가해둘 예정입니다.


maket 디렉터리거래에 사용되는 마켓 정보를 담은 json 파일을 넣었습니다. 이 역시 한국 원화로 거래하는 KRW 마켓 정보를 넣어뒀는데 다른 마켓도 넣어둘 예정입니다. 자신만의 마켓 목록을 만드시면 여기에 추가해두셔서 쓰시면 됩니다.


 util 디렉터리는 코드 전체에 쓰이는 유틸리티 함수들입니다. 코드 구성이 간단하고, 주석으로 설명을 달아두었으니 확인해주세요.


리스너 코드를 실행한 모습

이 코드를 사용하실 때는 당연한 얘기지만 README.md를 반드시 읽어주시고, 이 코드를 사용하시다가 문제가 생기더라도 저는 책임을 지지 않습니다. 매수, 매도와 관련된 코드는 신중히 사용해주세요!




위 코드는 오픈 소스입니다. 더 좋은 코드를 공유하고 싶으시면 리퀘스트를 보내주세요. 거래 알고리즘이나 백테스트 코드들을 함께 개발해도 좋을 거 같고, 공개를 원치 않으시면 코드를 가져가서 작업해보셔도 좋을 거 같습니다. 감사합니다.


p.s 초보 js 개발자 분들도 사용하실 수 있도록 ES6 변환이나 TS는 사용하지 않았습니다.




전문적인 트레이딩 봇 제작을 원하시면 제가 운영하고 있는 플렉스웹에서 솔루션을 제공하고 있습니다.

트레이딩 봇 또는 시장 리스너 제작에 관심이 있으시면 홈페이지 또는 이메일(contact@flexweb.io)로 연락 주세요. 어떠한 형태, 기능으로던 제작이 가능합니다. :)  

브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari