금융 데이터 분석을 위한 Python 코드로, 여러 주요 라이브러리를 활용하여 특정 자산의 종가 데이터를 다운로드하고, 각 자산의 시작 날짜를 출력합니다. 사용된 라이브러리와 코드의 각 부분을 자세히 설명하겠습니다.
코드 구조 및 사용된 라이브러리:
1. 기본 설정과 라이브러리 임포트
- `pandas` (as `pd`): 데이터 조작 및 분석을 위한 주요 라이브러리입니다.
- `numpy` (as `np`): 수치 계산을 위한 라이브러리입니다.
- `matplotlib.pyplot` (as `plt`): 데이터 시각화를 위한 라이브러리입니다.
- `IPython_default`: IPython 환경에서 기본 matplotlib 설정을 저장합니다. 이를 통해 그래프 스타일을 초기 상태로 재설정할 수 있습니다.
- `yfinance` (as `yf`): Yahoo Finance API를 통해 금융 데이터를 불러오는 라이브러리입니다.
- `pyfolio` (as `pf`): 투자 포트폴리오의 성과 분석을 위한 라이브러리입니다 (이 코드에서는 사용되지 않았습니다).
- `quantstats` (as `qs`): 투자 포트폴리오의 성과 및 리스크 분석을 위한 라이브러리입니다 (이 코드에서는 사용되지 않았습니다).
2. 티커 설정 및 데이터 다운로드
- `tickers`: 분석할 자산의 티커 리스트로,
- 'SPY' (S&P 500 ETF),
- 'TLT' (장기 미국 국채 ETF),
- 'GLD' (금 ETF),
- 'BIL' (단기 국채 ETF),
- 'IEF' (중기 미국 국채 ETF)
를 포함합니다
- `yf.download()`: yfinance를 사용하여 위 티커들의 최대 기간 데이터를 일일 간격으로 다운로드 `auto_adjust=True` 옵션은 주가 조정을 자동으로 처리하여, 분할, 배당 등으로 인한 가격 변동을 조정
3. 데이터 출력
- 코드는 각 자산의 시작 날짜를 계산하여 출력합니다.
df_close[[ticker]].dropna().iloc[0].name.strftime('%Y-%m-%d')
는 각 티커에 대해 종가 데이터에서 결측치를 제거하고, 첫 번째 행의 날짜를 문자열로 변환하여 출력합니다.
요약:
이 스크립트는 주로 데이터 수집과 초기 처리에 초점을 맞추고 있습니다. 주어진 티커에 대한 금융 데이터를 가져오고, 각 자산의 시장 시작 날짜를 확인합니다. 이 정보는 포트폴리오 분석, 트레이딩 전략 개발 또는 투자 리서치에 유용하게 사용될 수 있습니다. 추가적으로, pyfolio나 quantstats 같은 라이브러리를 활용하여 다운로드한 데이터에 대한 깊이 있는 성과 분석을 수행할 수도 있습니다.
import pandas as pd
import numpy as np
from matplotlib import pyplot as plt
IPython_default = plt.rcParams.copy()
import yfinance as yf
import pyfolio as pf
import quantstats as qs
tickers = ['SPY', 'TLT', 'GLD', 'BIL', 'IEF']
df_close = yf.download(tickers=tickers,
period='max',
interval='1d',
auto_adjust=True # True: adjust all OHLC automatically
)['Close'][tickers]
print('Start date of each stock')
print('-'*25)
for ticker in tickers:
print(f"{ticker}: {df_close[[ticker]].dropna().iloc[0].name.strftime('%Y-%m-%d')}")
print('-'*25)
결과
'재테크•투자•경제•주식' 카테고리의 다른 글
SPY 누적수익률, 최고점, 일별수익률 (0) | 2024.04.28 |
---|---|
수익률 그래프 출력 (0) | 2024.04.28 |
QuantStats (0) | 2024.04.28 |
pyfolio (0) | 2024.04.28 |
해리 브라운(Harry Browne) (0) | 2024.04.28 |