-
퀀트 프로젝트 | 파이썬으로 전자공시시스템 DART에서 재무제표 불러오기 OpenDartReaderCapital/Quant 2025. 11. 28. 18:00반응형
1. OpenDartReader

OpenDartReader 라이브러리 전자공시 OpenDART에서 API를 제공하는 만큼, 사용자들이 API를 원활하게 활용할 수 있도록 별도의 개발가이드를 제공하고 있다. 개발가이드를 참고하여 프로그램을 작성하면 기업공시를 자동으로 수집할 수 있다. 하지만 아직 API 사용이 익숙하지 않은 초보자들은 개발가이드를 참고하더라도 프로그램을 작성하기 어려워 진입장벽이 높은 편이다. 한편, OpenDartReader 라이브러리는 전자공시 OpenDART의 API를 통해 기업공시를 불러오는 오픈소스로, 개발가이드에 비해 진입장벽이 낮은 편이라 많이 사용되고 있다. 해당 라이브러리는 아래 명령어를 명령 프롬프트에 입력하여 설치할 수 있으며, 아래 링크로 접속하면 OpenDartReader 라이브러리에 대한 설명과 사용방법을 확인할 수 있다.
pip install opendartreaderGitHub - FinanceData/OpenDartReader: Open DART Reader
Open DART Reader. Contribute to FinanceData/OpenDartReader development by creating an account on GitHub.
github.com
2. 파이썬 라이브러리 설치
OpenDartReader 라이브러리로 기업공시를 표 형태로 다루기 위해서는 몇 가지 라이브러리를 추가로 설치해야 한다. 인터넷에 연결된 상태에서 명령 프롬프트에 아래 명령어들을 하나씩 입력하는 것으로 설치할 수 있다.
pip install pandas pip install numpy3. 프로젝트
3.1. 전자공시시스템 DART 오픈 API 인증키 신청
퀀트 프로젝트 | 전자공시시스템 DART 오픈API 인증키 신청
1. 전자공시시스템 전자공시시스템(Data Analysis, Retrieval and Transfer System, DART)은 한국거래소에 상장한 기업의 공시 서류를 온라인으로 조회할 수 있는 시스템이다. 상장 기업이 재무제표를 포함
vedacube.tistory.com
3.2. 코스피 코스닥 종목코드 목록 생성
퀀트 프로젝트 | 파이썬으로 코스피 코스닥 종목코드 불러오기 FinanceDataReader
1. 코스피 코스닥 종목코드 불러오기 지금까지 퀀트 전략을 공부했다면 이제 전략을 직접 구현해보자. 전략을 구현하기에 앞서 투자하고자 하는 주식 시장의 모든 상장 종목과 종목코드를 알아
vedacube.tistory.com
3.3. 전자공시시스템 DART에서 재무제표 수집
# 라이브러리 추가 import OpenDartReader import pandas as pd import numpy as np import time # API 객체 생성 api_key = 'DART에서 발급 받은 인증키로 해당 문자열을 대체하세요' dart = OpenDartReader(api_key) # 저장된 종목코드 불러오기 try: code_data = pd.read_excel('01_KRX_stock_list.xlsx') code_data = code_data['Code'].tolist() except FileNotFoundError: print('KRX_stock_list.xlsx 파일이 없습니다. 이전 코드를 먼저 실행해주세요.') code_data = [] # 재무재표 연도와 항목 정의하기 year = 2024 financeIndex = ['자산총계', '자본총계', '부채총계', '당기순이익', '^매출(?:액)?$', '영업활동.*현금흐름'] # 종목코드별 DART 재무재표 불러오기 print('Starting...') table = pd.DataFrame(columns=financeIndex, index=code_data) for idx, firm_code in enumerate(code_data): print(idx + 1, '/', len(code_data)) result = dart.finstate_all(firm_code[1:], year) for index in financeIndex: try: table.loc[firm_code, index] = int(result[result['account_nm'].str.replace(' ', '').str.contains(index, regex=True)]['thstrm_amount'].to_list()[0]) except: table.loc[firm_code, index] = None time.sleep(0.3) table.columns = ['자산총계', '자본총계', '부채총계', '당기순이익', '매출액', '영업활동현금흐름'] # 재무재표 저장 table.to_excel('06_financeTableDart.xlsx') print('Completed!')06_financeTableDart.xlsx0.15MB
[함께 읽으면 좋은 페이지]
퀀트 프로젝트 | 파이썬 기반 네이버페이 증권 주가 크롤링
1. 네이버페이 증권 주가 크롤링 가치 지표와 추세 지표를 직접 계산하려면 해당 종목의 주가 정보가 필요하다. 이때 네이버페이 증권에서 제공하는 정보를 활용하면 임의의 종목에 대해서 특정
vedacube.tistory.com
파이썬이란?
1. 프로그래밍 언어 컴퓨터가 작업을 수행하기 위해서는 논리적인 순서에 맞게 명령문이 나열된 작업지시서를 사람으로부터 전달 받아야 한다. 하지만 컴퓨터는 0과 1로 구성된 기계어(machine
vedacube.tistory.com
참고문헌
- GIL's LAB. (2022). 손에 잡히는 퀀트 투자 with 파이썬. 위키북스.반응형'Capital > Quant' 카테고리의 다른 글
퀀트 프로젝트 | 파이썬으로 신마법공식 PBR+GP/A 전략 구현하기 (0) 2026.01.16 퀀트 프로젝트 | 파이썬 기반 네이버페이 증권 주가 크롤링 (0) 2025.12.19 퀀트 프로젝트 | 전자공시시스템 DART 오픈API 인증키 신청 (0) 2024.11.16 투자 지표: 계량투자의 종목 선택 기준 (5) 2024.11.11 퀀트 프로젝트 | 파이썬으로 PER+PBR 전략 구현하기 (1) 2024.11.10