티스토리 뷰
오늘은 주식 데이터를 활용하여 주가 흐름을 분석하는 방법을 학습했습니다.
FinanceDataReader를 사용해 주식 데이터를 수집하고, 이동평균선 분석, 수익률 계산, 그리고 상승/하락 판단까지 진행했습니다.
이번 실습을 통해 시계열 데이터를 활용한 주식 데이터 분석 기법을 익힐 수 있었습니다.
1. 주식 데이터 수집 및 시각화
1.1 주식 데이터 불러오기
주식 데이터를 분석하기 위해 FinanceDataReader를 활용했습니다.
먼저, 특정 종목의 주식 데이터를 불러오는 방법을 살펴보았습니다.
# 라이브러리 설치 (필요시)
# pip install finance-datareader
import FinanceDataReader as fdr
# KRX(한국거래소) 종목 리스트 가져오기
df = fdr.StockListing('KRX')
# 애플(AAPL) 주식 데이터 수집
df = fdr.DataReader('AAPL', '2022')
1.2 주식 가격 시각화
수집한 데이터를 바탕으로 애플 주식의 종가(Close Price)를 시각화했습니다.
import matplotlib.pyplot as plt
import seaborn as sns
# 주식 가격 시각화
plt.figure(figsize=(10, 6))
sns.lineplot(x=df.index, y=df['Close'])
plt.title("Apple Stock Closed Price in 2022")
plt.xlabel('Date')
plt.ylabel('Price')
plt.show()
2. 데이터 샘플링 및 수익률 분석
2.1 다운 샘플링 (Resampling)
주식 데이터는 매일 기록되기 때문에 분석을 위해 일정한 기간으로 샘플링할 필요가 있습니다.
여기서는 한 달(BM, Business Month) 단위로 다운샘플링하여 평균값을 계산했습니다.
# 한 달 단위로 평균값 계산
df_month = df.resample("BM").mean()
2.2 수익률 계산
수익률(Return)은 다음과 같이 계산됩니다.
수익률=매도가격−매수가격매수가격\text{수익률} = \frac{\text{매도가격} - \text{매수가격}}{\text{매수가격}}
이를 pct_change()를 이용하여 한 달 단위 수익률을 계산했습니다.
# 한 달 단위 수익률 계산
df_month['rtn'] = df_month['Close'].pct_change()
2.3 수익률 시각화
plt.figure(figsize=(10, 6))
sns.lineplot(x=df_month.index, y=df_month['rtn'])
plt.title("Apple Stock Returns in 2022-2023")
plt.xlabel('Date')
plt.ylabel('Return')
plt.show()

3. 이동평균선 분석
3.1 이동평균선 (Moving Average)
이동평균선은 과거 주식 가격의 흐름을 평균 내어 미래 주가를 예측하는 데 사용됩니다.
예를 들어, 5일 이동평균선은 최근 5일간의 종가를 평균내어 나타낸 값입니다.
여기서는 2개월 단위 이동평균선을 구하여 주가 흐름을 분석했습니다.
# 2개월 이동평균선 계산
df_month['MA'] = df_month['Close'].rolling(2).mean()
# 이동평균선 시각화
df_month.iloc[:, [3,7]].plot(figsize=(15,8))
plt.show()

3.2 최근 종가를 이용한 상승/하락 판단
주식이 상승할지 하락할지 판단하기 위해 최근 종가와 이동평균선의 비교를 진행했습니다.
# 이동평균선 (2개월 전 종가)
last_close = df_month['MA'].iloc[-2]
# 최근 종가
price = df_month['Close'].iloc[-1]
# 상승 / 하락 판단
if price > last_close:
print('상승 장')
elif price < last_close:
print('하락 장')
else:
print('변화 없음')
4. 결론 및 정리
4.1 오늘 배운 내용
- FinanceDataReader를 활용하여 주식 데이터 수집
- 주식 가격 및 수익률 시각화
- 다운 샘플링을 이용한 월 단위 데이터 변환
- 이동평균선을 이용한 주가 흐름 분석
- 최근 종가와 이동평균선을 비교하여 상승/하락 판단
4.2 주가 예측을 위한 다음 단계
- 이동평균선을 활용하여 장기적인 주가 흐름 예측
- 특정 시점의 급격한 변동 감지 및 분석
- 다른 보조지표(거래량, RSI 등)와 결합하여 다각적인 분석 수행
오늘 배운 내용을 바탕으로 다양한 주식 데이터를 분석하고, 더 정교한 기법을 적용해 보면 좋을 것 같습니다.
'LG U+ Why Not SW 부트캠프 5기' 카테고리의 다른 글
| [Python] 한국어 전처리와 단어 표현 기법 (0) | 2025.03.11 |
|---|---|
| 파이썬을 이용한 미국 항공 운항 데이터 분석(실습) (1) | 2025.02.28 |
| 시계열 데이터 분석 및 전처리 (0) | 2025.02.21 |
| 데이터 전처리 및 병원 노쇼(No-show) 분석 (1) | 2025.02.21 |
| 파이썬을 이용한 웹 크롤링 & 시각화 실습: 다나와 무선청소기 예제 (0) | 2025.02.20 |
