강의

멘토링

로드맵

Cộng đồng Hỏi & Đáp của Inflearn

Hình ảnh hồ sơ của royjones09894210
royjones09894210

câu hỏi đã được viết

Xây dựng hệ thống AI tự động phân tích chứng khoán Mỹ bằng Vibe Coding với Claude Code

📈 2-2: Xu hướng SPY — Phép màu của đường 200 ngày & Breadth & Cảm biến Lãi suất/Tín dụng

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로 에러 로깅하되 시스템은 멈추지 않도록 해줘.

 

다른 대체 지표를 두고 해야할 것 같은데, 어떤게 좋을까요?

 

 

HTML/CSSpython머신러닝인공지능(ai)바이브코딩

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

skysungsisi0926님의 프로필 이미지
skysungsisi0926
Người chia sẻ kiến thức

수강 감사합니다!

아래 부분한번 고려해주시겠나요!

 

방법 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와 같은 의미(시장 참여 폭)를 캡처합니다.

Hình ảnh hồ sơ của royjones09894210
royjones09894210

câu hỏi đã được viết

Đặt câu hỏi