한국은행 API를 이용해서 주요 국가의 외환 보유액을 확인하고, 22년 금리 상승기의 외환 보유액 변동을 확인해 보겠습니다.
확인을 위해서는 한국은행 API에 가입이 되어 있어야 합니다.
1. 한국은행 API 가입
2. 주요 국가의 외환 보유액
3. 22년도 외환보유액 변동
1. 한국은행 API 가입
2. 주요국가의 외환 보유액
외환 보유액은 STAT_CODE=902Y014(9.1.3.6. 국제 주요국 외환보유액 )에서 확인이 가능합니다.
2000년 1월에서 2022년 12월까지 설정했고, 월 단위로 설정했습니다.
그럼 데이터를 불러오겠습니다.
import requests
url = 'https://ecos.bok.or.kr/api/StatisticSearch/' + apikey \
+ '/json/kr/1/100/902Y014/M/200101/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 + '/902Y014/M/200101/202212'
response = requests.get(url)
result = response.json()
rows = rows + result['StatisticSearch']['row']
df=pd.DataFrame(rows)
df
아래의 41개의 국가들의 데이터가 제공됩니다.
df['ITEM_NAME1'].unique()
필요한 column들만 저장하고, datetime type의 date column을 생성하겠습니다.
df1=df[['ITEM_NAME1','TIME','DATA_VALUE']]
df1['date']=pd.to_datetime((df1['TIME'].str[:4] + '-' + df1['TIME'].str[4:6] + '-01'))
df1=df1.astype({'DATA_VALUE':'float'})
df1=df1.drop_duplicates()
df1
2022년 11월 기준으로 외환 보유액 순위입니다.
중국이 가장 많고, 우리나라는 6번째로 많은 것으로 확인이 됩니다.
import plotly.graph_objects as go
from plotly.subplots import make_subplots
import plotly.express as px
df202211=df1.loc[df1['date']=='2022-11-01'].sort_values('DATA_VALUE')
fig=px.bar(data_frame=df202211, x='DATA_VALUE', y='ITEM_NAME1')
fig.update_layout(
title_text='주요국가의 정책금리(2022년 11월)',
title={'x':0.5},
height=700
)
fig.show()
외환보유액 상위 8개 국가들에 대해서 장기 트렌드를 확인하겠습니다.
country=['중국','일본','스위스','러시아','인도','한국','브라질','독일']
df2=df1.loc[df['ITEM_NAME1'].isin(country)]
df2
fig=px.line(data_frame=df2, x='date', y='DATA_VALUE',
color='ITEM_NAME1', facet_col='ITEM_NAME1', facet_col_wrap=4,
labels={'ITEM_NAME1':'국가','DATA_VALUE':'외환보유액','TIME':'날짜'})
fig.update_layout(
title_text='주요국가의 정책금리',
title={'x':0.5}
)
fig.show()
중국은 2015년 이후 외환 보유액이 감소했고, 나머지는 증가하는 모습을 보입니다.
스위스의 경우는 2009년 이후 증가 폭이 큰 것을 알 수 있습니다.
2022년 근처에서는 보유액이 감소하는데 기준 금리 이상이 영향이 있는 것 같습니다.
3. 22년도 외환보유액 변동
2022년 1월부터 2022년 11월까지의 데이터만 저장하고,
각 국가의 변동률 및 누적 변동률을 계산했습니다.
df3=df1.loc[(df1['date']>='2022-01-01') & (df1['date']<='2022-11-01')]
df3['변동율']=0
df3['누적변동율']=0
countries=df3['ITEM_NAME1'].unique()
for country in countries:
df3.loc[df3['ITEM_NAME1']==country,'변동율'] = \
df3.loc[df3['ITEM_NAME1']==country,'DATA_VALUE'].pct_change()
df3.loc[df3['ITEM_NAME1']==country,'누적변동율'] = \
((df3.loc[df3['ITEM_NAME1']==country,'변동율'] + 1).cumprod()-1) * 100
df3
그럼 2022년 1월 ~ 11월의 외환보유액의 누적변동률을 확인해 보겠습니다.
df3_11=df3.loc[df3['date']=='2022-11-01'].sort_values('누적변동율')
fig=px.bar(data_frame=df3_11, x='누적변동율', y='ITEM_NAME1')
fig.update_layout(
title_text='외환보유액 누적변동(2022/01 ~ 2022/11)',
title={'x':0.5},
height=700
)
fig.show()
대부분의 국가들이 보유액이 감소했지만, 터키, 슬로바키아, 남아공등의 몇 개의 국가들은 증가했습니다.
체코, 칠레, 그리스, 라트비아는 감소 비율이 큰 국가들입니다.
이상으로 주요 국가의 외환 보유액을 확인하고, 22년 금리 상승기의 외환 보유액 변동을 확인해 보겠습니다.
'API' 카테고리의 다른 글
[yahoo finance API] Crude oil과 달러인덱스 ,금, S&P500 비교 (1605) | 2023.01.20 |
---|---|
[한국은행 API] 위안, 엔, 달러 환율과 KOSPI (1978) | 2023.01.17 |
[한국은행 API] 경기심리지수, 뉴스심리지수와 코스피 주가 (2071) | 2023.01.13 |
[한국은행 API] 수출금액지수 수집 및 전년도 동월과 전월 대비 변동 확인 (3422) | 2023.01.11 |
[한국은행 API] 수입금액지수 수집 및 전년도 동월과 전월 대비 변동 확인 (3450) | 2023.01.09 |