책 쓰는 엔지니어

자동 투자 시스템을 제작하다 (1) 본문

코딩하는 공익

자동 투자 시스템을 제작하다 (1)

halfbottle 2021. 2. 8. 16:29
728x90
반응형

청년들이라면 모두 공감할 테지만, 지금은 정말 희망을 찾기 힘든 시대다. 자산가치는 빠르게 상승하고 있는데 금리는 바닥에 머무르고 있다. 이제는 도무지 노력으로 자본소득을 따라잡을 수 없는 세상이 되어버렸다는 뜻이다. 오죽하면 <20대가 죽을 때까지 벌어도 집을 살 수 없는 이유> 따위의 컨텐츠가 도처에서 쏟아지고, 많은 이들의 공감을 사고 있겠나.

 

우울한 세상에서 살아남으려면 자산의 대표격인 부동산 가치의 상승 속도보다 더 빠른 속도로 자산을 늘려 나가야 한다. 결국 답은 투자밖에 없다는 이야기다.

 

그런데 장기투자를 하자니 청년들은 돈이 없다. 10년이고 20년이고 묵혀서 500% 수익을 볼 수 있다 하더라도 시드 자체가 워낙 적기 때문에 그다지 동기부여가 되지 않는다. 단타를 하자니 리스크가 너무 높다. 이런 상황에서 우리는 어떤 전략을 택해야 살아남을 수 있을까?

 

정해진 답이 있겠냐만, 필자는 컴퓨터에게 매매를 대신 시켜 보기로 했다. 요즘 클래스101을 비롯한 다양한 교육 플랫폼 업체에서 자동 투자 프로그램 만들기 강좌를 출시하고 있다. SNS만 접속하면 그런 광고가 뜨는 걸 보니 거액의 광고비를 집행하고 있는 것 같다. 기성 플랫폼이 자기 돈을 쓰면서 수요를 발굴해 줬으니 다행이다.

 

잘 차려진 상에 숟가락만 얹으면 되는 상황이니.

 


팔짱을 끼고 눈을 감은 채 잠시 고민을 했다. 요즘 젊은이들이 가장 관심을 가지는 투자처는 아무래도 암호화폐와 주식, ETF로 좁힐 수 있을 것 같다. 주식과 ETF는 사실상 같은 도구를 사용해 매매를 할 수 있을 것 같으므로 큰 틀에서는 암호화폐와 주식 자동 거래 시스템을 만들면 좋을 것 같았다.

 

그래서 코인원 거래소를 통한 암호화폐 자동 거래 소프트웨어를 만들기로 했다. 명색이 자동 트레이딩 시스템인데 그럴싸한 이름이 필요하지 않겠나? 믿을만한 친구들에게 자문을 요청했다.

 

아 제발...

 

괜히 물어봤다. 코인을 자동으로 거래하는 소프트웨어니 "코인오토" 라고 이름을 정했다. 

 

콜라를 한 캔 가져와 컴퓨터 앞에 앉았다. 자, 나홀로 해커톤 시작이다.

 

로고 제작 화면

 

 

<로고 제작 소요시간 : 약 10분>

일러스트레이터를 활용해 로고도 슥 슥 만들어줬다. "Coin"이라는 글자만 바꾸면서 하나의 톤으로 여러 소프트웨어에 돌려막기를 할 생각이다. 코인을 자동으로 거래하는 도구가 <코인오토>였으니 주식 자동 거래 소프트웨어는 <스톡오토>로 지으면 적당할 것이다.

 

UI 제작 화면

 

<UI 제작 소요시간 : 약 30분>

UI는 PyQt5를 활용해 슥슥 만들었다. PyQt5를 활용해 만든 소프트웨어는 오픈소스로 공개해야 한다. 필자는 이 프로그램을 유료로 판매할 생각이 없고, 소스코드까지 모두 공개해버릴 생각이므로 마음껏 PyQt를 활용했다.

 

코딩하며 남긴 카톡 캡처

 

<핵심 기능 구현 소요시간 : 약 1시간>

 

 

Coinone API Documentation

 

doc.coinone.co.kr

 

 

