{
  "ticker": "RSP",
  "ticker_name": "Invesco S&P 500 Equal Weight ETF",
  "status": "success",
  "trade_date": "2026-04-16",
  "analysis_date": "2026-04-17",
  "decision": "{\n  \"rating\": \"OVERWEIGHT\",\n  \"portfolio_stance\": \"BULLISH\",\n  \"entry_action\": \"WAIT\",\n  \"setup_quality\": \"DEVELOPING\",\n  \"confidence\": 0.68,\n  \"time_horizon\": \"medium\",\n  \"entry_logic\": \"RSP의 중기 배분 관점은 건설적이지만, 오늘 즉시 추격 매수할 자리는 아니다. 공격적 분석가는 RSP가 2026-04-15 종가 199.73으로 10일 EMA 197.56, 50일 SMA 197.50, 상승 중인 200일 SMA 190.22 위에 있고 MACD가 -0.23에서 1.03으로 개선됐으며 RSI 63.50도 과열권 전이라고 지적했다. 이는 강세 전환 근거다. 다만 보수적 및 중립 분석가가 강조한 대로 현재 가격은 200.00-201.88 저항권 바로 아래이고 52주 고점 205.24도 가까워 실패 돌파 위험이 있다. 따라서 기존 보유분은 유지하거나 조건부로 비중확대 관찰을 지속하되, 신규 자금은 197.50-198.00 되돌림 지지 확인 또는 200.20 상향 종가와 거래량 확대, 이후 201.88 위 안착이 확인될 때만 단계적으로 투입한다. 조건이 충족되면 소규모 시작 포지션은 정당화될 수 있지만, 현재는 WAIT가 적절하다.\",\n  \"exit_logic\": \"전술 포지션은 RSP가 196.00 아래로 종가 이탈하면 축소하고, 195.00 아래 이탈은 4월 반등 실패 확인으로 보고 단기 포지션을 정리한다. 200일 SMA 190.22 상실은 중기 강세 구조 훼손으로 간주한다. 201.88-204.00 구간에서는 거래량이 약하거나 모멘텀이 둔화되면 일부 이익을 실현한다. RSP가 시장 상승 중에도 SPY 또는 VOO 대비 상대강도를 잃으면 equal-weight 로테이션 논리가 약해지는 조기 경고로 본다.\",\n  \"position_sizing\": \"저항권 추격을 피하고 중간 수준의 단계적 비중만 사용한다. 이미 분산형 주식 포트폴리오를 가진 투자자는 RSP를 보유하거나 소폭 비중확대할 수 있지만, 신규 매수는 197.50-198.00 지지 확인 또는 200.20 및 201.88 돌파 확인 후 여러 차례로 나눈다. 201.88-204.00 위에서 거래량 확인 없이 전량 진입하지 않는다.\",\n  \"risk_limits\": \"초기 전술 위험 기준은 빠른 대응형으로 196.00, 넓은 ATR 조정 기준으로 195.00에 둔다. 200일 SMA 190.22는 중기 구조적 무효화선이다. 가격이 200.00-201.88 저항권에 근접한 상태에서는 보수적 분석가가 지적한 실패 돌파 위험을 반영해 진입 기준을 엄격히 유지한다. 금리 상승, 끈적한 인플레이션, Fed 긴축 기대, 지정학 충격이 금융, 산업재, 경기소비재 등 평균 S&P 500 구성종목에 더 큰 압박을 주면 노출을 재평가한다.\",\n  \"catalysts\": [\n    \"대형 기술주와 AI 중심 리더십을 넘어 시장 폭이 지속적으로 확장되는 흐름.\",\n    \"RSP가 200.20 위에서 종가 확인 후 거래량 확대와 함께 201.88 위에 안착하는 돌파.\",\n    \"RSP가 SPY 또는 VOO 대비 여러 거래일 동안 상대강도 개선을 이어가는 흐름.\",\n    \"equal-weight 및 분산투자형 ETF로의 자금 유입 지속, 예를 들어 2026-03-27 보고된 305 million USD 유입 같은 수급 신호.\",\n    \"금융, 산업재, 헬스케어, 경기소비재 등에서 미국 기업 이익 폭이 넓어지는 환경.\"\n  ],\n  \"invalidators\": [\n    \"197.50 아래 종가 이탈로 10일 EMA와 50일 SMA 부근 지지 클러스터가 저항으로 바뀌는 경우.\",\n    \"195.00 아래 이탈로 4월 반등 모멘텀 실패가 확인되는 경우.\",\n    \"상승 중인 200일 SMA 190.22 상실.\",\n    \"대형 기술주 중심의 좁은 리더십이 재개되어 RSP가 SPY 또는 VOO 대비 재차 뒤처지는 경우.\",\n    \"금리 또는 인플레이션 압력이 평균 S&P 500 구성종목에 대형 현금창출 기술주보다 더 큰 부담을 주는 경우.\"\n  ],\n  \"watchlist_triggers\": [\n    \"지지 매수 조건: 197.50-198.00으로 되돌림 후 해당 구간을 지키고 장중 시장 폭이 개선될 때.\",\n    \"돌파 조건: 200.20 위 종가와 거래량 확대, 이후 201.88 위 안착이 확인될 때.\",\n    \"위험 조건: 196.00 아래 종가 이탈, 특히 195.00 아래 이탈.\",\n    \"상대강도 조건: RSP/SPY 또는 RSP/VOO 상대강도가 여러 거래일 동안 개선될 때.\",\n    \"거시 조건: Treasury 금리, Fed 기대, 인플레이션 지표가 광범위한 주식 참여에 우호적으로 유지될 때.\"\n  ],\n  \"data_coverage\": {\n    \"company_news_count\": 5,\n    \"disclosures_count\": 0,\n    \"social_source\": \"news_derived\",\n    \"macro_items_count\": 1\n  }\n}",
  "started_at": "2026-04-17T01:44:55.189428+09:00",
  "finished_at": "2026-04-17T01:58:54.659259+09:00",
  "duration_seconds": 839.47,
  "metrics": {
    "llm_calls": 62,
    "tool_calls": 19,
    "tokens_in": 0,
    "tokens_out": 0,
    "tokens_available": false,
    "calls_by_model": {
      "gpt-5.4": 62
    }
  },
  "tool_telemetry": {
    "total_tool_calls": 19,
    "vendor_calls": {
      "yfinance": 15,
      "alpha_vantage": 4
    },
    "fallback_count": 2,
    "events": [
      {
        "method": "get_stock_data",
        "vendor": "yfinance",
        "status": "success",
        "fallback": false,
        "note": null
      },
      {
        "method": "get_indicators",
        "vendor": "yfinance",
        "status": "success",
        "fallback": false,
        "note": null
      },
      {
        "method": "get_indicators",
        "vendor": "yfinance",
        "status": "success",
        "fallback": false,
        "note": null
      },
      {
        "method": "get_indicators",
        "vendor": "yfinance",
        "status": "success",
        "fallback": false,
        "note": null
      },
      {
        "method": "get_indicators",
        "vendor": "yfinance",
        "status": "success",
        "fallback": false,
        "note": null
      },
      {
        "method": "get_indicators",
        "vendor": "yfinance",
        "status": "success",
        "fallback": false,
        "note": null
      },
      {
        "method": "get_indicators",
        "vendor": "yfinance",
        "status": "success",
        "fallback": false,
        "note": null
      },
      {
        "method": "get_indicators",
        "vendor": "yfinance",
        "status": "success",
        "fallback": false,
        "note": null
      },
      {
        "method": "get_indicators",
        "vendor": "yfinance",
        "status": "success",
        "fallback": false,
        "note": null
      },
      {
        "method": "get_social_sentiment",
        "vendor": "yfinance",
        "status": "fallback",
        "fallback": true,
        "note": "yfinance: empty or unusable result"
      },
      {
        "method": "get_company_news",
        "vendor": "alpha_vantage",
        "status": "success",
        "fallback": false,
        "note": null
      },
      {
        "method": "get_company_news",
        "vendor": "alpha_vantage",
        "status": "success",
        "fallback": false,
        "note": null
      },
      {
        "method": "get_macro_news",
        "vendor": "alpha_vantage",
        "status": "success",
        "fallback": false,
        "note": null
      },
      {
        "method": "get_income_statement",
        "vendor": "yfinance",
        "status": "success",
        "fallback": false,
        "note": null
      },
      {
        "method": "get_cashflow",
        "vendor": "yfinance",
        "status": "success",
        "fallback": false,
        "note": null
      },
      {
        "method": "get_balance_sheet",
        "vendor": "yfinance",
        "status": "success",
        "fallback": false,
        "note": null
      },
      {
        "method": "get_insider_transactions",
        "vendor": "yfinance",
        "status": "fallback",
        "fallback": true,
        "note": "yfinance: empty or unusable result"
      },
      {
        "method": "get_fundamentals",
        "vendor": "yfinance",
        "status": "success",
        "fallback": false,
        "note": null
      },
      {
        "method": "get_insider_transactions",
        "vendor": "alpha_vantage",
        "status": "success",
        "fallback": false,
        "note": null
      }
    ],
    "called_tools": [],
    "intraday_snapshot_used": false
  },
  "quality_flags": [
    "token_usage_unavailable"
  ],
  "report_writer": {
    "status": "success",
    "scope": "ticker",
    "provider": "codex",
    "model": "gpt-5.4"
  },
  "provider": "codex",
  "models": {
    "quick_model": "gpt-5.4",
    "deep_model": "gpt-5.4",
    "output_model": "gpt-5.4"
  },
  "intraday_snapshot_attempts": [
    {
      "ticker": "RSP",
      "attempted": true,
      "success": true,
      "checkpoint": "01:35",
      "interval": "5m",
      "attempted_at": "2026-04-17T02:52:36.209496+09:00",
      "provider": "yfinance_intraday",
      "market_data_asof": "2026-04-16T13:50:00-04:00"
    },
    {
      "ticker": "RSP",
      "attempted": true,
      "success": true,
      "checkpoint": "selective_rerun",
      "interval": "5m",
      "attempted_at": "2026-04-17T03:59:58.176692+09:00",
      "provider": "yfinance_intraday",
      "market_data_asof": "2026-04-16T14:55:00-04:00"
    },
    {
      "ticker": "RSP",
      "attempted": true,
      "success": true,
      "checkpoint": "03:35",
      "interval": "5m",
      "attempted_at": "2026-04-17T04:48:23.879742+09:00",
      "provider": "yfinance_intraday",
      "market_data_asof": "2026-04-16T15:45:00-04:00"
    }
  ],
  "latest_intraday_snapshot_attempt": {
    "ticker": "RSP",
    "attempted": true,
    "success": true,
    "checkpoint": "03:35",
    "interval": "5m",
    "attempted_at": "2026-04-17T04:48:23.879742+09:00",
    "provider": "yfinance_intraday",
    "market_data_asof": "2026-04-16T15:45:00-04:00"
  },
  "intraday_snapshot_latest_attempt": {
    "ticker": "RSP",
    "attempted": true,
    "success": true,
    "checkpoint": "03:35",
    "interval": "5m",
    "attempted_at": "2026-04-17T04:48:23.879742+09:00",
    "provider": "yfinance_intraday",
    "market_data_asof": "2026-04-16T15:45:00-04:00"
  }
}