Cộng đồng Hỏi & Đáp của Inflearn
Breadth MMFI 404 에러
Đã giải quyết
Viết
·
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로 에러 로깅하되 시스템은 멈추지 않도록 해줘.
다른 대체 지표를 두고 해야할 것 같은데, 어떤게 좋을까요?
Quiz
Việc phát hiện các giai đoạn thị trường có thể được ví với điều gì trong phân tích thị trường?
Cảm nhận của nhà đầu tư cá nhân
Ứng dụng thời tiết của thị trường chứng khoán
Ghi chép dữ liệu quá khứ
Thống kê chỉ số kinh tế
Câu trả lời 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와 같은 의미(시장 참여 폭)를 캡처합니다.





