본문 바로가기
주린이의 주식 투자/동앤트 ETF 투자

[파이썬] Pykrx 패캐지를 활용한 국내 상장된 게임 ETF 분석

by 동장군님 2020. 11. 21.
728x90
반응형

Pykrx

이번 포스팅에서는 금융 데이터를 분석해줄 수 있는 파이썬 Pykrx 패키지를 활용해서 국내 상장된 게임 ETF들에 대해 분석하도록 하겠다. 분석에 앞서 당연한 얘기이지만 해당 패키지를 파이썬으로 활용하기 위해서는 우선 아래와 같이 pykrx 패키지를 설치해야 한다. Pykrx 관련 패키지 관련 내용은 아래 링크에서 확인할 수 있다.

 

"pip install pykrx"

github.com/sharebook-kr/pykrx

 

sharebook-kr/pykrx

KRX 주식 정보 스크래핑. Contribute to sharebook-kr/pykrx development by creating an account on GitHub.

github.com

 

게임 ETF 종목 코드 추출

Pykrx에 있는 Stock 함수를 사용하면 국내 상장된 ETF 종목 코드를 다 가져올 수 있다. 다만 종목 코드만 보면 이게 어떤 ETF인지 모르기 때문에 다음 Naver에서 제공하고 있는 ETF 정보를 크롤링해서 종목코드와 종목명을 다 가져오도록 하겠다. 아래 코드를 통해 game_etf를 출력하면 총 3개의 게임 ETF(KBSTAR 게임테마, KODEX 게임산업, Tiger K 게임)가 있는 점을 확인할 수 있다. 원래 4개인데, 그중 하나는 ETF 상장된 지 얼마 안 돼서 제외를 했다. 

 

from pykrx import stock
import requests
import json
from pandas.io.json import json_normalize
import pandas as pd

tickers = stock.get_etf_ticker_list("20201119")
tickers=pd.DataFrame(tickers,columns=['종목코드'])

url = 'https://finance.naver.com/api/sise/etfItemList.nhn'
json_data = json.loads(requests.get(url).text)
df = json_normalize(json_data['result']['etfItemList'])
df=df[['itemcode','itemname']]
df=df.rename(columns={"itemcode": "종목코드", "itemname": "종목명"})

etf=pd.merge(left=tickers,right=df,how='left',on='종목코드' )
game_etf=etf[etf['종목명'].str.contains('게임')][1:]

 

 

데이터 시각화#1 - 주가 차트

다음으로 해당 3개 게임 ETF의 주가를 시각화하겠다. 기간은 2019년 1월 이후 현재까지로 잡았다. 시각화한 결과 역시 대부분 구성 종목이 비슷하다 보니 차트 형태가 3개 모두 유사하게 나타나고 있는 상황이다.

 

stocks=dict()
for a, b in game_etf[['종목명', '종목코드']].itertuples(index=False):
    price = stock.get_etf_ohlcv_by_date("20190101", "20201119", b)
    stocks[a]=price['종가'].values[:].tolist()
prices=pd.DataFrame(stocks)
prices.index=price.index

import matplotlib.pyplot as plt

plt.rcParams["font.family"] = 'Malgun Gothic'
plt.rcParams["font.size"] = 16
plt.figure(figsize=(16,8))

plt.plot(prices)
plt.legend(['KBSTAR 게임테마','KODEX 게임산업','TIGER K게임'],loc='upper left')

 

 

 

데이터 시각화#2 - 괴리율

ETF 분석을 할 때 가장 중요한 게 바로 괴리율이다. 실제 ETF가 보유한 순자산 가치와 ETF 주가가 얼마나 차이가 나는지 보는 지표인데, 여기 pykrx도 ETF 괴리율 정보를 제공하고 있어서 한번 시각화해봤다.

 

deviation=dict()
for a, b in game_etf[['종목명', '종목코드']].itertuples(index=False):
    dev = stock.get_etf_price_deviation("20190101", "20201119", b)
    deviation[a]=dev['괴리율'].values[:].tolist()
deviations=pd.DataFrame(deviation)
deviations.index=dev.index

import matplotlib.pyplot as plt

plt.rcParams["font.family"] = 'Malgun Gothic'
plt.rcParams["font.size"] = 16
plt.figure(figsize=(16,8))

plt.plot(deviations)
plt.legend(['KBSTAR 게임테마','KODEX 게임산업','TIGER K게임'],loc='upper left')

 

 

이번 포스팅에서는 간단히 ETF 주가와 괴리율만 가져와서 시각화를 해봤는데, 다음 시간에는 ETF가 보유한 상장 종목을 가지고 보도록 하겠다.

 

 

728x90
반응형

댓글