# 필요한 라이브러리 임포트
import yfinance as yf # Yahoo Finance에서 금융 데이터 가져오기 위한 라이브러리
import pandas as pd # 데이터 조작 및 분석을 위한 라이브러리
import numpy as np # 수치 연산을 위한 라이브러리
from matplotlib import pyplot as plt # 데이터 시각화를 위한 라이브러리
import matplotlib.dates as mdates # 날짜 포맷을 지원하기 위한 라이브러리
# 폰트 설정
plt.rcParams['font.family'] = 'NanumGothic'
# SPY ETF의 가격 데이터 가져오기
df_SPY = yf.Ticker('SPY').history('max', auto_adjust=True)
# 역사적인 최고가 날짜 찾기
historical_high_date = df_SPY.iloc[df_SPY.Close.argmax()].name.strftime('%Y-%m-%d')
# 가격 그래프 그리기
df_SPY.Close.plot(figsize=(16,8))
plt.title('SPY 종가') # 그래프 제목 설정
plt.axvline(x=historical_high_date, color='green', linestyle='dashed') # 역사적인 최고가 날짜에 수직선 추가
plt.text(x=historical_high_date, y=500, s=historical_high_date); # 최고가 날짜에 텍스트 추가
# SPY ETF의 일별 수익률 데이터 가져오기
df_ret = df_SPY.loc['2020-12-31':'2022-08-31', 'Close'].pct_change().dropna()
df_ret.index = df_ret.index.strftime('%y/%m/%d')
# 수익률 바 차트 그리기
fig, ax = plt.subplots(figsize=(20,8))
ax = df_ret.plot.bar(color=(df_ret>0).map({True: 'g', False: 'r'}))
ax.xaxis.set_major_locator(mdates.MonthLocator(interval=1))
plt.title('SPY 일별 수익률 (2021.1~2022.8)')
plt.axhline(y=0.01, linestyle='dashed') # 수익률 1%에 대한 수평선 추가
plt.axhline(y=-0.01, linestyle='dashed') # 수익률 -1%에 대한 수평선 추가
plt.xticks(fontsize=7) # x축 눈금 크기 설정
plt.ylabel('일일 수익률') # y축 라벨 설정
plt.show() # 그래프 출력
'재테크•투자•경제•주식' 카테고리의 다른 글
모건스탠리캐피털인터내셔널(MSCI) 지수 (0) | 2024.05.05 |
---|---|
2차 전지 개발 관련 재 추진 정책 (0) | 2024.05.05 |
수익률 그래프 출력 (0) | 2024.04.28 |
각 자산의 시장 시작 날짜 확인 (0) | 2024.04.28 |
QuantStats (0) | 2024.04.28 |