파이썬 주식분석 입문
파이썬을 활용한 주식 데이터 분석의 기초. 데이터 수집, 시각화, 간단한 전략 구현까지.
중급9분
#파이썬#Python#주식분석#데이터분석#프로그래밍
먼저 읽으면 좋아요
📝 요약
- 파이썬은 퀀트투자의 가장 대표적인 프로그래밍 언어
- pandas, yfinance, matplotlib로 데이터 수집·분석·시각화
- 간단한 이동평균 전략부터 시작하여 점진적 확장
- 프로그래밍 초보도 기본 분석은 몇 주 내 가능
1. 왜 파이썬인가?
주식 분석에 파이썬이 좋은 이유:
- 배우기 쉬움: 직관적인 문법
- 풍부한 라이브러리: 금융 데이터 처리 도구가 풍부
- 커뮤니티: 자료와 예제가 풍부
- 무료: 설치부터 사용까지 무료
- 확장성: 간단한 분석부터 AI까지
핵심 라이브러리:
- pandas: 데이터 처리의 핵심
- yfinance: 야후 파이낸스에서 주가 데이터 수집
- matplotlib/plotly: 차트 시각화
- numpy: 수치 계산
- backtrader: 백테스팅 프레임워크
📌 설치: pip install pandas yfinance matplotlib
💡 코딩을 몰라도 ChatGPT 같은 AI 도구를 활용하면 파이썬 코드를 더 쉽게 작성할 수 있습니다.
2. 주가 데이터 수집
yfinance로 데이터 가져오기:
기본 사용법:
import yfinance as yf
import pandas as pd
# 삼성전자 데이터
data = yf.download("005930.KS", start="2020-01-01")
print(data.head())
가져올 수 있는 데이터:
- 시가, 고가, 저가, 종가
- 거래량
- 수정 종가 (배당·분할 반영)
여러 종목 한 번에:
tickers = ["AAPL", "MSFT", "GOOGL"]
data = yf.download(tickers, start="2020-01-01")
📌 한국 주식은 티커 뒤에 .KS(코스피) 또는 .KQ(코스닥)를 붙입니다.
💡 데이터를 CSV로 저장해두면 매번 다운로드할 필요가 없습니다.
3. 데이터 분석과 시각화
기본 분석:
# 일간 수익률
data["Returns"] = data["Close"].pct_change()
# 누적 수익률
data["Cumulative"] = (1 + data["Returns"]).cumprod()
# 이동평균
data["MA20"] = data["Close"].rolling(20).mean()
data["MA60"] = data["Close"].rolling(60).mean()
시각화:
import matplotlib.pyplot as plt
data["Close"].plot(figsize=(12,6), title="주가 추이")
data["MA20"].plot()
data["MA60"].plot()
plt.legend(["종가", "20일 이동평균", "60일 이동평균"])
plt.show()
📌 유용한 분석:
- 상관관계 분석: data.corr()
- 변동성(표준편차): data["Returns"].std() * (252**0.5)
- 최대낙폭(MDD) 계산
💡 시각화는 데이터를 이해하는 가장 강력한 도구입니다.
4. 간단한 전략 구현
이동평균 교차 전략:
단기 이동평균이 장기 이동평균을 상향 돌파하면 매수, 하향 돌파하면 매도하는 전략입니다.
# 신호 생성
data["Signal"] = 0
data.loc[data["MA20"] > data["MA60"], "Signal"] = 1
data.loc[data["MA20"] <= data["MA60"], "Signal"] = -1
# 전략 수익률
data["Strategy"] = data["Signal"].shift(1) * data["Returns"]
# 누적 수익 비교
data[["Cumulative", "Strategy_Cum"]].plot()
📌 다음 단계로:
- 팩터 기반 종목 선정 자동화
- 포트폴리오 최적화 (Markowitz)
- 백테스팅 프레임워크 구축 (backtrader, bt)
- 자동 매매 시스템 (API 연동)
💡 처음에는 코드를 복사해서 실행하며 익히고, 점차 수정하면서 이해를 넓혀가세요.
핵심 용어
- pandas
파이썬의 데이터 분석 라이브러리. DataFrame으로 테이블 데이터 처리
- yfinance
야후 파이낸스에서 주가 데이터를 무료로 가져오는 라이브러리
- backtrader
파이썬 기반의 백테스팅 프레임워크. 전략 시뮬레이션에 사용
- DataFrame
pandas의 핵심 데이터 구조. 행과 열로 구성된 표
⚠️ 본 콘텐츠는 정보 제공 목적이며, 투자 권유가 아닙니다. 투자 결정은 본인의 판단과 책임 하에 이루어져야 합니다.