삶의 공유

[금융] 파이썬이용하여 코스피 대장주 찾기 Project-1(코스피편) 본문

Data Scientist/Python

[금융] 파이썬이용하여 코스피 대장주 찾기 Project-1(코스피편)

dkrehd 2021. 12. 8. 18:07
728x90
반응형

파이썬이용하여 코스피 대장주 찾기 Project

 

궁극적으로는 내 뉴스 요약 블로그에 업로드 하기 위한 프로젝트로 시작해보려고 한다.

요약하자면 섹터별 대장주들의 일간 변동률과 코스피 변동률을 비교하여 코스피 변동률 대비 높은 섹터들을 발굴하여

순환 투자에 참고하기 위해 작성하고자 한다.

 

김작가 tv에 나오셨던 김종봉 투자자편에 나왔던 대장주 찾기에서 아이디어를 얻었고, 이를 자동화 해보고자 한다.

 

https://youtu.be/OcBFuwukmzQ

 

해당 프로젝트에 첫번째 과제로,

 

코스피의 등락률을 구해보는 편이다.

pandas_datareader 라이브러리를 이용하여 코스피 데이터를 수집한다.

또한 datetime 라이브러리를이용하여 오늘날짜를 지정하지 않고 자동으로 오늘날짜로 지정될수 있게 선정하였고

오늘 날짜 기준으로 한달전부터 데이터를 불러와서 매번 수정하지 않아도 자동으로 수정할 수있게끔 하였다.

from pandas_datareader import data  
from datetime import datetime, timedelta

today = datetime.today()                # 오늘 날짜 가져오기
start_date = today - timedelta(days=30) # 오늘 날짜 기준 30일 전 계산 하기
end_date = today                        # 오늘 날짜 기준으로  

# 두 가지의 방식
# 방법 1
df = data.DataReader("^KS11", "yahoo", start_date, end_date)  
# 방법 2
# df = data.get_data_yahoo("^KS11") 
df.head()

 

잘가져 오는 것을 볼 수 있다.

 

이제 등락율을 누적으로 표현하기 위해 몇가지 작업을 해야한다.

 

1) 일간 변동률 계산 (전날 종가 - 오늘 종가) / 전날 종가 * 100

2) 누적합계 계산

 

panas라이브러이에서 실수의 소수점을 1자리로 표현할수 있게 설정하고, 위에 나오는 변동률 계산식을 이용해서 변동율을 계산하였다.

계산한 변동률을 cumsum 함수를 이용하여 누적 합계를 구하였다.

import pandas as pd
# 데이터 값 실수. 소수점 1자리까지 표시
pd.options.display.float_format = '{:.1f}'.format
# 1) 일간 변동률 계산 (t.close - t.close.shift(1)) / t.close.shift(1) * 100
df['daily_change'] = (df['Adj Close'] - df['Adj Close'].shift(1)) / df['Adj Close'] * 100

# 2) 누적 합계 계산
df['cumsum'] = df['daily_change'].cumsum()
df.head()

 

 

이것을 그래프화 해서 표현 해보면,

import matplotlib.pyplot as plt

df['cumsum'].plot(figsize=(10, 6))
plt.show()

 

 

이상 코스피 등락률 누적 합계 구하기 편을 맞치겠다

반응형