파이썬 FDR 패키지로 금융시장 분석 : 투자 유의 종목 걸러내는 방법

파이썬 FDR 패키지로 금융시장 분석 : 투자 유의 종목 걸러내는 방법

FinanceDataReader(FDR) 패키지는 주식, 환율, 원자재 등 다양한 금융 데이터를 쉽게 수집할 수 있는 강력한 도구입니다. 이번 글에서는 FDR 패키지를 활용하여 국내주식 전체 종목(KRX의 전체 데이터)을 가져온 후, 투자 주의 종목을 걸러내는 방법을 알아보겠습니다.

 

 


글의 순서

파이썬 FDR 패키지로 국내주식(KRX) 전체 데이터 가져오기
파이썬 FDR 패키지로 가져온 KRX 데이터 각 column의 의미
국내 주식 투자를 위해 주목해야 할 Dept 컬럼의 값 확인 방법
투자 주의 종목 걸러내는 방법


파이썬 FDR 패키지로 국내주식(KRX) 전체 데이터 가져오기

FDR 패키지를 사용하면 KRX에 상장된 모든 종목의 데이터를 쉽게 가져올 수 있습니다. FDR은 간단한 함수 호출로 국내외 다양한 금융 데이터를 제공하는데, 한국 주식 데이터도 쉽게 분석할 수 있게 해줍니다.

실습코드 01은 KRX에 상장된 전체 종목 데이터를 가져오는 간단한 예시입니다. fdr.StockListing(‘KRX’) 함수를 호출하여, 종목 코드, 종목명, 시가총액, 거래량 등의 기본 정보를 담고 있는 DataFrame을 가져올 수 있습니다. 실습코드 01에서는 전체 종목 중 5개 종목만 확인할 수 있도록 krx.head(5)를 사용하였습니다.






파이썬 FDR 패키지로 가져온 KRX 데이터 각 column의 의미

실습코드 01 실행결과에서 FDR 패키지로 가져온 국내주식 데이터 각 열(column)을 확인할 수 있는데요. KRX 데이터의 각 column의 의미를 이해하는 것이 투자 종목을 선정하는 첫 단계입니다. KRX 데이터의 주요 컬럼은 다음과 같습니다.

▶Code: 주식 종목 코드. 각 상장 종목에 부여된 고유한 6자리 숫자 코드입니다. 예를 들어, 삼성전자의 종목 코드는 “005930”입니다.
▶ISU_CD: 국제 증권 식별 코드(ISIN). 각 종목을 고유하게 식별할 수 있는 국제 표준 코드입니다. 예를 들어, 삼성전자의 ISIN 코드는 “KR7005930003″입니다.
▶Name: 종목명. 각 주식의 회사 또는 기업명을 나타냅니다. 예를 들어, “삼성전자”, “SK하이닉스” 등이 있습니다.
▶Market: 해당 종목이 상장된 시장을 나타냅니다. 예를 들어, “KOSPI”, “KOSDAQ” 등의 값이 있습니다.
▶Dept: 소속부. 해당 종목이 소속된 시장 내의 세부 구분을 나타냅니다. 예를 들어, ‘우량기업부’, ‘기술성장기업부’, ‘벤처기업부’ 등이 있습니다.
▶Close: 종가. 해당 종목의 거래 마지막 시점에서의 주가입니다. 일일 거래가 종료된 후의 주식 가격을 나타냅니다.
▶ChangeCode: 주가 변동 코드. 주식 가격이 변동하는 방향을 나타냅니다. 예를 들어, “1”은 상승, “5”는 하락을 의미할 수 있습니다.
▶Changes: 주가 변동폭. 전일 대비 주가가 얼마나 상승하거나 하락했는지를 나타냅니다.
▶ChagesRatio: 변동률. 전일 대비 주가 변동폭을 비율로 표시합니다.
▶Open: 시가. 거래일이 시작할 때의 주식 가격입니다.
▶High: 고가. 거래일 중 가장 높았던 주식 가격입니다.
▶Low: 저가. 거래일 중 가장 낮았던 주식 가격입니다.
▶Volume: 거래량. 거래된 주식의 총 수량을 나타냅니다.
▶Amount: 거래 대금. 거래된 주식의 총 금액을 나타냅니다.
▶Marcap: 시가총액. 주식의 시가에 발행된 주식 수를 곱한 값으로, 기업의 전체 시장 가치를 나타냅니다.
▶Stocks: 발행 주식 수. 해당 종목이 발행한 총 주식 수를 나타냅니다.
▶MarketId: 시장 구분 코드. 해당 종목이 상장된 시장을 식별하는 코드입니다. 예를 들어, “STK”는 주식을 나타냅니다.

