티스토리 뷰

오늘은 주식 데이터를 활용하여 주가 흐름을 분석하는 방법을 학습했습니다.
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 오늘 배운 내용

  1. FinanceDataReader를 활용하여 주식 데이터 수집
  2. 주식 가격 및 수익률 시각화
  3. 다운 샘플링을 이용한 월 단위 데이터 변환
  4. 이동평균선을 이용한 주가 흐름 분석
  5. 최근 종가와 이동평균선을 비교하여 상승/하락 판단

4.2 주가 예측을 위한 다음 단계

  • 이동평균선을 활용하여 장기적인 주가 흐름 예측
  • 특정 시점의 급격한 변동 감지 및 분석
  • 다른 보조지표(거래량, RSI 등)와 결합하여 다각적인 분석 수행

오늘 배운 내용을 바탕으로 다양한 주식 데이터를 분석하고, 더 정교한 기법을 적용해 보면 좋을 것 같습니다.

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2026/04   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30
글 보관함