[알고리즘 트레이딩] KOSPI 시가총액 상위 200 종목 분석 및 JSON, HTML 저장 (파이썬)
개요
KOSPI 시가총액 기준 상위 200개 종목을 분석하여 종목별 EPS, BPS, PER, PBR, DIV, DPS 등의 정보를 포함한 데이터를 생성하고, 이를 JSON 및 HTML 파일로 저장하는 파이썬 스크립트를 작성하였습니다.
구현 목표
- KOSPI 시가총액 상위 200개 종목을 가져오기
- 종목별 가능한 모든 재무 정보를 포함하기
- 시가총액이 전체 KOSPI에서 차지하는 비율 계산
- 데이터를 JSON, HTML 파일로 저장하여 활용성 증가
- 실행 날짜를 매개변수로 받아 특정 일자의 데이터를 분석할 수 있도록 설정
코드 구현
1. get_kospi_top_200
함수
이 함수는 KOSPI 종목 데이터를 가져와 시가총액 기준으로 정렬한 후, 추가적인 재무 정보를 포함하여 데이터 프레임을 생성합니다.
from pykrx import stock
import pandas as pd
def get_kospi_top_200(date):
df = stock.get_market_cap_by_ticker(date, market='KOSPI').reset_index()
additional_info = stock.get_market_fundamental_by_ticker(date, market='KOSPI').reset_index()
df = df.merge(additional_info, on='티커', how='left')
df.rename(columns={'티커': '종목코드'}, inplace=True)
df['종목명'] = df['종목코드'].apply(lambda x: stock.get_market_ticker_name(x))
total_market_cap = df['시가총액'].sum()
df['시가총액 비율(%)'] = (df['시가총액'] / total_market_cap) * 100
df = df.sort_values(by='시가총액', ascending=False).head(200)
return df, total_market_cap
2. JSON 및 HTML 저장 함수
import json
def save_to_json(df, date):
file_name = f'kospi_top_200_{date}.json'
with open(file_name, 'w', encoding='utf-8') as f:
json.dump(df.to_dict(orient='records'), f, ensure_ascii=False, indent=4)
print(f'JSON 파일 저장 완료: {file_name}')
def save_to_html(df, date):
file_name = f'kospi_top_200_{date}.html'
df.to_html(file_name, index=False)
print(f'HTML 파일 저장 완료: {file_name}')
3. 실행 메인 함수
import sys
def main():
if len(sys.argv) != 2:
print("사용법: python script.py YYYYMMDD")
sys.exit(1)
date = sys.argv[1]
try:
df, total_market_cap = get_kospi_top_200(date)
print(f'KOSPI 전체 시가총액: {total_market_cap:,.0f} 원')
print(df)
save_to_json(df, date)
save_to_html(df, date)
except Exception as e:
print(f'오류 발생: {e}')
if __name__ == "__main__":
main()
실행 방법
python script.py 20240320
20240320
을 원하는 날짜(YYYYMMDD)로 변경하여 실행하면 해당 일자의 KOSPI 데이터를 가져옵니다.- JSON과 HTML 파일이 생성되며,
kospi_top_200_20240320.json
과kospi_top_200_20240320.html
형식으로 저장됩니다.
정리
이 스크립트는 KOSPI 시가총액 상위 200개 종목의 정보를 가져와 JSON과 HTML 파일로 저장하는 기능을 수행합니다. 이를 활용하여 특정 날짜의 KOSPI 주요 종목 정보를 분석하거나 웹 기반 데이터 시각화에 활용할 수 있습니다.
댓글
댓글 쓰기