• 카테고리

    질문 & 답변
  • 세부 분야

    데이터 분석

  • 해결 여부

    미해결

sell in may heatmap

23.05.03 22:09 작성 조회수 222

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님 만의 주장을 표현하는 차원에서 강의를 수강해주셨으면 좋겠습니다.

 

열심히 들어주셔서 정말 감사합니다.

오늘도 즐거운 하루 보내시기 바랍니다!

trulife72님의 프로필

trulife72

질문자

2023.05.04

빠른 답변 감사 드립니다.