본문 바로가기
컴퓨터 활용/노년에 즐기는 코딩

[Quant] 미국 주식 시장 구조와 데이터 수집 심화 (Week2)

by easyfly 2025. 8. 17.
반응형

 

📊 퀀트 투자 실습 — 미국 주식 시장 구조와 데이터 수집 심화 (Week2)

1. 학습 목표

이번 주차에서는 단일 종목이 아닌 여러 종목과 주요 지수 데이터를 한 번에 수집·비교하는 방법을 다뤘습니다.
또한, 이동평균선(MA20, MA60)을 적용해 단기·장기 추세 분석까지 진행했습니다.


2. 미국 주식 시장 구조 이해

2.1 주요 거래소

거래소 약자  특징
뉴욕증권거래소 NYSE 전통 대기업 다수, 시총 상위 종목 중심
나스닥 NASDAQ IT·성장주 중심, 기술기업 비중 높음
아멕스 AMEX 소규모·특수상품, ETF 상장 활발

2.2 주요 지수(Index)

  • S&P 500 (^GSPC): 미국 대형주 500종목
  • NASDAQ 100 (^IXIC): 나스닥 상위 100개 비금융 종목
  • 다우존스 산업평균 (^DJI): 전통 대기업 30종목

3. 데이터 수집 실습 (Colab)

3.1 기술주 4종 종가 비교

import yfinance as yf
import matplotlib.pyplot as plt

# 분석할 종목
tickers = ['AAPL', 'MSFT', 'TSLA', 'AMZN']

# 최근 1년 종가 데이터
df = yf.download(tickers, period="1y")['Close']

# 그래프 그리기
plt.figure(figsize=(12,6))
for ticker in tickers:
    plt.plot(df.index, df[ticker], label=ticker)

plt.title('Tech Stocks Close Price - 1Y')
plt.xlabel('Date')
plt.ylabel('Price (USD)')
plt.legend()
plt.grid(True)
plt.show()

📌 해석

  • MSFT: 비교적 안정적인 우상향
  • TSLA: 변동성 크고 급등락 빈번
  • AAPL·AMZN: 완만한 변동, 장기 보유 적합 가능성


3.2 미국 주요 지수 비교

index_tickers = ['^GSPC', '^IXIC', '^DJI']
df_index = yf.download(index_tickers, period="1y")['Close']

plt.figure(figsize=(12,6))
for ticker in index_tickers:
    plt.plot(df_index.index, df_index[ticker], label=ticker)

plt.title('Major US Indexes - 1Y')
plt.xlabel('Date')
plt.ylabel('Index Value')
plt.legend()
plt.grid(True)
plt.show()

📌 해석

  • 2025년 3월 전후 모든 지수 하락 → 거시경제 요인 가능성
  • S&P500과 NASDAQ의 변동성 차이가 기술주 비중에서 기인


4. 이동평균선(MA20, MA60) 분석

4.1 코드

ma_periods = [20, 60]
ma_df = df.copy()
for period in ma_periods:
    for ticker in tickers:
        ma_df[(ticker, f"MA{period}")] = df[ticker].rolling(period).mean()

plt.figure(figsize=(14,10))
for i, ticker in enumerate(tickers):
    plt.subplot(2, 2, i+1)
    plt.plot(df.index, df[ticker], label=f"{ticker} Close")
    plt.plot(ma_df.index, ma_df[(ticker, "MA20")], label="MA20", linestyle='--')
    plt.plot(ma_df.index, ma_df[(ticker, "MA60")], label="MA60", linestyle='-.')
    plt.title(f"{ticker} - Close with MA20 & MA60")
    plt.xlabel('Date')
    plt.ylabel('Price (USD)')
    plt.legend()
    plt.grid(True)
plt.tight_layout()
plt.show()

 


4.2 해석

  • Golden Cross: 단기선(MA20)이 장기선(MA60) 상향 돌파 → 상승 신호 가능성
  • Death Cross: 단기선이 장기선 하향 돌파 → 하락 신호 가능성
  • TSLA: 변동성 가장 크고, 교차가 잦음 → 단기 매매 기회 많음
  • MSFT: 추세가 길게 유지 → 안정적 상승 흐름
  • AAPL·AMZN: 중간 수준의 변동성과 추세 전환 패턴

5. 결과 저장 (Google Drive)

from google.colab import drive
drive.mount('/content/drive')

plt.savefig('/content/drive/MyDrive/Quant/tech_stocks_1y.png', dpi=150, bbox_inches='tight')
plt.savefig('/content/drive/MyDrive/Quant/indexes_1y.png', dpi=150, bbox_inches='tight')
  • 생성된 그래프를 Google Drive Quant 폴더에 저장 → 공공 PC에서도 자료 보관 가능

6. 이번 주차 핵심 포인트

  • 여러 종목/지수 데이터를 한 번에 수집 가능
  • 시각화로 종목별·시장별 특성 비교
  • 이동평균선 적용으로 추세와 변동성 한눈에 파악
  • 저장 자동화로 학습 자료 관리 용이

📌 다음 단계:
이동평균선 전략을 이용한 매수·매도 시그널 생성 및 백테스트로 전략의 수익률과 위험도를 검증합니다.

 

반응형

댓글