일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- WTI
- 제다큐어
- WTI유
- 엘론 머스크
- 아모레퍼시픽
- 마법공식
- 반려견치매
- 중국증시
- DSP
- 중국경제
- 기업분석
- 퀀트
- 미국금리
- FOMC
- 넬로넴다즈
- Python
- 주식투자
- 국제유가
- 주가분석
- prometheus
- 뉴지스탁
- 뇌졸중
- 지엔티파마
- 금리인상
- 스크리닝
- 테슬라
- 코로나19
- 머신러닝
- 경제위기
- 유상증자
- Today
- Total
Data Analysis for Investment & Control
DAVID - 재무제표 데이터 수집 기능 추가 본문
주가 예측 및 기업 분석을 위한 데이터 수집 프로그램인 DAVID의 기능이 추가 되었다.
주가나 거래량 데이터만 가지고는 그 기업이 영업을 잘 하고 있는지, 안정적인 회사인지 등을 판단하기는 어렵다. 이런 기업 분석을 통해 투자 대상을 선별하는 작업을 하기 위해서는 분석에 필요한 재무정보가 필요하다. 한국 증권 거래소에 상장되어 있는 회사의 재무제표 데이터를 구하기는 어렵지 않다. 네이버나 다음 등과 같은 포털 사이트에서 상장 기업을 검색하면 재무제표 데이터를 볼 수가 있으며, 간단한 분석 지표를 검색할 수도 있다.
하지만 Prometheus에서 자체적인 기업 분식 및 지표 산출을 위해서는 알괄적인 기업 재무 데이터가 필요하다. 이런 정보를 제공해주는 곳 중에 하나는 FnGuide이다.
FnGuide에서 재무제표 데이터 수집
예전에는 FnGuide에서 제공하는 웹사이트의 재무제표 데이터를 html 파싱을 통해 수집했었다.
이런 방법에는 문제가 있는 것이, 웹 페이지 구성이 바뀌거나 웹사이트를 운영하지 않는다면 데이터 수집을 할 수 없으며, html 파싱하는 일 자체가 상당히 고역이라 그다지 다시 하고 싶지 않는 작업이라는 것이다.
FnGuide 홈페이지에서 재무제표 데이터를 엑셀 파일 형태로 제공하는 것을 발견했는데, 엑셀 파일을 핸들링 할 수 있는 라이브러리를 사용해 데이터를 수집할 수 있었다.
시스템 구조 설계
기존 UI를 확장하여 'FnGuide - 재무제표' 페이지를 추가했다.
FnGuide에서 제공하는 엑셀 데이터를 읽어 각 셀별로 데이터를 파싱하여 Prometheus의 시그널 데이터 포맷에 맞게 데이터를 입력하고 저장한다.
기본적인 구조는 위와 같다.
작업을 하다가 기업 분석을 위한 정보가 충분히 제공되지 않는다는 사실을 발견하였다. 이는 한국 거래소(KRX)에서 제공하는 데이터로 보충하는 코드를 구현했다.
UI 구성
기능이 향상된 DAVID의 UI는 아래와 같다.
우선 FnGuide의 재무 데이터 엑셀 파일을 열어 시그널 포맷에 맞게 데이터 변환 과정을 거쳐 메모리에 저장한다.
다음으로는 KRX의 상장 기업 정보가 저장되어 있는 파일을 열어 메모리에 저장된 시그널 포맷에서 비어있는 정보를 채운다.
시그널 포맷에 맞게 정보가 저장되면, XML 형식으로 데이터를 저장시키게 되는데, 이는 Prometheus에서 정해진 포맷에 맞게 읽어들여 분석을 하는데 사용된다.
향후 개선 사항들...
작업을 진행하다가 몇 가지 체크해야할 사항을 발견하였는데, 다음과 같다.
- 상장된 기업 중에 IFRS 규정에 따라 회계처리가 된 것과 아닌 것에 대한 구분
- 최근의 국제증권식별번호로 업데이트가 되어 있는지 확인이 필요
- 데이터가 올바른 포맷으로 저장이 되어 있는지 검증하기 위한 페이지 필요
다음 단계를 위한 기본적인 사항들은 진행이 된 것 같다.
추가 개선사항은 천천히 고민하고 다음 단계로 진행하자.
'Investment Assistant Tools > DAVID' 카테고리의 다른 글
DAVID - 주가 및 거래량 데이터 수집 프로그램 (0) | 2015.05.19 |
---|