카테고리 보관물: Python

Lendit 봇 만들기 – 2

기본적인 기능은 모두 완성하였다. 지난 12시간동안 8만원 정도의 가치를 하는 80여개의 채권을 성공적으로 매수하였다. 프로그램을 코딩하면서 생각해본 점들을 정리해보았다.

under 100MB

개관

주석을 제외하면 100줄도 안되는 파이썬 스크립트로 원하는 목표를 달성하였다. 렌딧 마켓의 채권을 구매 금액의 역순으로 정렬된 값 10개를 요청하고, 특정 금액 미만의 채권을 매수한다. 요구하는 기능의 복잡도도 낮고, 그마저도 조금은 투박하게 짰다. 그렇다고 해서 난관이 없었던 것은 아니었다.

  • 로그인

로그인 구현은 상당히 간단하였다. 고민할 필요 없이 본인의 계정과 비밀번호를 서버에게 건네주는 것이 끝이였다. 이전에 파이썬을 이용한 웹 사이트 로그인을 해 본 경험이 있다면 쉬웠을 것이다.

  • 텔레그램

NAS의 도커 안에서 프로그램을 실행시킬 계획이었다. 때문에 프로그램의 상태를 확인하는 것은 어려웠고, 로그를 스마트폰으로 내보낼 방법을 찾았다. 이에 부합하는 것은 텔레그램이라는 메신저였다. 텔레그램을 불러오고, 봇을 정의한 다음 콘솔창에 출력하듯이 메시지를 보내주는 것이 끝이었다. 입력을 받아 여러가지 명령을 중간에 내릴 수 있었지만, 지나치게 복잡해지는 것을 피하기 위하여 생략했다.

  • Docker

도커는 정말 훌륭한 서비스다. 다만 별다른 고려 없이 사용했더니, 시간대가 서울이 아니었고, Python 코드 실행에 있어 조금은 부자연스러웠다. 순전히 내 잘못이었다. 스파게티 코드가 되어버린듯 한 NAS로부터 분리되어 사용할 수 있다는 점은 상당한 장점이다.

  • Request Payload

가장 큰 난관이었다. 원하는 채권을 장바구니에 담으려고 하는데 담기지가 않았다. data를 post한 경험은 많았지만 이런 경우는 처음이었다. 잘 살펴보니 보통의 경우와 달리 Request Payload라는 항목 안에 데이터가 담겨있었다.(크롬 개발자 네트워크 분석 도구에서..) 처음 보는 항목과, 검색해봐도 상당히 적은 정보에 당황했다. 하지만 여기저기 찾아보고 뜯어보니 결론은 간단했다. 보통의 data와 동일하지만, json형식으로 넘기는 것만이 차이였다. post할때 header에 json도 넘기겠다고 알려(?) 주는 것으로 해결했다.

  • 1시간만의 오류

프로그램을 가동한지 1시간만에 오류가 발생하여 멈추었다. 알고 보니 오픈 베타 서비스를 종료하고 공식 오픈하면서 소소한 수정이 있었다. 덕분에 아침에 급히 수정하게 되었다. 이후 12시간 이상 실행중이나 현재까지는 이상이 없었다.

  • 시장의 크기

어제는 서비스 오픈일이라 조금은 매수할 수 있는 물량이 많지 않았나 추측한다. 보수적으로 하루에 5만원, 채권 평균 기간 3개월이라고 생각하면 200만원 좀 넘는 정도로밖에 유지가 안된다. 그래도 NAS전기값은 벌 수 있지 않을까..?

Lendit 봇 만들기 – 1

LENDIT-BOT v0.1.0..?

렌딧 거래 봇(LENDIT-TRADER)의 경우, 렌딧마켓이 현재 오픈베타서비스중이기 때문에 공개 계획이 없다.

렌딧은 참 좋은 서비스다. 채무자에게는 더욱 낮은 금리의 이자를, 렌딧은 중개 수수료를, 채권자는 적금 대비 높은 수익률을 기대할 수 있다. 하지만 생각해봐야 할 것이 하나 있다. 기존의 금융권이 멍청하지 않은 이상, 채무자에게 매기는 이자의 경우 합리적인 이유가 있을 것이다. 만약 특정한 금융 회사가 과도한 이자율을 책정할 경우, 당연히 채무자는 해당 금융 서비스를 이용하지 않을 것이다. 어떤 식으로 이자율을 책정하는지는 모르지만, 지나치게 과도한 이자율을 책정하기에는 무리가 있다고 추측할 수 있다.

렌딧에 납부하는 플랫폼 이용료의 경우, 채권자가 기존의 금융권처럼 직접 채무자 심사를 하는 것도, 채권 추심 활동을 하는 것도 아니기 때문에 기존 금융권 대비 불리하다고 말할 수 없다. 하지만 저 금리의 차이는 채권자가 떠맡아야 하는 리스크다.

유일하게 유리한 점이라면, 소액의 채권으로 절세 효과를 낼 수 있다는 점이다. 넉넉하게 생각했을 때 약 2%.

그렇다면 3% 정도의 차이를 어떻게 따라잡을 수 있을까? 라는 고민에 눈에 들어온 것이 투자자 수익률 분포다. 이 그래프가 어떻게 보이는가? 대략 24개월까지 수익률 분포가 떨어지다가 그 이후로 상승하는 추세를 쉽게 발견할 수 있다. 여기서 개월 수라는 것이 채권의 평균 경과 기간이라는 점을 고려하면, 채무의 1/2 정도(안전하게는 2/3)를 상황한 채무자의 경우 원금을 상환할 가능성이 상당히 크다는 점을 알 수 있다.

그래서 어느 정도 채무를 상환한 채권을 판매하는 렌딧마켓에 눈을 돌리게 되었고, 시장규모가 작은 탓에 거래 봇을 만들 계획을 세웠다.