파이썬 주식분석 입문

    파이썬을 활용한 주식 데이터 분석의 기초. 데이터 수집, 시각화, 간단한 전략 구현까지.

    중급9분
    #파이썬#Python#주식분석#데이터분석#프로그래밍

    📝 요약

    • 파이썬은 퀀트투자의 가장 대표적인 프로그래밍 언어
    • pandas, yfinance, matplotlib로 데이터 수집·분석·시각화
    • 간단한 이동평균 전략부터 시작하여 점진적 확장
    • 프로그래밍 초보도 기본 분석은 몇 주 내 가능

    1. 왜 파이썬인가?

    주식 분석에 파이썬이 좋은 이유:

    1. 배우기 쉬움: 직관적인 문법
    2. 풍부한 라이브러리: 금융 데이터 처리 도구가 풍부
    3. 커뮤니티: 자료와 예제가 풍부
    4. 무료: 설치부터 사용까지 무료
    5. 확장성: 간단한 분석부터 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의 핵심 데이터 구조. 행과 열로 구성된 표

    ⚠️ 본 콘텐츠는 정보 제공 목적이며, 투자 권유가 아닙니다. 투자 결정은 본인의 판단과 책임 하에 이루어져야 합니다.