-
퀀트 프로젝트 | 파이썬 기반 CompanyGuide 재무비율 ROA, ROE 크롤링Capital/Quant 2024. 4. 5. 18:00
1. 재무비율 크롤링
재무비율 이번 프로젝트에서는 CompanyGuide에서 제공하는 재무비율을 살펴볼 것이다. 아래 링크로 접속하면 CompanyGuide에서 제공하는 재무비율을 볼 수 있다. 링크를 따라 접속하면 해당 종목의 연도별 유동비율, 부채비율, ROA, ROE 등이 정리되어 있다. 종목코드를 바꿔가면서 해당 페이지를 크롤링하면 모든 종목의 재무비율을 불러올 수 있을 것이다. 이번 프로젝트에서는 앞서 만들었던 종목코드 파일을 불러온 뒤 CompanyGuide 재무비율 페이지에서 모든 종목의 재무비율, 특히 ROA와 ROE를 자동으로 크롤링하는 기능을 파이썬 코드로 구현해보자.
삼성전자(A005930) | 재무비율 | 기업정보 | Company Guide
삼성전자 005930 | 12월 결산 | <!-- SamsungElec | --> 홈페이지 홈페이지http://www.samsung.com 전화번호 전화번호031-200-1114 | IR 담당자 031-200-1114 주소 주소경기도 수원시 영통구 삼성로 129 (매탄동) KSE 코스
comp.fnguide.com
2. 프로젝트
2.1. 코스피 코스닥 종목코드 목록 생성
퀀트 프로젝트 | 파이썬으로 코스피 코스닥 종목코드 불러오기 FinanceDataReader
1. 코스피 코스닥 종목코드 불러오기 지금까지 퀀트 전략을 공부했다면 이제 전략을 직접 구현해보자. 전략을 구현하기에 앞서 투자하고자 하는 주식 시장의 모든 상장 종목과 종목코드를 알
vedacube.tistory.com
2.2. 재무비율 ROA, ROE 크롤링
# 라이브러리 추가 import requests import pandas as pd import io import time # 재무비율 ROA, ROE 크롤링 함수 def crawling_financeRatio(firm_code): url = 'https://comp.fnguide.com/SVO2/ASP/SVD_FinanceRatio.asp?pGB=1&cID=&MenuYn=Y&ReportGB=D&NewMenuID=103&stkGb=701&gicode=' + firm_code page = requests.get(url) table = pd.read_html(io.StringIO(page.text)) total_table = table[0] total_table = total_table.set_index(total_table.columns[0]) total_table = total_table.loc[['ROA계산에 참여한 계정 펼치기', 'ROE계산에 참여한 계정 펼치기']] total_table.index = ['ROA', 'ROE'] return total_table # 저장된 종목코드 불러오기 code_data = pd.read_excel('KRX_stock_list.xlsx') code_data = code_data[['Code']] # 재무비율 크롤링 for idx, firm_code in enumerate(code_data['Code']): print(idx + 1, '/', len(code_data['Code'])) try: # 종목별 재무비율 크롤링 try: sub_finance_table = crawling_financeRatio(firm_code) except requests.exceptions.Timeout: time.sleep(60) sub_finance_table = crawling_financeRatio(firm_code) # 종목별 재무비율 정리 for num, col in enumerate(sub_finance_table.columns): temp = pd.DataFrame({firm_code : sub_finance_table[col]}).T temp.columns = [[col] * len(sub_finance_table), temp.columns] if num == 0: temp_arranged = temp else: temp_arranged = pd.merge(temp_arranged, temp, how='outer', left_index=True, right_index=True) # 재무비율 통합 if idx == 0: financeRatio_table = temp_arranged else: financeRatio_table = pd.concat([financeRatio_table, temp_arranged]) except ValueError: continue except KeyError: continue # 재무비율 저장 financeRatio_table.to_excel('financeRatio_table.xlsx')
[함께 읽으면 좋은 페이지]
수익성 지표(1): ROE, ROA
1. 수익성 지표 두 기업이 같은 수익을 거두었더라도, 더 적은 자본으로 같은 수익을 창출한 기업이 더 우수하다고 볼 수 있다. 수익성 지표는 상대적으로 품질이 좋은 우량한 기업을 판별하기
vedacube.tistory.com
퀀트 프로젝트 | 파이썬 기반 CompanyGuide 재무제표 크롤링
1. CompanyGuide 재무제표는 기본적으로 전자문서 형태로 발행된다. 대부분의 전자문서가 크롤링 기능을 지원하지 않기 때문에, 실적을 확인하기 위해서는 재무제표 문서를 직접 읽어야 한다. 202
vedacube.tistory.com
파이썬이란?
1. 프로그래밍 언어 컴퓨터가 작업을 수행하기 위해서는 논리적인 순서에 맞게 명령문이 나열된 작업지시서를 사람으로부터 전달 받아야 한다. 하지만 컴퓨터는 0과 1로 구성된 기계어(machine
vedacube.tistory.com
참고문헌
- 박준규. (2019). 퀀트 전략 파이썬으로 세워라. 비제이퍼블릭.
반응형'Capital > Quant' 카테고리의 다른 글
퀀트 프로젝트 | 파이썬으로 PER+PBR 콤보 전략 구현하기 (1) 2024.11.10 퀀트 프로젝트 | 파이썬 기반 CompanyGuide 투자지표 PER, PBR 크롤링 (0) 2024.04.12 퀀트 프로젝트 | 파이썬 기반 CompanyGuide 재무제표 크롤링 (0) 2024.03.29 퀀트 프로젝트 | 파이썬으로 코스피 코스닥 종목코드 불러오기 FinanceDataReader (1) 2024.03.22 추세 지표(2): 정량 모멘텀 (0) 2024.03.15