이후 코인원 API를 활용하여 핵심 기능을 구현했다. 암호화폐 거래소나 증권사에서는 거래용 API를 제공하는 경우가 많다. API로 제작된 자동거래 시스템은 비교적 높은 빈도로 거래를 하기 때문에 수수료를 더 많이 거둘 수 있으며, 관련 서드파티 소프트웨어가 잘 되어 있으면 새로운 고객을 유치할 수 있기 때문이다.

 

여튼 코인원에서 제공한 API 설명서를 활용하여 비교적 수월하게 코드를 짤 수 있었다. 다만 코인원에서 제안한 예제 코드는 httplib2라는 모듈을 활용하여 통신을 주고받는데, 이 모듈을 requests 모듈로 교체했다. 처음 보는 라이브러기가 낯설기도 했고, requests로 수정할 경우 코드가 훨씬 짧아지는 등의 이점이 있었다.

 

코인원에서 거래되는 모든 코인을 등록하고 아래 기능들을 구현했다.

 

    (1) 코인 현재 가격 조회

    (2) 계좌 잔고 조회(현금 및 코인)

    (3) 매수/매도주문

    (4) 잔고 전량 매도 / 전액 매수

   

매매 로직은 간단하다. 무릎에서 사서, 어깨에서 판다!

 

매수 단가와 매도 단가를 입력하면 시스템이 아래와 같이 작동한다.

 

  (1) 1초에 2회 현재 코인 가격을 불러온다.

  (2) 사용자가 입력한 매수 단가보다 코인 가격이 싸다면 시장가로 전액 매수한다.

  (3) 사용자가 입력한 매도 단가보다 코인 가격이 비싸다면 시장가로 전액 매도한다.

 

횡보장에서 내려갈때 사서 올라갈때 판매하는 단순하고 무식한 전략이다. 코드를 테스트하는 과정에서 코인의 등락을 기다릴 수 없어 비싸게 사서 싸게 팔면서 코드를 테스트했다. 총 400원 잃었다. 흑, 내 돈.

 

 

 

<핵심 기능과 UI를 연동시키는 작업 소요시간 : 약 1시간>

이 과정이 가장 지루하고 어려웠다. PyQt5에서 복잡한 작업을 수행하려다 보면 자꾸만 프로그램이 뻗어버린다. 이걸 해결하는 데 많은 시간을 쏟았다. 

 

결과적으로 대충 3시간 안에 프로그램을 만들고 주변 친구들에게 자랑까지 마칠 수 있었다. 

 

 

페이스북 <생활코딩> 그룹에 게시한 글

 

실제로 이 프로그램을 돌려서 발생한 수익과 매매내역 인증 게시물을 페이스북에 올렸더니 많은 분들께서 관심을 가지시더라. 자동 투자를 통한 수익 창출에 대한 수요는 확실히 존재하는것 같다.

 

수요가 존재한다면 충족시켜 주는 것이 인지상정 아니겠는가?

 

공식런칭 해버렸지 뭐야

 

 

 

Money AUTO

December 2020 자산 자동관리 툴 제작 주식투자를 시작하며 하루종일 잔고창을 들여다보는 습관이 생겼습니다. 나중에는 조금 더 편하게 잔고를 확인하기 위해 국내외 주식, ETF, 가상화폐, 예적금

needleworm.github.io

 

 

이왕이면 압축파일만 툭 던져주는것 보다는 격식을 갖춘 랜딩페이지를 만드는 편이 사람들에게 설득력이 있을 것 같아 웹페이지도 하나 뚝딱 만들었다.

 

암호화폐 자동 거래 시스템의 이름이 <코인오토> 였으니, 그보다 더 큰 전체적인 프로젝트의 이름은 <머니오토>로 잡았다. 코인오토 로고를 돌려막기 해서 로고까지 뚝딱!

 

머니오토 로고

 

이리하여 머니오토 프로젝트가 출발하게 되었다. 추후 조금 더 상세한 개발 후기와 함께, 자동 투자 프로그램 사용 방법과 머니오토의 철학 등을 담은 글로 돌아오도록 하겠다.

 


머니오토의 모든 서비스는 무료입니다.

 

 

 

 

Money AUTO

December 2020 자산 자동관리 툴 제작 주식투자를 시작하며 하루종일 잔고창을 들여다보는 습관이 생겼습니다. 나중에는 조금 더 편하게 잔고를 확인하기 위해 국내외 주식, ETF, 가상화폐, 예적금

needleworm.github.io

 

728x90
반응형
Comments