이 중에서도 Dept는 투자에 중요한 정보를 제공하는 컬럼으로, 관리종목, 거래정지 등 각 종목의 분류를 보여줍니다. 다음 단락에서 Dept column에 어떤 값들이 들어있는지 확인하는 방법을 정리하였습니다.


국내 주식 투자를 위해 Dept 컬럼의 값 확인 방법

Dept 컬럼을 분석하면, 관리종목이나 투자주의 종목 등을 확인할 수 있으며, 이러한 종목을 필터링하여 투자 대상에서 제외할 수 있습니다. 아래 코드는 Dept 컬럼에 들어있는 값을 확인하는 방법입니다.




각 값들이 무엇을 의미하는지 정리하였습니다.
▶우량기업부 : 재무 상태가 우수하고 안정된 기업들
▶기술성장기업부 : 기술 성장성을 가진 기업들
▶중견기업부 : 중견기업으로 분류되는 회사들
▶벤처기업부 : 벤처 기업으로 성장 가능성이 있으나 위험도가 높은 기업들
▶외국기업 : 한국거래소에 상장된 외국 기업
▶관리종목 : 재무건전성 등에서 문제가 발생하여 관리 중인 종목으로, 투자 시 주의가 필요
▶투자주의환기종목 : 주가 변동성이 크거나 기타 사유로 투자주의가 필요하다고 지정된 종목
▶일반기업부 : 특별한 분류가 없는 일반 기업
▶SPAC : 인수합병을 목적으로 하는 특수 목적 회사




투자 유의 종목 걸러내는 방법

FDR 패키지를 활용하면 특정 조건에 맞는 종목을 필터링할 수 있습니다. 특히 위험성이 높은 종목, 즉 관리종목과 투자주의환기종목을 일단 걸러내야 하는데요. Dept 컬럼의 값으로 해당 종목들을 제외하면 됩니다. 실습코드 03을 통해 위험 종목들을 필터링할 수 있습니다.

실습코드 03에서 isin() 함수는 특정 값의 리스트를 받아서, 해당 리스트에 포함된 값이 있는지 여부를 확인하는 함수입니다. 여기서 exclude_categories는 제외하고자 하는 카테고리(부서) 목록을 담고 있는 리스트 또는 변수입니다. 만약 exclude_categories에 [‘관리종목’, ‘투자주의환기종목’, ‘SPAC’] 등의 값이 들어 있다면, isin() 함수는 Dept 열에서 이 카테고리들에 해당하는 종목을 찾습니다.

또한,~는 부정(not) 연산자입니다. 이 연산자는 조건을 뒤집는 역할을 합니다. 즉, isin(exclude_categories)가 True인 값을 제외하고, False인 값을 선택하도록 만듭니다.




마치며 …

FinanceDataReader(FDR) 패키지는 국내 주식 시장(KRX)의 데이터를 손쉽게 가져와 분석할 수 있는 강력한 도구입니다. 특히, Dept 컬럼을 활용하면 투자자가 주목해야 할 종목과 제외해야 할 종목을 빠르게 식별할 수 있습니다. 이번 글에서는 FDR을 이용해 KRX 데이터를 수집하고, 투자 종목을 필터링하는 과정을 소개했습니다. 이러한 FDR 패키지 활용법을 투자종목 선정에 활용해 보시기 바랍니다.

 

 

함께 참고하면 좋은 글
파이썬으로 금융시장 분석하기 : FDR(FinanceDataReader) 패키지 활용법
파이썬 주식 데이터 분석 : FDR 패키지 활용
yfinance로 주식, 암호화폐, 원자재까지: 파이썬으로 금융 데이터 쉽게 분석하기
한국투자증권 API 신청 방법
한국투자증권 파이썬 패키지 pykis로 준비하는 알고리즘 투자
RESTful API : 웹 애플리케이션 개발자를 위한 기초부터 실전까지
파이썬 데이터 분석을 위한 API 이해, REST API, WebSocket API
파이썬 바이낸스 API로 시계열 데이터를 가져오는 파이썬 프로그래밍
업비트 REST API를 이용한 비트코인 가격 추출 파이썬 프로그래밍


참고자료

FinanceData/FinanceDataReader

Leave a Comment