본문 바로가기

API

[yahoo finance API] Crude oil과 달러인덱스 ,금, S&P500 비교

반응형

yahoo finance를 이용해서 crude oil과 달러 인덱스 및 금, S&P500 데이터를 불러와서 그래프로 비교해 보겠습니다.

데이터를 가져오기 위해서는 yfinance의 설치가 필요합니다.

아래의 명령어로 설치가 가능합니다.

pip install yfinance

 

우선 crude oil 정보를 불러오겠습니다.

2001-01-01부터의 정보입니다.

import yfinance as yf
from datetime import datetime

enddate=datetime.now().strftime('%Y-%m-%d')
oil=yf.download('CL=F', '2001-01-01', enddate, auto_adjust=True)
oil

잘 수집이 되었습니다.

 

그래프로 볼까요

import plotly.graph_objects as go
from plotly.subplots import make_subplots
import plotly.express as px

fig=px.line(data_frame=oil, x=oil.index, y='Close')
fig.update_layout(
    title_text='Crude Oil',
    title={'x':0.5}
)
fig.show()

 

 

달러 인덱스를 불러와 보겠습니다.

dol=yf.download('DX-Y.NYB', '2001-01-01', enddate, auto_adjust=True)
dol

 

crude oil과 달러인덱스를 비교해 보겠습니다.

fig = make_subplots(specs=[[{'secondary_y':True}]])


fig.add_trace(
    go.Scatter(x=oil.index, y=oil['Close'], name='Crude Oil'),
    secondary_y=False
)

fig.add_trace(
    go.Scatter(x=dol.index, y=dol['Close'], name='달러 인덱스'),
    secondary_y=True
)


fig.update_layout(
    title_text = 'Crude Oil vs 달러 인덱스',
    title = {'x':0.5, 'y':0.9}
)

fig.show()

달러 인덱스와 oil은 전체적으로 역상관의 관계가 보이는 것 같습니다.

 

반응형

 

Crude oil과 금 데이터를 비교해 보겠습니다.

gld=yf.download('GC=F', '2001-01-01', enddate, auto_adjust=True)
gld
fig = make_subplots(specs=[[{'secondary_y':True}]])


fig.add_trace(
    go.Scatter(x=oil.index, y=oil['Close'], name='Crude Oil'),
    secondary_y=False
)

fig.add_trace(
    go.Scatter(x=gld.index, y=gld['Close'], name='Gold'),
    secondary_y=True
)


fig.update_layout(
    title_text = 'Crude Oil vs Gold',
    title = {'x':0.5, 'y':0.9}
)

fig.show()

코로나 기간을 제외한 나머지 구간은 같은 방향으로 움직이는 것처럼 보입니다.

 

 

다음으로 Crude oil과 S&P500을 비교해 보겠습니다.

snp=yf.download('^GSPC', '2001-01-01', enddate, auto_adjust=True)
snp
fig = make_subplots(specs=[[{'secondary_y':True}]])


fig.add_trace(
    go.Scatter(x=oil.index, y=oil['Close'], name='Crude Oil'),
    secondary_y=False
)

fig.add_trace(
    go.Scatter(x=snp.index, y=snp['Close'], name='S&P 500'),
    secondary_y=True
)


fig.update_layout(
    title_text = 'Crude Oil vs S&P 500',
    title = {'x':0.5, 'y':0.9}
)

fig.show()

 

이상으로 ycrude oil과 달러 인덱스 및 금, S&P500 데이터를 불러와서 그래프로 비교해 봤습니다.

반응형