강의

멘토링

로드맵

Inflearn コミュニティ Q&A

royjones09894210 のプロフィール画像
royjones09894210

投稿した質問数

バイブコーディングで米国株AI自動分析システムを作る with Claude Code

📈 2-2: SPY トレンド — 200日線の魔法 & Breadth & 金利/信用センサー

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

 

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

 

 

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

クイズ

市場局面の検出は、市場分析において何に例えられるでしょうか?

個人投資家の勘

株式市場の天気アプリ

過去のデータ記録

経済指標統計

回答 1

0

skysungsisi0926님의 프로필 이미지
skysungsisi0926
インストラクター

수강 감사합니다!

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

 

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

royjones09894210 のプロフィール画像
royjones09894210

投稿した質問数

質問する