반응형
yahoo finance를 이용해서 금 은 구리 및 S&P500 데이터를 수집하고 금-은 스프레드, 금-구리 스프레드를 구하겠습니다.
데이터를 가져오기 위해서는 yfinance의 설치가 필요합니다.
아래의 명령어로 설치가 가능합니다.
pip install yfinance
금(GC=F), 은(SI=F), 구리(HG=F) 및 S&P500(^GSPC)를 수집하겠습니다.
import yfinance as yf
from datetime import datetime, timedelta
startdate='2006-01-01'
enddate=(datetime.now() + timedelta(days=-1)).strftime('%Y-%m-%d')
gld=yf.download('GC=F', startdate, enddate, auto_adjust=True)
silv=yf.download('SI=F', startdate, enddate, auto_adjust=True)
hg=yf.download('HG=F', startdate, enddate, auto_adjust=True)
snp=yf.download('^GSPC', startdate, enddate, auto_adjust=True)
금 데이터가 수집된 것을 알 수 있습니다.
gld.head()
금, 은을 하나의 DataFrame으로 만들겠습니다.
import pandas as pd
gs=pd.concat([gld[['Close']],silv[['Close']]], axis=1)
gs.columns=['gold','silver']
gs
금과 은은 데이터의 Scale이 달라서 MinMaxScaler를 이용해서 정규화를 하겠습니다.
그리고 금데이터와 은데이터의 차분을 구해서 spread에 저장합니다.
from sklearn.preprocessing import MinMaxScaler
scaler = MinMaxScaler()
scaler.fit(gs)
df1 = scaler.transform(gs)
gldscal=pd.DataFrame(df1, index=gs.index,columns=['gld','silv'])
gldscal['spread']=gldscal['gld']-gldscal['silv']
gldscal
반응형
S&P500과 금-은 스프레드를 그래프로 확인해 보겠습니다.
import plotly.express as px
import plotly.graph_objects as go
from plotly.subplots import make_subplots
# Create figure with secondary y-axis
fig = make_subplots(specs=[[{"secondary_y": True}]])
# Add traces
fig.add_trace(
go.Line(x=snp.index, y=snp['Close'], name="S&P500"),
secondary_y=True,
)
fig.add_trace(
go.Line(x=gldscal.index, y=gldscal['spread'], name="금-은 스프레드"),
secondary_y=False,
)
fig.update_layout(
title_text='금-은 스프레드와 S&P500',
title={'x':0.5, 'y':0.85}
)
fig.show()
기간을 2014년 이전 이후로 나누어서 확인해 보겠습니다.
반응형
다음으로는 금과 구리를 알아보겠습니다.
우선 금과 구리를 정규화한 후에 스프레드 데이터를 구합니다.
gh=pd.concat([gld[['Close']],hg[['Close']]], axis=1)
gh.columns=['gold','hg']
scaler = MinMaxScaler()
scaler.fit(gh)
df2 = scaler.transform(gh)
hgscal=pd.DataFrame(df2, index=gh.index,columns=['gld','hg'])
hgscal['spread']=hgscal['gld']-hgscal['hg']
hgscal
그래프로 확인하겠습니다.
S&P500과는 반대로 움직이는 부분들이 많이 보이고 있습니다.
2014년 이전 이후로 나누어서 보겠습니다.
이상으로 금 은 구리 및 S&P500 데이터를 수집하고 금-은 스프레드, 금-구리 스프레드를 확인해 봤습니다.
반응형
'API' 카테고리의 다른 글
[한국은행 API] 한국 기준금리와 국채 수익률 스프레드 (4) | 2023.03.16 |
---|---|
[통계청 API] 해외 입국자의 국적,연령대,입국 목적별 정보수집(2022년) (4) | 2023.03.06 |
[통계청 API] 서울 각 구별 초중고 학생 순 이동자수(2006년~2022년) (4) | 2023.02.28 |
[통계청 API] 시군구별 인구이동 통계(2006년~2022년) (4) | 2023.02.24 |
[통계청 API] 가입 후 API key 신청 및 확인 (4) | 2023.02.21 |