프로그램 개발 & Defi

프로그램 개발 진척도(2021/09/30)

도깨비사장 2021. 9. 30. 11:29

1. 초기 기업의 데이터 삽입 틀 (엑셀)

아래의 사진 잘보이지는 않지만, 기업이 속한 산업, 설립연도, 직원수, PIPE투자자 정보, ~2027년까지의 매출/영업이익/순이익/잉여현금흐름 예상치, 특허, 링크드인, 글래스도어, 홈페이지, 위키, 공장 증설시기/매출 발생시기(SOP), 구독여부, 트위터 계정, 우선도, 참고, 화폐, 등등 초기 분석에 필요한 정보를 모두 정리한 파일이고, 프로그램이 읽을 수 있도록 나만의 규칙으로 만들었다.

2. SEC 크롤링

SEC로 부터 직접 분기별 보고서에서 원하는 재무제표 정보를 뽑아 보기 쉽게 정리해주는 기능을 구현했다. 아직 조금 더 보완해야할 구석이 있고, 생각보다 쉽지 않았다. 재무제표의 곂치는 항목을 처리하는 것이 가장 어려웠다. 현재도 고생중... 또한 세부사항도 파악할 수 있게 업그레이드 중이다. SEC_CRAWLER라는 이름의 파이썬 파일이다. 야후 파이낸스에서 가져와도 되지만 앞으로의 확장성과 유연성을 고심끝에 직접 가져오기로 마음먹었다.+

3. 몽고DB

웹크롤링 같이, 순간순간 추가하거나 변경해야하는 내용이 많은 프로세서에 적합한 데이터 베이스이다. SQL을 사용해도 문제는 없었을 것이지만 앞으로의 확장성을 생각해 고심끝이 골랐다. 나중에는 클라우드로 이용이 가능하도록 유료 버전으로 변경할 예정이다. 프로그램이 완벽히 작동한다면, corporation이라는 DATABASE안에 cik로 이름지어진 콜렉션이 위치하는 식이며,

각각의 콜렉션을 들어가면, 앞에서 말한 엑셀로 정리한 초기 데이터가 META_DATA라는 이름으로 DOCUMENT화 되어 있고, 년도+분기의 이름으로 계속 매분기별 데이터 쌓이는 구조이다.

그리고 분기별 데이터 도큐먼트 그안에는 아래처럼

모든 주식마다 동일한 항목으로 정리되어 있다. 즉 어떤 주식은 재무제표를 보면 Total revenue라고 되어있고, 어떤 주식은 그냥 Revenue, 애플의 경우에는 Net sale로 되어있는데, 내 프로그램에서는 다 하나의 이름으로 통일되어 검색이 용이하다. 그러나, 통일화 시키는 게 생각보다 쉽지 않았고, 지금도 개선중이다.

4. 밸류에이션

현재 가장 메인으로 진행중인 작업인데, 다모다란 교수의 Investment valuation이라는 책의 내용으로 프로그램으로 녹이는 작업을 하고 있다. 막상 한번 다 공부했었지만 프로그램으로 바꿔서 하려니 새롭고, 직접 사용해보니 재밌는 것 같다. 아마 내년까지는 꼬박해야하는 작업일 것 같다. 연구실 활동과 투자 연구로 바빠, 여력이 많이 없다. RATIO_SELECTION이라는 딕셔너리를 보면 구할 수 있는 값들이 있다. WACC 나 재투자율등 아직 구현해야할 것이 산더미이다.

5. 비서기능

주가가 급격히 상승하거나, 하락하거나, 혹은 뉴스가 나오면 헤드라인을 정리해서 텔레그램으로 보내주는 비서 기능도 만들고 있다. 그리고 기업의 현재가치와 주가 간의 괴리를 얼마나 되고, 과거의 매출 차트 등 물어보면 대답해주는 기능도 구현하는 것을 생각하고 있다. 매번 분기 리포트가 나왔나 확인할 수는 없기 때문에, 비서 기능도 중요하다.

 

6. 프론트 엔드(미래)

내부적으로 데이터 처리하는 백엔드를 계속 구현하고 있고 구현해 왔는데, 그래서 이 구현한 값들을 어떻게 효율적으로 보여줄 것이며 어떤 포맷으로 보여줘야하는가가 큰 문제이다. 종래에는 그냥 PyQt로 프로그램을 제작하는 것으로 했지만 막상, 평소에는 스마트폰을 더 많이 보기도 하고, 앱으로 만드는 것도 생각중이다. 리액트 네이티브를 쓰면 안드로이드도 ios도 동시에 개발가능하다고 들어서 고민중이다.