머신러닝과 기술적 분석

한국주식과 달러환율의 상관관계분석 (python 코드) 본문

백테스트

한국주식과 달러환율의 상관관계분석 (python 코드)

BetterToday 2021. 7. 13. 00:07
728x90

지난 포스트 달러와 주요자산군과의 상관관계 에서 달러의 헤지 역할에 대해서 실험해보았다.

이번에는 한국 주식(코스피지수로 계산)과 원/달러 환율의 상관계수를 구해보았다.

# 테스트 기간: 1995-01-01 ~ 2021-07-31

          USD/KRW      KS11
USD/KRW  1.000000 -0.221569
KS11    -0.221569  1.000000

먼저 상관계수는 -0.221569이다. (예상했던대로 음의 방향이지만 솔직히 더 낮게 나올줄 알았다.)

 

시계열 변화를 그림으로 띄워보면 아래와 같다.

 

 

위기의 순간마다 환율이 뛰는 것을 볼 수 있다. 한국주식에 투자하는 경우 달러자산을 가지고 있으면 확실하게 헤지역할을 하는 것으로 보인다. 달러자산 보유는 필수!

 

(관련 python 코드 첨부)

import pandas as pd
import matplotlib.pyplot as plt
import FinanceDataReader as fdr
TICKERS = ['USD/KRW', "KS11"]
if __name__ == "__main__":
# 1. 날짜별 index 생성
s = "1995-01-01"
e = "2021-07-31"
# dates = pd.date_range(s, e) # : 일단위 상관계수 계산
dates = pd.date_range(s, e, freq='BM') # : 월종가단위 상관계수 계산
# 2. DataFrame 만들기
df = pd.DataFrame(index=dates)
# 3. Ticker 별로 수정종가 데이터를 추가
for ticker in TICKERS:
# df_tmp = data.get_data_yahoo(ticker, s)
df_tmp = fdr.DataReader(ticker)
# df_tmp = fdr2backtrader(df_tmp)
df_tmp = df_tmp[["Close"]]
df_tmp = df_tmp.rename(columns={"Close": ticker})
df = df.join(df_tmp)
df = df.dropna()
# 4. 가격데이터 정규화 : 시작 가격으로 나누어서 시작을 1.0으로 맞추는 과정
df = df / df.iloc[0]
# 5. 월별 변화량 구하기
daily_returns = df.copy()
daily_returns[1:] = (df[1:] / df[:-1].values) - 1
daily_returns.iloc[0] = 0
# 6. 상관계수 출력
print(daily_returns.corr(method="pearson"))
# 7. 시각화
df.plot()
plt.show()
view raw gistfile1.txt hosted with ❤ by GitHub

728x90
반응형
Comments