작성
·
291
0
sell in may... 가 맞는지 알아 보기 위해서 heatmap 그릴 때, 모든 ETF의 연도별 월별 수익률 평균을 구해 보는 것은 의미가 있을까요? 이렇게 구해보면 sell in may... 라는 말은 맞이 않는 것 같습니다. 이렇게 하는 것도 의미가 있을까요?
import pandas as pd
import numpy as np
import plotly.graph_objects as go
df = pd.read_excel('df_etf.xlsx', index_col = 0)
df_copy = df.copy()
# KODEX ETF data 추출
condition_kodex = [df_copy.columns[i] for i in range(df_copy.shape[1]) if 'KODEX' in df_copy.columns[i]] # list comprehension
df_copy_kodex = df_copy.loc[:, condition_kodex]
df_copy_kodex['YEAR'] = df_copy_kodex.index.year
df_copy_kodex['MONTH'] = df_copy_kodex.index.month
# 년도별 월별 모든 ETF 수익률 평균
YEAR = 2012 # ETF data 기간 : 2012 ~ 2022
empty_df = pd.DataFrame()
while YEAR < 2023 :
YEAR = YEAR
df_copy_kodex_yr = df_copy_kodex[df_copy_kodex['YEAR'] == YEAR]
df_copy_gr = df_copy_kodex_yr.groupby('MONTH')
df_sell_in_may = df_copy_gr.mean()
df_month_return = np.round((df_sell_in_may.mean(axis = 1).pct_change(periods = 1))*100, 2)
empty_df[YEAR] = df_month_return
YEAR = (YEAR + 1)
trace = go.Heatmap(x = empty_df.columns,
y = empty_df.index,
z = empty_df)
fig = go.Figure(data = trace)
fig.show()
답변 1
0
안녕하세요 trulife72님
우선 강의를 열심히 들어주셔서 정말 감사합니다
Sell in May라는 이벤트를 확인해보려면 명확한 기준이 더 필요하다고 생각합니다. 날짜를 월초에서 월말로 할지 아니면 5월의 전반적인 평균으로 설정해서 전월 평균치 대비 증가한 모습으로 보여줄지, 혹은 대통령 선거가 있는 연도라든지 등등... Sell in May전략을 확인하려면 더 세세한 조건부들이 필요합니다.
물론 그러한 조건들을 반영해서 HeatMap으로 결과를 표현해 줄 수 있구요.
HeatMap을 이용한 실습과제로 Sell in May를 선택한 이유는 전반적인 시계열의 변화를 한 눈에 볼 수 있다는 것을 보여주기 위함입니다.
그리고 가장 중요한 것은 Sell in May에서 사용할 데이터도 굉장히 중요합니다. 어떤 S&P, 나스닥, 다우, 코스피, 코스닥 등등 어떤 데이터로 이용해 Sell in May라는 주장을 펼칠지도 굉장히 중요하다고 할 수 있습니다.
Practice에서 보여주는 것은 하나의 방법론일뿐, 해당 방법론을 이용해서 trulife72님 만의 주장을 표현하는 차원에서 강의를 수강해주셨으면 좋겠습니다.
열심히 들어주셔서 정말 감사합니다.
오늘도 즐거운 하루 보내시기 바랍니다!
빠른 답변 감사 드립니다.