opendata-finance-kr은 공공데이터로부터 자산분석에 자주 활용되는 주요 데이터를 선별, 추출 및 산출하여 재배포하는 오픈소스 프로젝트로, 학습, 교육 및 연구 목적의 사용자를 위해 활용도 높은 데이터셋을 제공하는 것을 목표로 합니다.
opendata-finance-kr은 공공데이터로부터 수집한 데이터를 분석에 활용하기 알맞은 형태로 재가공하여 배포하고 있습니다. 이 섹션에서는 공공데이터 원천을 밝히고 재가공된 데이터의 분류를 소개합니다. 데이터 수집 및 전처리 소스코드는 다음의 서브 프로젝트에서 확인할 수 있습니다.
데이터 원천은 다음과 같습니다.
- 금융위원회_KRX상장종목정보: 한국거래소 상장종목 오픈API로, 데이터 추출 대상 종목을 특정하기 위해 활용되었습니다.
- 금융위원회_주식시세정보: 상장종목의 가격데이터 오픈API로, 상장종목의 시가총액, 가격비율, 누적수익률 등 가격관련 데이터를 산출하기 위해 활용되었습니다.
- 재무정보 일괄다운로드: 분기별 재무제표구분별 데이터셋으로, 계정별 패널 데이터를 구성하고 관련 지표를 산출하기 위해 활용되었습니다.
사용자에게 제공되는 데이터는 원천, 전처리 방식, 배포 형태 등에 따라 다음과 같이 분류할 수 있습니다.
공공데이터포털 금융위원회_주식시세정보에서 제공하는 데이터를 일별 횡단면 csv 파일로 가공하여 재배포합니다.
공공데이터로부터 opendata-finance-kr이 선별, 추출 및 산출한 종목별 월별 (분기별) 주요지표 데이터로, 자체 open api 서비스로부터 일자별 횡단면 및 종목별 시계열 데이터를 제공받을 수 있으며, 지표별로 csv 패널데이터를 다운로드 받을 수 있습니다.
전자공시 OPENDART 시스템 재무정보 일괄다운로드 서비스로부터 분석에 자주 활용되는 계정을 선별 및 추출하여 연율화 (누적 1년)한 데이터 클래스로, 자산총계, 당기순이익 등이 이 클래스에 속합니다.
비표준 계정의 처리
OPENDART가 제공하는 데이터셋에서 각 기업이 보고한 재무계정은 K-IFRS 표준계정과목체계에 따라 작성된 표준계정과 그렇지 않은 비표준계정으로 분류할 수 있으며 이는 데이터셋 상 '항목코드'의 prefix로 식별됩니다. 기업간 비교가능성을 위해 데이터 추출시 비표준계정을 제외시키는 것이 바람직하지만, 계정에 따라 분석에 활용하기 어려울정도로 많은 관측치가 제외되는 문제가 발생합니다. 이에 차선책으로써 가능한 보수적인 기준으로 추출한 비표준계정을 단일계정 데이터에 포함시키고 있습니다. 현재 활용되고있는 비표준계정 추출논리는 다음과 같습니다.
- 표준계정과 동일한 '항목명'으로 보고된 비표준계정은 해당 표준계정과 동일 분류로 간주
전자공시 OPENDART 시스템 재무정보 일괄다운로드 서비스로부터 다수의 단일계정으로 특정할 수 있는 (혹은 단일계정으로 특정할 수 없는) 계정의 데이터를 추출하여 연율화 (누적 1년)한 데이터 클래스로, 장부가치 등이 이 클래스에 속합니다.
복합계정 예시
OPENDART가 제공하는 데이터셋에서 명확히 같은 성격을 가진 계정임에도 불구하고 기업의 특성에 따라 서로 다른 '항목코드'로 보고되는 경우가 존재하며, 이를 통제하기 위해 조건부로 데이터를 추출한 복합계정 클래스를 구성합니다. 예를 들어, 보통주와 우선주를 모두 발행하는 기업의 경우 보통주자본금(항목코드 'dart_IssuedCapitalOfCommonStock')과 우선주자본금(항목코드 'dart_IssuedCapitalOfPreferredStock'), 그리고 그 합인 자본금(항목코드 'ifrs-full_IssuedCapital')을 모두 보고하는 반면, 우선주를 따로 발행하지 않는 기업의 경우 보통주자본금이 자본금의 전부이기 때문에, 이를 자본금으로 보고할 수도 있고 보통주자본금으로 보고할 수도 있습니다. 이 때, 기업별 자본금 데이터를 얻기 위해 자본금의 항목코드로 데이터를 추출하면 '자본금을 보통주자본금으로 보고한 기업'의 데이터가 누락되는 문제가 발생합니다. 이에 자본금과 보통주자본금의 복합계정 '장부가치 (book equity)'를 정의하고, '자본금이 누락되면 보통주자본금으로 대체한다'는 조건부 추출논리를 통해 데이터를 구성합니다.
단일계정 및 복합계정 사이의 비율을 나타내는 데이터 클래스로, ROA, ROE 등이 이 클래스에 속합니다.
단일계정 및 복합계정을 가격변수로 나눈 비율을 나타내는 데이터 클래스로, 장부가치 (시가총액대비), 수익주가비율 (P/E의 역수) 등이 이 클래스에 속합니다.
수익률 모멘텀을 나타내는 데이터 클래스로, 누적수익률 (2/12) 등이 클래스에 속합니다.
기업의 규모를 나타내는 데이터 클래스입니다. 시가총액 등 주요 규모 지표들이 이 클래스에 속합니다.
종목별 월별 (분기별) 주요지표를 기준으로 구성된 요인 포트폴리오의 수익률 데이터입니다.
일반 사용자를 위한 python client와 좀 더 자유로운 사용을 사용자를 위한 open api 서비스를 제공합니다.
- email: [email protected]