차밍이
[Python] KOSPI 이동평균선, 주가 이동평균선 구하기 // 파이썬 주식투자(2) 본문
파이썬에서 이동평균선을 그리는 방법을 알아보겠습니다.
해당 내용은 주가 이동평균선, 혹은 지수 이동평균선을 구하는 쪽에 활용할 수 있을 것입니다.
이평선 돌파 혹은 지지 등을 확인해 보기 위해서 알아두면 좋은 내용이라 생각합니다.
그 외에도 이평선을 활용한 다양한 것들을 마켓 타이밍이라던지 등등에 활용할 수 있으니 숙지하면 좋습니다.
주가 데이터 가져오기
우선, 주가 데이터를 가져오는 부분이 필요합니다.
해당 코드는 아래에 첨부하였고 조금 더 상세한 설명은 아래 링크를 참조해주세요.
from pandas_datareader import data
from datetime import datetime
start_date = datetime(2007,1,1)
end_date = datetime(2020,3,3)
kospi_df = data.get_data_yahoo("^KS11", start_date, end_date)
kospi_df
[Python] pandas_datareader 코스피 코스닥 지수 데이터 가져오기
주식 이동평균선
주식에서 사용되는 이동평균선은 "단순 이동평균선" 또는 "산술 이동평균선"이라고 합니다.
일반적인 주식에서 사용되는 주가 이동평균선은 n일 간의 값의 산술평균입니다.
n 일의 평균 ex) 5일 이동평균선은 5일간의 값의 평균입니다.
오늘 5일 이동평균선의 값은 D-4, D-3, D-2, D-1, Today의 종가 평균입니다.
pandas DataFrame
에 내장된 함수가 있어서 이를 활용하면 쉽게 사용하실 수 있습니다.
kospi_df['MA3'] = kospi_df['Close'].rolling(3).mean()
kospi_df['MA5'] = kospi_df['Close'].rolling(5).mean()
kospi_df['MA10'] = kospi_df['Close'].rolling(10).mean()
kospi_df['MA60'] = kospi_df['Close'].rolling(60).mean()
kospi_df[['Close','MA3','MA5','MA10']].plot()
n일 간의 평균이므로 n일 이전의 값이 없는 경우는 NaN으로 값이 비어있는 것을 볼 수 있습니다.
그래프는 다음과 같이 그려지는 것을 볼 수 있습니다.
이동평균선 그래프 그리기
좀 더 보기 좋게 그래프를 그려보면 아래와 같습니다.
fig, ax = plt.subplots(figsize=(10,5))
ax.set_title('KOSPI INDEX', fontsize=15)
ax.set_ylabel("KOSPI")
ax.set_xlabel("Date Time")
ax.plot(kospi_df.index, kospi_df[['Close','MA5','MA10']])
ax.legend(['Close','MA5','MA10'])
plt.show()
주가 이동평균선은 똑같이 데이터만 주가 데이터를 사용해서 진행해주시면 되겠습니다.
전체 소스코드
from pandas_datareader import data
from datetime import datetime
from IPython.display import display
start_date = datetime(2020,3,15)
end_date = datetime(2020,7,15)
kospi_df = data.get_data_yahoo("^KS11", start_date, end_date)
display(kospi_df.head(5))
kospi_df['MA3'] = kospi_df['Close'].rolling(3).mean()
kospi_df['MA5'] = kospi_df['Close'].rolling(5).mean()
kospi_df['MA10'] = kospi_df['Close'].rolling(10).mean()
kospi_df['MA20'] = kospi_df['Close'].rolling(20).mean()
display(kospi_df.head(5))
fig, ax = plt.subplots(figsize=(10,5))
ax.set_title('KOSPI INDEX', fontsize=15)
ax.set_ylabel("KOSPI")
ax.set_xlabel("Date Time")
ax.plot(kospi_df.index, kospi_df[['Close','MA5','MA10']])
ax.legend(['Close','MA5','MA10'])
plt.show()
전체 코드에는 "IPython.display" 부분이 추가되었으니 만약 해당 import 에러가 발생되면 "pip install IPython" 해주시면 됩니다.
이처럼 이동평균선의 움직임을 살펴보기 위한 내용이었습니다.
단순이 이동평균선만 있으면 분석하는 것에 어려움이 있겠죠?
그러므로 python에서 주가 그래프를 보기위한 캔들차트 그리는 방법을 다음에 알아보겠습니다.
'투자 > Quant & BackTest' 카테고리의 다른 글
[퀀터스] 퀀트 투자 팩터의 신뢰성 검증(1) - 10분위 테스트 - PER,PBR,PSR,POR (1) | 2022.12.19 |
---|---|
[Python] 주식 오버나잇(Overnight) 효과 파악 분석 - 파이썬 주식투자(5) (0) | 2020.12.22 |
[Python] 거래량 막대 그래프, 캔들스틱 차트에 같이 표현하기 - 파이썬 주식투자(4) (4) | 2020.12.21 |
[Python] 캔들 스틱 차트 그리기, Candlestick Chart 그리기 - 파이썬 주식투자(3) (6) | 2020.10.12 |
[키움 OpenAPI] 자동 로그인 설정하기 (0) | 2020.08.28 |
[키움 OpenAPI] mfc100.dll이(가) 없어.. 시스템 오류 해결방법 (1) | 2020.07.06 |
[키움 openAPI] OpenAPI OCX를 탑재한 프로그램을 종료하신 후 확인버튼을 눌러주시기 바랍니다. (0) | 2020.06.20 |
[키움 openAPI] KOA Studio 압축해제 라이브러리를 찾을 수 없습니다. (0) | 2020.06.20 |