인프런 커뮤니티 질문&답변
Breadth MMFI 404 에러
해결된 질문
작성
·
35
0
안녕하세요 Part 2 프롬프트 5번에서 MMFI 지표 바탕으로 Breadth 관련 지표를 두고 있는데, 404에러가 확인됩니다. (강사님 코드로도)
연관 강의: 200일선의 마법 & Breadth & 금리/신용 센서
연관 프롬프트:
_breadth_signal 메서드를 추가해줘.
yfinance로 ^MMFI(NYSE 50일 MA 위 종목 비율)를 3개월치 가져와서:
- 70% 이상: risk_on
- 50~70%: neutral
- 30~50%: risk_off
- 30% 미만: crisis
데이터 수집 실패 시 {'breadth_pct': None, 'breadth_regime': 'neutral'} 반환.
logger.debug로 에러 로깅하되 시스템은 멈추지 않도록 해줘.
다른 대체 지표를 두고 해야할 것 같은데, 어떤게 좋을까요?
퀴즈
시장 국면 탐지는 시장 분석에서 무엇에 비유될 수 있을까요?
개인 투자자의 감
주식 시장의 날씨 앱
과거 데이터 기록
경제 지표 통계
답변 1
0
수강 감사합니다!
아래 부분한번 고려해주시겠나요!
방법 1: RSP/SPY 비율 (가장 쉬움)
def breadthsignal(self):
"""RSP(Equal Weight) / SPY 비율로 breadth 대체"""
try:
data = yf.download(['RSP', 'SPY'], period='3mo')['Close']
ratio = (data['RSP'] / data['SPY']).dropna()
current = ratio.iloc[-1]
avg = ratio.rolling(50).mean().iloc[-1]
# RSP/SPY > 평균: 소형주 강세 = breadth 좋음
pct = (current / avg - 1) * 100
if pct > 2: regime = 'risk_on'
elif pct > 0: regime = 'neutral'
elif pct > -2: regime = 'risk_off'
else: regime = 'crisis'
return {'breadth_pct': round(float(pct), 1), 'breadth_regime': regime}
except:
return {'breadth_pct': None, 'breadth_regime': 'neutral'}
방법 2: 직접 계산 (정확도 높음)
def breadthsignal(self):
"""S&P500 종목 중 50일선 위 비율 직접 계산"""
try:
import pandas as pd
sp500 = pd.read_html('https://en.wikipedia.org/wiki/List_of_S%26P_500_companies')[0]
tickers = sp500['Symbol'].tolist()[:100] # 상위 100개만 (속도)
data = yf.download(tickers, period='3mo')['Close']
above_50ma = 0
total = 0
for col in data.columns:
series = data[col].dropna()
if len(series) >= 50:
ma50 = series.rolling(50).mean().iloc[-1]
if series.iloc[-1] > ma50:
above_50ma += 1
total += 1
pct = (above_50ma / total * 100) if total > 0 else 50
# ^MMFI와 동일한 기준
if pct >= 70: regime = 'risk_on'
elif pct >= 50: regime = 'neutral'
elif pct >= 30: regime = 'risk_off'
else: regime = 'crisis'
return {'breadth_pct': round(pct, 1), 'breadth_regime': regime}
except:
return {'breadth_pct': None, 'breadth_regime': 'neutral'}
추천: 방법 1 (RSP/SPY 비율) — 코드 3줄이면 되고, ^MMFI와 같은 의미(시장 참여 폭)를 캡처합니다.





