๐๋ฐ์ด์ฝ KOSPI ๋ถ์ 03-์ง์ ์๊ฐํ / ์ด๋ํ๊ท ์
๐ ์ด๋ฒ ํฌ์คํ
์์๋ KOSPI ๋ฐ์ดํฐ๋ฅผ ์๊ฐํํ๊ณ ์ด๋ํ๊ท ์ ์ ๋ฐํ์ผ๋ก ํฅํ KOSPI ์ง์๋ฅผ ์์ธกํด ๋ณผ ๊ฒ์
๋๋ค.
๐ 1. Datetime Index ์์ฑ
# ์ฝ์คํผ์ง์์ ์ข
๊ฐ๋ฅผ plotting
fig = go.Figure()
fig.add_trace(go.Line(x = kospi.index, y = kospi['Close'], marker_color = '#8c8cf5'))
fig.update_layout({'template' : 'plotly_white'})
fig.show()
๐ ์ํ์ผ์ ๊ทธ๋ํ๋ฅผ ์ถ๋ ฅํด๋ณธ ๊ฒฐ๊ณผ x์ถ์ด ๋ฐ์ดํฐ์ ๊ฐ์๋ก ๋ผ๋ฒจ๋ง ๋ ๊ฒ์ ์ ์ ์์์ต๋๋ค. ์ฆ, ๋ฐ์ดํฐ์ ์ธ๋ฑ์ค๊ฐ x์ถ์ ๊ตฌ์ฑํ ์ํ์ด๊ธฐ์ Date์ด์ ์ธ๋ฑ์ค๋ก ๋ณํํ์ฌ ํฅํ ๋ถ์๊ณผ ์๊ฐํ๋ฅผ ์งํํ๊ธฐ๋ก ๊ฒฐ์ ํ์์ต๋๋ค.
# ๋ฐ์ดํฐ์ Date column์ datetime64 ์๋ฃํ์ผ๋ก ๋ณ๊ฒฝ
kospi['Date'] = pd.to_datetime(kospi['Date'])
kospi.info()
>> Out[34]
RangeIndex: 11031 entries, 0 to 11030
Data columns (total 7 columns):
# Column Non-Null Count Dtype
--- ------ -------------- -----
0 Date 11031 non-null datetime64[ns]
1 Close 11031 non-null float64
2 Open 11031 non-null float64
3 High 11031 non-null float64
4 Low 11031 non-null float64
5 Volume 11031 non-null float64
6 Change 11031 non-null float64
dtypes: datetime64[ns](1), float64(6)
memory usage: 603.4 KB
# ๋ณ๊ฒฝํ datetime์ ์ธ๋ฑ์ค๋ก ์ค์ ํจ
kospi = kospi.set_index('Date').copy()
kospi
๐ 2. ์๊ฐํ
# ํ ๋ํ์ ์๊ฐ, ์ข
๊ฐ, ๊ณ ๊ฐ, ์ ๊ฐ๋ฅผ ๋ชจ๋ ์ถ๋ ฅ
fig = go.Figure()
fig.add_trace(go.Line(x = kospi.index, y = kospi['Close'], name = 'Close'))
fig.add_trace(go.Line(x = kospi.index, y = kospi['Open'], name = 'Open'))
fig.add_trace(go.Line(x = kospi.index, y = kospi['High'], name = 'High'))
fig.add_trace(go.Line(x = kospi.index, y = kospi['Low'], name = 'Low'))
fig.update_layout(
{
'title' : {'text':'๋
๋์ ๋ฐ๋ฅธ KOSPI ์ง์ - ์ข
๊ฐ, ์๊ฐ, ๊ณ ๊ฐ, ์ ๊ฐ'},
'xaxis' : {'title':'๋
๋', 'showticklabels': True},
'yaxis' : {'title':'KOSPI','showticklabels': True},
'template' : 'plotly_white'
})
fig.show()
๐ ์ผ๋ฐ์ ์ธ ๋ฐฉ์์ ์๋์ง๋ง, ์ ์ฒด์ ์ธ ์ถ์ธ๋ฅผ ์์๋ณด๊ธฐ ์ํด ํ ๋ํ์ ์ข
๊ฐ, ์๊ฐ, ์ ๊ฐ, ๊ณ ๊ฐ๋ฅผ ๋ชจ๋ plotting ํด๋ณด์์ต๋๋ค. ์ ์ฒด์ ์ผ๋ก ์ค๋ฒ๋ฉ๋๋ ๋ํ๊ฐ ๊ทธ๋ ค์ก์ผ๋ฉฐ, ๋ฐ์ดํฐ๊ฐ ๊ต์ฅํ ์ค๋ ๊ธฐ๊ฐ์ ๋ํ ๋ฐ์ดํฐ์ด๊ธฐ์ ์ ์ฒด ๋ฒ์์์ ๋ชจ๋ ์ฃผ๊ฐ๋ฅผ ์๊ฐํํ๋ ๊ฒ์ ์๋นํ ๋นํจ์จ์ ์ธ ์ผ์ด๋ผ ์๊ฐํ์์ต๋๋ค.
๐ 3. Rolling Window : ์ด๋ํ๊ท ์
๐ ์ฃผ๊ฐ ์์์ ์ค์ํ ์์น์ค ํ๋๋ก ์ด๋ํ๊ท ์ (moving average)์ด ์์ต๋๋ค. (๋น์ผ-x์ผ)~(๋น์ผ)๊น์ง ์ฃผ๊ฐ์ ํ๊ท ์ ์ด์ ์ ์
๋๋ค.
๐ ์ฃผ๋ก 5์ผ, 10์ผ, 20์ผ, 60์ผ, 120์ผ ์ดํ์ ์ ์ฌ์ฉํ๋ฉฐ, 20์ผ ์ดํ์ ๊น์ง๋ ๋จ๊ธฐ, 60์ผ๊น์ง๋ ์ค๊ธฐ, 120์ผ ์ด๊ณผ ์ดํ์ ์ ์ฅ๊ธฐ ์ดํ์ ์ผ๋ก ๊ตฌ๋ถํ๋ ๊ฒฝ์ฐ๊ฐ ๋ง์ต๋๋ค.
๐ ์ด๋ํ๊ท ์ ์ ์์ง์์ผ๋ก ์ฃผ๊ฐ๋ฅผ ์์ธกํ๊ธฐ ์ํด์๋ ๋จ๊ธฐ์ด๋ํ๊ท ์ ๊ณผ ์ฅ๊ธฐ์ด๋ํ๊ท ์ ์ ๋น๊ตํด์ผ ํฉ๋๋ค.
- ํฌ์๋ก ์์ ๋จ๊ธฐ์ด๋ํ๊ท ์ ์ด ์ฅ๊ธฐ์ด๋ํ๊ท ์ ๋ณด๋ค ์์ ์๋ ๊ฒฝ์ฐ(์ ๋ฐฐ์ด), ๊ทธ ๊ฒน์ณ์ ์ฌ๋ผ๊ฐ๊ธฐ ์์ํ๋ ์ ์ ๊ณจ๋ ํฌ๋ก์ค๋ผ๊ณ ํฉ๋๋ค. ์ด๋ ์ฃผ๊ฐ๊ฐ ์ค๋ฅผ ๊ฒ์ด๋ผ ์์ธกํฉ๋๋ค.
- ๋ฐ๋ฉด ๋จ๊ธฐ์ด๋ํ๊ท ์ ์ด ์ฅ๊ธฐ์ด๋ํ๊ท ์ ๋ณด๋ค ๋ฐ์ ์๋ ๊ฒฝ์ฐ(์ญ๋ฐฐ์ด), ๊ฒน์ณ์ ๋ด๋ ค๊ฐ๊ธฐ ์์ํ๋ ์ ์ ๋ฐ๋ํฌ๋ก์ค๋ผ๊ณ ํฉ๋๋ค. ์ด๋ ์ฃผ๊ฐ๊ฐ ํ๋ฝํ ๊ฒ์ด๋ผ ์์ธกํฉ๋๋ค.
- ์ผ๋ฐ์ ์ผ๋ก ์ฃผ๊ฐ ๋ฐ์ดํฐ๋ ์๊ณ์ด ๋ฐ์ดํฐ์ธ ๊ฒฝ์ฐ๊ฐ ๋ง์ต๋๋ค. ์ด๋ฅผ ์ฒ๋ฆฌํ๊ธฐ ์ํด์ ํ์ด์ฌ์
.rolling()
ํจ์๋ฅผ ์ ๊ณตํฉ๋๋ค.
# ์ฐ๋ฆฌ๊ฐ ๊ฐ์ง๊ณ ์๋ ๋ฐ์ดํฐํ๋ ์์์ ํ๋์ ์ด, ์ฆ Series๋ฅผ s๋ผ๊ณ ํ๋ฉด ํ๊ท ์ ๊ตฌํ๊ณ ์ถ์ ์ผ์ X์ ๋ํ์ฌ
r = s.rolling(window=X).mean()
๐ ์ด๋ฅผ ํตํด์ ๋จ๊ธฐ์ดํ์ ๊ณผ ์ฅ๊ธฐ์ดํ์ ์ ๋น๊ตํ๊ฑฐ๋, ์ค์ ์ฃผ๊ฐ๋ฅผ ๋น๊ตํ์ฌ ๋ฏธ๋์ ์ฃผ๊ฐ๋ฅผ ์์ธกํฉ๋๋ค.
๐ 3.1. ์ด๋ํ๊ท ๋ฐ์ดํฐ ์์ฑ ๋ฐ plotting
# 5, 10, 20, 60, 120, 200์ผ ์ด๋ํ๊ท ๊ตฌํจ
mov_5 = kospi['Close'].rolling(window=5).mean()
mov_10 = kospi['Close'].rolling(window=10).mean()
mov_20 = kospi['Close'].rolling(window=20).mean()
mov_60 = kospi['Close'].rolling(window=60).mean()
mov_120 = kospi['Close'].rolling(window=120).mean()
mov_200 = kospi['Close'].rolling(window=200).mean()
# kospi ๋ฐ์ดํฐํ๋ ์์ ์ด๋ํ๊ท ๋ฐ์ดํฐ ์ถ๊ฐ
kospi['mov_5'] = mov_5
kospi['mov_10'] = mov_10
kospi['mov_20'] = mov_20
kospi['mov_60'] = mov_60
kospi['mov_120'] = mov_120
kospi['mov_200'] = mov_200
kospi
๐ 3.2. ์๊ด๊ด๊ณ ๋ถ์
๐ ์ด๋ ๊ฒ ์ด๋ํ๊ท ์ ๊น์ง ๊ตฌํด์ ๋ฃ์ ์๋ก์ด ๋ฐ์ดํฐํ๋ ์์ด ์์ฑ๋์์ต๋๋ค.
๐ ์ด๋ฒ์๋ ์ด ๋ฐ์ดํฐํ๋ ์์ผ๋ก๋ถํฐ ๊ฐ column๋ค ๊ฐ์ ์๊ด๊ด๊ณ๋ฅผ ๋ถ์ํด๋ณผ ๊ฒ์
๋๋ค.
kospi_corr = kospi.corr()
mask = np.zeros_like(kospi_corr, dtype=np.bool)
mask[np.triu_indices_from(mask)] = True
plt.figure(figsize = (12,9))
ax = sns.heatmap(kospi_corr, mask = mask, annot=True, annot_kws=dict(color='r'), linewidths=.5, cmap='Blues')
plt.show()
- ์๊ด๊ด๊ณ๋ฅผ ๊ตฌํ ๊ฒฐ๊ณผ ์ข ๊ฐ, ์๊ฐ, ๊ณ ๊ฐ, ์ ๊ฐ์ ๊ฐ๊ฐ์ ์ด๋ํ๊ท ์ ๋ค์ ์๋ก ์์ฃผ ๋์ ์์ ์๊ด๊ด๊ณ๋ฅผ ๋ณด์์ ํ์ธํ ์ ์์์ต๋๋ค. ๊ฑฐ์ ์ ๋น๋กํ๋ค๊ณ ๋ณผ ์ ์์ ๊ฒ ๊ฐ๋ค์.
- ๋ฐ๋ฉด ๋ณ๋๋ฅ ๊ณผ ๋ค๋ฅธ column๋ค ๊ฐ์ ์๊ด๊ด๊ณ๋ ๋งค์ฐ ์์ ์์ ์๊ด๊ด๊ณ๋ฅผ ๋ณด์ฌ์ฃผ์์ต๋๋ค.
- ๊ฑฐ๋๋์ ๋ค๋ฅธ column๋ค๊ณผ ์์ ์๊ด๊ด๊ณ๋ฅผ ๊ฐ์ง๊ธฐ๋ ํ์ง๋ง ๋ณดํธ์ ์ธ ๊ธฐ์ค์ธ 0.7์ ๋์ง ๋ชปํ ๋ฟ๋๋ฌ, ์ด๋ํ๊ท ์ ๋ค๊ณผ ๋น๊ตํ๋ฉด ๊ทธ๋ ๊ฒ ๋์ ๊ฐ์ ์๋ ๊ฒ์ด๋ผ ๊ฒฐ๋ก ์ง์์ต๋๋ค.
- ์ด์, ์ฃผ์์ ๊ฐ๊ฒฉ์ ์์ธกํ๋ ๋ฐ์ ๊ฐ๊ฐ์ ์ด๋ํ๊ท ์ ์ด ๊ด๊ณ๊ฐ ์๋ค๊ณ ๋ณผ ์ ์์ต๋๋ค. ๋ฐ๋ผ์ ์ด๋ฒ ์๊ฐํ์์ ์ฝ์คํผ์ง์๋ฅผ ์์ธกํ๊ธฐ ์ํด ์ข ๊ฐ์ ์ด๋ํ๊ท ์ ์ ์ฌ์ฉํ ๊ณํ์ ๋๋ค.
๐ 3.3. ๋จ๊ธฐ์ดํ์ , ์ฅ๊ธฐ์ดํ์ , ์ฝ์คํผ์ง์ ๋น๊ต
# 200์ผ ์ฅ๊ธฐ์ดํ์ ๊ณผ ์ค์ ์ข
๊ฐ๋ฅผ ๋น๊ต
fig = go.Figure()
fig.add_trace(go.Line(x = kospi.index, y = kospi['Close'], name = '์ค์ ์ข
๊ฐ', marker_color = '#8c8cf5'))
fig.add_trace(go.Line(x = kospi.index, y = kospi['mov_200'], name = '200์ผ ์ฅ๊ธฐ์ดํ์ ', marker_color = '#ff0000'))
fig.update_layout(
{
'title' : {'text':'200์ผ ์ฅ๊ธฐ์ดํ์ ๊ณผ ์ค์ ์ข
๊ฐ ๋น๊ต'},
'xaxis' : {'title':'๋
๋', 'showticklabels': True},
'yaxis' : {'title':'KOSPI','showticklabels': True},
'template' : 'plotly_white'
})
fig.show()
- 200์ผ๊ฐ์ ์ฅ๊ธฐ์ดํ์ ๊ณผ ์ค์ ์ข ๊ฐ๋ฅผ ๋น๊ตํ ๊ฒฐ๊ณผ ์ฅ๊ธฐ์ดํ์ ์ ์ ์ฒด์ ์ธ ์ถ์ธ๊ฐ ์ค์ ์ข ๊ฐ๋ฅผ ๋ฐ๋ผ๊ฐ์ ํ์ธํ ์ ์์ต๋๋ค. ๋ค๋ง, ์ ์ฒด์ ์ธ ์ถ์ธ๊ฐ ์๋์ ์ง์๋ณด๋ค ๋ค์ชฝ์์ ํ์ฑ๋๋ค๋ ์ ์ด ๋ค๋ฆ ๋๋ค. ์ด์ ๋จ๊ธฐ์ดํ์ ๊ณผ ์ค์ ์ฃผ๊ฐ์์ ๊ด๊ณ๋ฅผ ๋น๊ตํด๋ด ์๋ค.
# 20์ผ ๋จ๊ธฐ์ดํ์ ๊ณผ ์ค์ ์ข
๊ฐ๋ฅผ ๋น๊ต
fig = go.Figure()
fig.add_trace(go.Line(x = kospi.index, y = kospi['Close'], name = '์ค์ ์ข
๊ฐ', marker_color = '#8c8cf5'))
fig.add_trace(go.Line(x = kospi.index, y = kospi['mov_20'], name = '20์ผ ๋จ๊ธฐ์ดํ์ ', marker_color = '#ff0000'))
fig.update_layout(
{
'title' : {'text':'20์ผ ๋จ๊ธฐ์ดํ์ ๊ณผ ์ค์ ์ข
๊ฐ ๋น๊ต'},
'xaxis' : {'title':'๋
๋', 'showticklabels': True},
'yaxis' : {'title':'KOSPI','showticklabels': True},
'template' : 'plotly_white'
})
fig.show()
- 20์ผ ์ฐจ์ด์ด๊ธฐ ๋๋ฌธ์ ๊ฑฐ์ ๊ฐ์ ๋ชจ์ต์ ๋ณด์ฌ์ค๋๋ค. ๋ณธ๊ฒฉ์ ์ธ ์ฃผ๊ฐ ์์ธก์ ์ํด ์ด์ ๋จ๊ธฐ์ดํ์ ๊ณผ ์ฅ๊ธฐ์ดํ์ ์ ๋น๊ตํ ๊ฒ์ ๋๋ค.
# ๋จ๊ธฐ์ดํ์ ๊ณผ ์ฅ๊ธฐ์ดํ์ ์ ๋น๊ต
fig = go.Figure()
fig.add_trace(go.Line(x = kospi.index, y = kospi['mov_200'], name = '200์ผ ์ฅ๊ธฐ์ดํ์ ', marker_color = '#ff0000'))
fig.add_trace(go.Line(x = kospi.index, y = kospi['mov_20'], name = '20์ผ ๋จ๊ธฐ์ดํ์ ', marker_color = '#8c8cf5'))
fig.update_layout(
{
'title' : {'text':'200์ผ ์ฅ๊ธฐ์ดํ์ ๊ณผ 20์ผ ๋จ๊ธฐ์ดํ์ ๋น๊ต'},
'xaxis' : {'title':'๋
๋', 'showticklabels': True},
'yaxis' : {'title':'KOSPI','showticklabels': True},
'template' : 'plotly_white'
})
fig.show()
- ๋จ๊ธฐ์ดํ์ ๊ณผ ์ฅ๊ธฐ์ดํ์ ์ ๋น๊ตํด๋ณด๋ ์ฅ๊ธฐ์ดํ์ ๊ณผ ์ค์ ์ข ๊ฐ์ง์๋ฅผ ๋น๊ตํ๋ ๊ฒ๊ณผ ํฐ ์ฐจ์ด๊ฐ ๋ณด์ด์ง ์์ต๋๋ค. ์๋ง 1981๋ ๋ถํฐ 2022๋ ๊น์ง์ ๋ฐ์ดํฐ๋ฅผ ๋ชจ๋ ์ฌ์ฉํ๋ ค๋ ๊ทธ ์ค์ผ์ผ์ ๋ฒ์๊ฐ ๋๋ฌด ๋์ ๊ฒ ๊ฐ์ต๋๋ค. ์ข ๋ ์ข์ ๊ธฐ๊ฐ์ ๋ํด์ ๋น๊ตํด๋ณด๋ ๊ฒ ์ ํํ ๋ฏ ํฉ๋๋ค.
- ๋น๊ต์ ์ต๊ทผ์ ์ฃผ๊ฐ๋ฅผ ์์ธกํ๊ธฐ ์ํด ์ฃผ๊ฐ๊ฐ ์ ๋ฐ์ ์ผ๋ก ์ค๋ฅธ 2019๋ ์ดํ์ ์ฃผ๊ฐ๋ง์ ์ฌ์ฉํด์ ๊ฐ ์ดํ์ ๊ณผ ์ค์ ์ฃผ๊ฐ๋ฅผ ๋น๊ตํด๋ณผ ๊ฒ์ ๋๋ค.
๐ 3.4. 2019๋ ์ดํ์ ์ฝ์คํผ ์ง์๋ฅผ ์ฌ์ฉํ ์ด๋ํ๊ท ์
# 2019๋
์ดํ์ ๋ฐ์ดํฐ๋ง์ ์ฌ์ฉํ๊ธฐ ์ํ ์ฌ๋ผ์ด์ฑ
kospi_2019 = kospi[10118:]
# 2019๋
์ดํ์ ์ฅ๊ธฐ์ดํ์ , ๋จ๊ธฐ์ดํ์ , ์ค์ ์ข
๊ฐ ๋น๊ต
fig = go.Figure()
fig.add_trace(go.Line(x = kospi_2019.index, y = kospi_2019['Close'], name = '์ค์ ์ฝ์คํผ ์ง์ (์ข
๊ฐ)', marker_color = '#5abeff'))
fig.add_trace(go.Line(x = kospi_2019.index, y = kospi_2019['mov_200'], name = '200์ผ ์ฅ๊ธฐ์ดํ์ ', marker_color = '#ff0000'))
fig.add_trace(go.Line(x = kospi_2019.index, y = kospi_2019['mov_20'], name = '20์ผ ๋จ๊ธฐ์ดํ์ ', marker_color = 'orange'))
fig.update_layout(
{
'title' : {'text':'2019๋
์ดํ์ ์ฅ๊ธฐ์ดํ์ , ๋จ๊ธฐ์ดํ์ , ์ค์ ์ข
๊ฐ ๋น๊ต'},
'xaxis' : {'title':'์ / ๋
๋', 'showticklabels': True},
'yaxis' : {'title':'KOSPI','showticklabels': True},
'template' : 'plotly_white'
})
fig.show()
- ์ด๋ ๊ฒ ์ข์ ๊ธฐ๊ฐ์ ๋ํด์ ์๊ฐํํด๋ณธ ๊ฒฐ๊ณผ ์ค์ ์ง์์ 200์ผ ์ฅ๊ธฐ์ดํ์ ๊ฐ์ ์ฐจ์ด๊ฐ ์๊ฐ๋ณด๋ค ํฐ ๊ฒ์ ํ์ธํ ์ ์์ต๋๋ค. ๋ํ 2022๋ ๋์ ์ค์ ์ง์์ ์ด๋ํ๊ท ์ ์ ๋ชจ๋ ์ฐํํฅํ๋ ์ถ์ธ์ ๋๋ค.
- 2020๋ ๋ ํ๋ฐ๊ธฐ์ 2021๋ ๋ ์ ๋ฐ์ ๊ฑธ์ณ KOSPI ์ง์๊ฐ ๊ธ๋ฑํ ๊ฒ์ ์ ์ ์์ต๋๋ค. ๋ฐ๋ฉด 2022๋ ๋ค์ด์๋ ์ข์ฒ๋ผ ์์นํ๋ ๋ชจ์ต์ ๋ณด์ฌ์ฃผ์ง ๋ชปํ๊ณ ์์ต๋๋ค.
- ๋จ๊ธฐ์ด๋ํ๊ท ์ (20์ผ)๊ณผ ์ฅ๊ธฐ์ด๋ํ๊ท ์ (200์ผ), ๊ทธ๋ฆฌ๊ณ ์ค์ ์ฃผ๊ฐ๋ฅผ ๋น๊ตํด๋ณธ ๊ฒฐ๊ณผ ์์์ ์ธ๊ธํ ์ด๋ก ๋๋ก ๋จ๊ธฐ์ด๋ํ๊ท ์ ์ด ์ฅ๊ธฐ์ด๋ํ๊ท ์ ๋ณด๋ค ์์ ์๋ ๊ฒฝ์ฐ์๋ ์ฃผ๊ฐ๊ฐ ์์นํ๊ณ , ๋ฐ๋์ธ ๊ฒฝ์ฐ์๋ ์ง์๊ฐ ํ๋ฝํ๋ ๊ฒ์ ํ์ธํ ์ ์์ต๋๋ค.
- ์ฃผ๊ฐ๊ฐ ๋ณ๋ํ๋ ์ด์ ๋ค์ ์ ๋ง ๋ณต์กํ๊ธฐ์ ๋จ์ํ ์๊ฐํ๋ง์ผ๋ก ์์ธกํ๊ธฐ์๋ ์ฃ๋ถ๋ฅผ ๊ฒ์ด์ง๋ง, ๋ ์ด๋ํ๊ท ์ ์ฌ์ด์ ๊ฐ๊ทน์ ๋น๊ตํด๋ณด๋ฉด ๊ทธ๋ ๊ฒ ๋น ๋ฅด๊ฒ ์ง์๊ฐ ํ๋ณตํ ๊ฒ์ผ๋ก ๋ณด์ด์ง๋ ์๋ค์.
๐ 3.5. 2022๋ ์ ์ฝ์คํผ์ง์๋ฅผ ์ฌ์ฉํ ์ด๋ํ๊ท ์
# 2019๋
์ดํ์ ์ฅ๊ธฐ์ดํ์ , ๋จ๊ธฐ์ดํ์ , ์ค์ ์ข
๊ฐ ๋น๊ต
kospi_2022 = kospi[10860:]
# 2022๋
๋ ์ฅ๊ธฐ์ดํ์ (200), ๋จ๊ธฐ์ดํ์ (20), ์ค์ ์ข
๊ฐ ๋น๊ต
fig = go.Figure()
fig.add_trace(go.Line(x = kospi_2022.index, y = kospi_2022['Close'], name = '์ค์ ์ฝ์คํผ ์ง์ (์ข
๊ฐ)', marker_color = '#5abeff'))
fig.add_trace(go.Line(x = kospi_2022.index, y = kospi_2022['mov_200'], name = '200์ผ ์ฅ๊ธฐ์ดํ์ ', marker_color = '#ff0000'))
fig.add_trace(go.Line(x = kospi_2022.index, y = kospi_2022['mov_20'], name = '20์ผ ๋จ๊ธฐ์ดํ์ ', marker_color = 'orange'))
fig.update_layout(
{
'title' : {'text':'2022๋
๋ ์ฅ๊ธฐ์ดํ์ (200), ๋จ๊ธฐ์ดํ์ (20), ์ค์ ์ข
๊ฐ ๋น๊ต'},
'xaxis' : {'title':'์ (2022)', 'showticklabels': True},
'yaxis' : {'title':'KOSPI','showticklabels': True},
'template' : 'plotly_white'
})
fig.show()
# 2022๋
๋ ์ดํ์ , ์ค์ ์ข
๊ฐ ๋น๊ต
fig = go.Figure()
fig.add_trace(go.Line(x = kospi_2022.index, y = kospi_2022['mov_200'], name = '200์ผ ์ฅ๊ธฐ์ดํ์ '))
fig.add_trace(go.Line(x = kospi_2022.index, y = kospi_2022['mov_120'], name = '120์ผ ๋จ๊ธฐ์ดํ์ '))
fig.add_trace(go.Line(x = kospi_2022.index, y = kospi_2022['mov_60'], name = '60์ผ ๋จ๊ธฐ์ดํ์ '))
fig.add_trace(go.Line(x = kospi_2022.index, y = kospi_2022['mov_20'], name = '20์ผ ๋จ๊ธฐ์ดํ์ '))
fig.add_trace(go.Line(x = kospi_2022.index, y = kospi_2022['mov_10'], name = '10์ผ ๋จ๊ธฐ์ดํ์ '))
fig.add_trace(go.Line(x = kospi_2022.index, y = kospi_2022['Close'], name = '์ค์ ์ฝ์คํผ ์ง์ (์ข
๊ฐ)', marker_color = '#5abeff'))
fig.update_layout(
{
'title' : {'text':'2022๋
๋ ์ฅ๊ธฐ์ดํ์ , ๋จ๊ธฐ์ดํ์ , ์ค์ ์ข
๊ฐ ๋น๊ต'},
'xaxis' : {'title':'์ (2022)', 'showticklabels': True},
'yaxis' : {'title':'KOSPI','showticklabels': True},
'template' : 'plotly_white'
})
fig.show()
-
๋จ๊ธฐ์ด๋ํ๊ท ์ (20์ผ)๊ณผ ์ฅ๊ธฐ์ด๋ํ๊ท ์ (200์ผ), ๊ทธ๋ฆฌ๊ณ ์ค์ ์ฃผ๊ฐ๋ฅผ ๋น๊ตํด๋ณธ ๊ฒฐ๊ณผ ์์์ ์ธ๊ธํ ์ด๋ก ๋๋ก ๋จ๊ธฐ์ด๋ํ๊ท ์ ์ด ์ฅ๊ธฐ์ด๋ํ๊ท ์ ๋ณด๋ค ์์ ์๋ ๊ฒฝ์ฐ์๋ ์ฃผ๊ฐ๊ฐ ์์นํ๊ณ , ๋ฐ๋์ธ ๊ฒฝ์ฐ์๋ ์ฃผ๊ฐ๊ฐ ํ๋ฝํ๋ ๊ฒ์ ํ์ธํ ์ ์์ต๋๋ค.
- 2022๋ ๋์ ์ค์ ์ง์์ ์ด๋ํ๊ท ์ ๋ค์ ๋น๊ตํด๋ณด๋ฉด, 60์ผ ์ดํ์ ์ด๋ํ๊ท ์ ๋ค์ ์ฝ๊ฒ ๋ฐ๋ฑํ ์๊ฐ์ด ์์ด ๋ณด์ ๋๋ค.
- 2022/09/13 ๋ถ๊ทผ์ ๋จ๊ธฐ์ด๋ํ๊ท ์ ๊ณผ ์ฅ๊ธฐ์ด๋ํ๊ท ์ ์ฌ์ด์ ์ฐจ์ด๊ฐ ์ ์ ์ข์์ง๊ณ ์๊ธฐ๋ ํ์ง๋ง ์์ง ๊ทธ ๊ฐ๊ทน์ด ์ข๋ค๊ณ ๋ ํ ์ ์๊ธฐ์ ์์ผ๋ก์ ์ฃผ๊ฐ ์ญ์ 2800~3000 ์ ์ ๋๊ธฐ์๋ ์ค๋ ์๊ฐ์ด ๊ฑธ๋ฆด ๊ฒ ๊ฐ์ต๋๋ค. ๋ฌผ๋ก ๋จ์ํ ์๊ฐํ๋ฅผ ํตํ ์์ธก์ด๊ธฐ์ ์ด๋ค ์ผ์ด ์๊ธธ์ง๋ ์ฝ๊ฒ ๋ณด์ฅํ ์ ์์ ๋ฏ ํฉ๋๋ค.
๐ ์ด๋ ๊ฒ ํด์ ์ด๋ํ๊ท ์ ๊ณผ ์ง์ ์๊ฐํ๋ฅผ ํตํด ํฅํ KOSPI ์ง์์ ์ถ์ธ๋ฅผ ์์ธกํด ๋ณด์์ต๋๋ค. ํ์ง๋ง ์์น๋ฅผ ์์ธกํ ์๋ ์๊ธฐ ๋๋ฌธ์ ๋ค์ ํฌ์คํ ์์๋ ์ฃผ๊ฐ ์์ธก ๋ชจ๋ธ์ ์ฃผ๋ก ์ฌ์ฉํ๋ FbProphet ๋ชจ๋์ ์ฌ์ฉํด์ ์ฝ์คํผ์ง์๋ฅผ ์์ธกํ ๊ณํ์ ๋๋ค.
Leave a comment