Fred API를 이용해서 미국 회사채의 데이터를 수집해서 그래프로 확인하고,
S&P500과 비교해 보겠습니다.
Fredpy로 데이터를 수집하는데 Fred API Key가 필요합니다.
1. Fred 가입 후 API KEY 신청 및 확인하기
2. 미국 회사채 데이터 수집
3. S&P500과 비교
1. Fred 가입 후 API KEY 신청 및 확인하기
2. 미국 회사채 데이터 수집
필요 라이브러리를 import 합니다. API_KEY는 본인의 데이터가 필요합니다.
import pandas as pd
import fredpy as fp
from datetime import datetime, timedelta
#fp.api_key = 'YOUR_API_KEY'
enddate(어제 날짜)를 지정하고 장단기 국채 수익률 데이터를 수집합니다.
symbol은 AAA 'BAMLC0A1CAAAEY', AA 'BAMLC0A2CAAEY' 나머지는 아래 참고 하시기 바랍니다.
enddate=(datetime.now() + timedelta(days=-1)).strftime('%Y-%m-%d')
aaa = fp.series('BAMLC0A1CAAAEY',enddate)
aa = fp.series('BAMLC0A2CAAEY',enddate)
a = fp.series('BAMLC0A3CAEY',enddate)
bbb = fp.series('BAMLC0A4CBBBEY',enddate)
bb = fp.series('BAMLH0A1HYBBEY',enddate)
b = fp.series('BAMLH0A2HYBEY',enddate)
ccc = fp.series('BAMLH0A3HYCEY',enddate)
회사채 AAA의 수익률 데이터를 확인해 볼까요.
1996-12-31부터의 데이터가 확인이 되고 나머지 AA, A, BBB, BB, B, CCC이하의
데이터도 동일한 기간이 제공됩니다.
aaa.data
각 기간별 데이터를 그래프로 확인하겠습니다.
plotly의 subplot을 이용해서 그렸습니다.
import plotly.express as px
from plotly.subplots import make_subplots
import plotly.graph_objects as go
fig = make_subplots(rows=4, cols=2,
subplot_titles=("AAA", "AA", "A", "BBB","BB","B","CCC"))
fig.add_trace(
go.Scatter(x=aaa.data.index, y=aaa.data.values, name="AAA"),
row=1,col=1,
)
fig.add_trace(
go.Scatter(x=aa.data.index, y=aa.data.values, name="AA"),
row=1,col=2,
)
fig.add_trace(
go.Scatter(x=a.data.index, y=a.data.values, name="A"),
row=2,col=1,
)
fig.add_trace(
go.Scatter(x=bbb.data.index, y=bbb.data.values, name="BBB"),
row=2,col=2,
)
fig.add_trace(
go.Scatter(x=bb.data.index, y=bb.data.values, name="BB"),
row=3,col=1,
)
fig.add_trace(
go.Scatter(x=b.data.index, y=b.data.values, name="B"),
row=3,col=2
)
fig.add_trace(
go.Scatter(x=ccc.data.index, y=ccc.data.values, name="CCC"),
row=4,col=1
)
fig.update_layout(title_text='미국 회사채 수익률', title_x=0.5)
fig.show()
하나의 그래프에 합쳐서 그려보겠습니다.
fig = go.Figure()
fig.add_trace(
go.Scatter(x=aaa.data.index, y=aaa.data.values, name="AAA"),
)
fig.add_trace(
go.Scatter(x=aa.data.index, y=aa.data.values, name="AA"),
)
fig.add_trace(
go.Scatter(x=a.data.index, y=a.data.values, name="A"),
)
fig.add_trace(
go.Scatter(x=bbb.data.index, y=bbb.data.values, name="BBB"),
)
fig.add_trace(
go.Scatter(x=bb.data.index, y=bb.data.values, name="BB"),
)
fig.add_trace(
go.Scatter(x=b.data.index, y=b.data.values, name="B"),
)
fig.add_trace(
go.Scatter(x=ccc.data.index, y=ccc.data.values, name="CCC"),
)
fig.show()
3. S&P500과 비교
우선 yahoo finance를 이용해서 S&P500을 1996-12-31부터 수집합니다.
import yfinance as yf
snp=yf.download('^GSPC', '1996-12-31', enddate, auto_adjust=True)
snp
회사채 데이터와 S&P500을 하나의 그래프에 그려보겠습니다.
fig = make_subplots(specs=[[{'secondary_y':True}]])
fig.add_trace(
go.Scatter(x=aaa.data.index, y=aaa.data.values, name="AAA"),
secondary_y=False
)
fig.add_trace(
go.Scatter(x=aa.data.index, y=aa.data.values, name="AA"),
secondary_y=False
)
fig.add_trace(
go.Scatter(x=a.data.index, y=a.data.values, name="A"),
secondary_y=False
)
fig.add_trace(
go.Scatter(x=bbb.data.index, y=bbb.data.values, name="BBB"),
secondary_y=False
)
fig.add_trace(
go.Scatter(x=bb.data.index, y=bb.data.values, name="BB"),
secondary_y=False
)
fig.add_trace(
go.Scatter(x=b.data.index, y=b.data.values, name="B"),
secondary_y=False
)
fig.add_trace(
go.Scatter(x=ccc.data.index, y=ccc.data.values, name="CCC"),
secondary_y=False
)
fig.update_layout(title_text='미국 회사채 수익률과 S&P500', title_x=0.5, title_y=0.9)
fig.add_trace(
go.Scatter(x=snp.index, y=snp['Close'], name='S&P500'),
secondary_y=True
)
fig.show()
회사채 AAA에서 CCC를 뺀 데이터와 AAA에서 BB를 뺀 데이터를 만들겠습니다.
S&P500 주가와 동일한 경향으로 보기 위해 AAA를 기준으로 CCC 및 BB를 뺐습니다.
aaa_ccc=aaa.data-ccc.data
aaa_bbb=aaa.data-bb.data
그래프로 확인해 볼까요.
fig = make_subplots(specs=[[{'secondary_y':True}]])
fig.add_trace(
go.Scatter(x=aaa_ccc.index, y=aaa_ccc.values, name='AAA-CCC'),
secondary_y=True
)
fig.add_trace(
go.Scatter(x=aaa_bbb.index, y=aaa_bbb.values, name='AAA-BB'),
secondary_y=True
)
fig.add_trace(
go.Scatter(x=snp.index, y=snp['Close'], name='S&P500'),
secondary_y=False
)
fig.update_layout(
title_text = '회사채(AAA-CCC, AAA-BB)와 S&P500',
title = {'x':0.5, 'y':0.9}
)
fig.show()
이상으로 미국 회사채의 데이터를 수집해서 그래프로 확인하고,
S&P500과 비교해 봤습니다.
'API' 카테고리의 다른 글
[농림축산식품 API] 가입하기 및 인증키(APPKey) 확인, API 데이터 신청 (8) | 2023.01.02 |
---|---|
[Fred API] 신규주택 착공건수 및 거래건수와 경기침체 확인 (8) | 2023.01.01 |
[Fred API] 하이일드 채권 스프레드와 주가(S&P500, KOSPI) 비교 (4) | 2022.12.29 |
[한국은행 API] 외환보유액과 원달러 환율 비교 (4) | 2022.12.26 |
[한국은행 API] 주요 국가의 생산자 물가 비교 (4) | 2022.12.23 |