반응형
한국은행 API를 이용해서 경기심리지수 및 뉴스심리지수와 코스피 주가를 비교해 보겠습니다.
확인을 위해서는 한국은행 API에 가입이 되어 있어야 합니다.
1. 한국은행 API 가입
2. 경기 심리지수 확인
3. 뉴스 심리지수 확인
4. 경기 심리지수 및 뉴스 심리지수와 코스피
1. 한국은행 API 가입
2. 경기 심리지수 확인
경기심리지수의 설명은 아래와 같습니다.
경기 심리지수를 불러오겠습니다.
경기 심리지수는 STAT_CODE=513Y001 (6.3. 경제심리지수)에서 확인이 가능합니다.
그럼 데이터를 불러오겠습니다.
import requests
url = 'https://ecos.bok.or.kr/api/StatisticSearch/' + apikey \
+ '/json/kr/1/100/513Y001/M/200501/202212'
response = requests.get(url)
result = response.json()
list_total_count=(int)(result['StatisticSearch']['list_total_count'])
list_count=(int)(list_total_count/100) + 1
rows=[]
for i in range(0,list_count):
start = str(i * 100 + 1)
end = str((i + 1) * 100)
url = 'https://ecos.bok.or.kr/api/StatisticSearch/' + apikey + '/json/kr/' \
+ start + '/' + end + '/513Y001/M/200501/202212'
response = requests.get(url)
result = response.json()
rows = rows + result['StatisticSearch']['row']
df=pd.DataFrame(rows)
df
Plotly를 이용해서 그래프로 확인해 보겠습니다.
import plotly.graph_objects as go
from plotly.subplots import make_subplots
import plotly.express as px
fig=px.line(data_frame=df, x='datetime', y='DATA_VALUE',
color='ITEM_NAME1',
labels={'ITEM_NAME1':'구분','DATA_VALUE':'경제심리지수','TIME':'날짜'})
fig.update_layout(
title_text='경제심리지수',
title={'x':0.5}
)
fig.show()
반응형
3. 뉴스 심리지수 확인
다음으로는 뉴스 심리지수를 확인해 보겠습니다.
뉴스 심리지수는 STAT_CODE=521Y001 (6.4. 뉴스심리지수(실험적 통계) )에서 확인이 가능합니다.
경기 심리지수는 데이터가 한 달 간격이고, 뉴스 심리지수는 하루 간격입니다.
그럼 데이터를 불러오겠습니다.
url = 'https://ecos.bok.or.kr/api/StatisticSearch/' + apikey \
+ '/json/kr/1/100/521Y001/D/20050101/20221231'
response = requests.get(url)
result = response.json()
list_total_count=(int)(result['StatisticSearch']['list_total_count'])
list_count=(int)(list_total_count/100) + 1
rows=[]
for i in range(0,list_count):
start = str(i * 100 + 1)
end = str((i + 1) * 100)
url = 'https://ecos.bok.or.kr/api/StatisticSearch/' + apikey + '/json/kr/' \
+ start + '/' + end + '/521Y001/D/20050101/20221231'
response = requests.get(url)
result = response.json()
rows = rows + result['StatisticSearch']['row']
df2=pd.DataFrame(rows)
df2
그래프로 확인해 보겠습니다.
fig=px.line(data_frame=df2, x='datetime', y='DATA_VALUE',
color='ITEM_NAME1',
labels={'ITEM_NAME1':'구분','DATA_VALUE':'뉴스심리지수','TIME':'날짜'})
fig.update_layout(
title_text='뉴스심리지수',
title={'x':0.5}
)
fig.show()
반응형
4. 경기 심리지수 및 뉴스 심리지수와 코스피
경기 심리지수와 뉴스 심리지수를 하나의 그래프에서 확인하겠습니다.
df1=df.loc[df['ITEM_CODE1']=='E1000']
fig = make_subplots(specs=[[{'secondary_y':True}]])
fig.add_trace(
go.Scatter(x=df2['datetime'], y=df2['DATA_VALUE'], name='뉴스심리지수'),
secondary_y=False
)
fig.add_trace(
go.Scatter(x=df1['datetime'], y=df1['DATA_VALUE'], name='경기심리지수'),
secondary_y=False
)
fig.update_layout(
title_text = '경기심리지수와 뉴스심리지수',
title = {'x':0.5, 'y':0.9}
)
fig.show()
뉴스 심리지수가 경기 심리지수보다 선행하는 그래프처럼 보입니다.
다음은 경기 심리지수와 코스피를 보겠습니다.
df1=df.loc[df['ITEM_CODE1']=='E1000']
fig = make_subplots(specs=[[{'secondary_y':True}]])
fig.add_trace(
go.Scatter(x=df1['datetime'], y=df1['DATA_VALUE'], name='경기심리지수'),
secondary_y=False
)
fig.add_trace(
go.Scatter(x=kospi.index, y=kospi['Close'], name='코스피지수'),
secondary_y=True
)
fig.update_layout(
title_text = '경기심리지수와 코스피',
title = {'x':0.5, 'y':0.9}
)
fig.show()
뉴스 심리지수와 코스피를 보겠습니다.
fig = make_subplots(specs=[[{'secondary_y':True}]])
fig.add_trace(
go.Scatter(x=df2['datetime'], y=df2['DATA_VALUE'], name='뉴스심리지수'),
secondary_y=False
)
fig.add_trace(
go.Scatter(x=kospi.index, y=kospi['Close'], name='코스피지수'),
secondary_y=True
)
fig.update_layout(
title_text = '뉴스심리지수와 코스피',
title = {'x':0.5, 'y':0.9}
)
fig.show()
2016년부터로 기간을 축소해 보겠습니다. 뉴스심리지수가 살짝 선행하는 것처럼 보이기도 합니다.
이상으로 경기심리지수 및 뉴스심리지수와 코스피 주가를 비교해 보겠습니다.
반응형
'API' 카테고리의 다른 글
[한국은행 API] 위안, 엔, 달러 환율과 KOSPI (1978) | 2023.01.17 |
---|---|
[한국은행 API] 주요국가 외환보유액과 2022년 변동율 비교 (3433) | 2023.01.16 |
[한국은행 API] 수출금액지수 수집 및 전년도 동월과 전월 대비 변동 확인 (3422) | 2023.01.11 |
[한국은행 API] 수입금액지수 수집 및 전년도 동월과 전월 대비 변동 확인 (3450) | 2023.01.09 |
[농림축산식품 API] 가입하기 및 인증키(APPKey) 확인, API 데이터 신청 (8) | 2023.01.02 |