{
  "ticker": "RSP",
  "ticker_name": "Invesco S&P 500 Equal Weight ETF",
  "status": "success",
  "trade_date": "2026-04-14",
  "analysis_date": "2026-04-15",
  "decision": "{\n  \"rating\": \"NO_TRADE\",\n  \"portfolio_stance\": \"BULLISH\",\n  \"entry_action\": \"WAIT\",\n  \"setup_quality\": \"DEVELOPING\",\n  \"confidence\": 0.64,\n  \"time_horizon\": \"medium\",\n  \"entry_logic\": \"RSP의 방향성은 건설적이다. 공격적 분석가는 가격이 10 EMA, 50 SMA, 200 SMA, VWMA를 회복했고 MACD가 0.49로 양전환했으며 RSI가 61.68로 과열 전 단계라고 보았다. 중립 분석가도 189.67에서 약 198.83까지 반등한 흐름과 긍정적 전환을 인정했다. 그러나 보수적 분석가와 중립 분석가가 지적했듯이 현재 가격은 199 확인선과 203-204 저항에 너무 가깝고, 최근 4.6 million 및 5.8 million 수준의 거래량은 과거 20-30 million 활동 대비 약하다. 따라서 즉시 매수하지 않고 WAIT한다. 신규 진입은 199 위 일간 종가와 10 million 초과 거래량, RSI 55 이상, MACD 양수 유지가 확인될 때만 가능하며, 더 좋은 대안은 197.4-196.3 조정 구간을 지키고 거래량이 개선되며 반등하는 경우의 소규모 스타터다.\",\n  \"exit_logic\": \"확인 후 진입한 포지션은 203-204 저항 접근 시 일부 이익 실현한다. 거래량, 시장 breadth, RSP의 cap-weighted 벤치마크 대비 상대강도가 계속 개선될 때만 잔여분을 유지하거나 추가한다. 일간 종가가 196.3 아래로 내려가면 전술 노출을 축소하거나 청산하고, 193.1 아래 종가는 VWMA 지지 상실과 반등 실패로 간주해 전술 포지션을 종료한다. 190.0 부근의 상승 200 SMA는 구조적 참고선이지만, 전술 거래를 그 수준까지 무조건 방치하지 않는다.\",\n  \"position_sizing\": \"현재는 신규 포지션 없음. 199 위 일간 종가와 10 million 초과 거래량이 확인되면 의도한 배분의 약 1/3로 시작한다. 보수적 분석가의 지적처럼 203-204 저항이 가까워 1/2 배분은 아직 이르다. 200-201 위 후속 상승 또는 199 재시험 성공이 확인되고 MACD 양수, RSI 55 이상, 상대강도 개선이 유지될 때만 추가한다. ATR 약 2.72를 기준으로 정상 변동성이 손절을 과도하게 유발하지 않도록 포트폴리오 위험을 작게 제한한다.\",\n  \"risk_limits\": \"RSP는 분산 ETF지만 여전히 broad equity beta이므로 금리 기대, earnings breadth, 지정학 충격, 성장 둔화에 노출된다. 돌파 진입의 초기 위험 기준은 196.3 아래 일간 종가이며, 193.1 아래에서는 반등 실패로 보고 노출을 크게 줄이거나 종료한다. 거래량이 10 million을 넘지 못하거나 단 하루의 거래량 확대에 그치면 공격적으로 추격하지 않는다. mega-cap technology 주도력이 강하게 재개되고 RSP의 상대강도가 약화되면 추가 매수를 금지한다.\",\n  \"catalysts\": [\n    \"RSP가 199 위에서 일간 종가를 형성하고 거래량이 10 million을 초과\",\n    \"MACD가 양수를 유지하고 RSI가 55 이상에서 유지\",\n    \"S&P 500 참여가 mega-cap technology를 넘어 financials, industrials, consumer 등으로 확대\",\n    \"197.4-196.3 조정 구간 방어 후 거래량 개선과 함께 반등\",\n    \"equal-weight 노출 선호와 cap-weighted 집중 부담 완화, 3월 27일 전후 언급된 $305 million 유입 같은 수급 개선\",\n    \"rate-cut 기대와 easing inflation이 경기민감 및 equal-weight 구성 종목을 지지\"\n  ],\n  \"invalidators\": [\n    \"일간 종가 196.3 하회로 단기 모멘텀 훼손\",\n    \"193.1 VWMA 부근 하회로 반등 실패 확인\",\n    \"190.0 부근 상승 200 SMA 방향으로 재차 밀리는 흐름\",\n    \"199 돌파가 거래량 확인 없이 발생하거나 단발성 거래량에 그침\",\n    \"mega-cap technology 주도력이 강하게 재개되어 RSP 상대 매력이 약화\",\n    \"financials, industrials, consumer 등 equal-weight 민감 섹터의 earnings breadth 또는 macro 지표 악화\",\n    \"203-204 저항에서 거래량과 breadth 없이 급격히 거절되는 흐름\"\n  ],\n  \"watchlist_triggers\": [\n    \"매수 전환 조건: 199 위 일간 종가와 10 million 초과 거래량, RSI 55 이상, MACD 양수 유지\",\n    \"스타터 조건: 197.4-196.3 조정 구간을 지키고 거래량 개선과 함께 반등\",\n    \"추가 조건: 200-201 위 지속 거래 또는 199 재시험 성공, 상대강도 개선 동반\",\n    \"부분 이익 실현 구간: 203-204 저항 접근\",\n    \"위험 축소 조건: 일간 종가 196.3 하회\",\n    \"실패 조건: 193.1 하회, 다음 주요 지지 190.0 부근 재평가\",\n    \"관찰 조건: RSP가 SPY 또는 VOO 대비 상대강도를 유지하거나 개선하는지 확인\"\n  ],\n  \"data_coverage\": {\n    \"company_news_count\": 0,\n    \"disclosures_count\": 0,\n    \"social_source\": \"news_derived\",\n    \"macro_items_count\": 3\n  }\n}",
  "started_at": "2026-04-15T02:45:56.392660+09:00",
  "finished_at": "2026-04-15T02:59:46.310719+09:00",
  "duration_seconds": 829.92,
  "metrics": {
    "llm_calls": 67,
    "tool_calls": 22,
    "tokens_in": 0,
    "tokens_out": 0,
    "tokens_available": false,
    "calls_by_model": {
      "gpt-5.4": 67
    }
  },
  "tool_telemetry": {
    "total_tool_calls": 22,
    "vendor_calls": {
      "yfinance": 15,
      "naver": 3,
      "ecos": 1,
      "opendart": 1,
      "alpha_vantage": 2
    },
    "fallback_count": 5,
    "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_company_news",
        "vendor": "naver",
        "status": "success",
        "fallback": false,
        "note": null
      },
      {
        "method": "get_social_sentiment",
        "vendor": "naver",
        "status": "fallback",
        "fallback": true,
        "note": "naver: empty or unusable result"
      },
      {
        "method": "get_social_sentiment",
        "vendor": "yfinance",
        "status": "fallback",
        "fallback": true,
        "note": "yfinance: empty or unusable result"
      },
      {
        "method": "get_macro_news",
        "vendor": "ecos",
        "status": "fallback",
        "fallback": true,
        "note": "ecos: ECOS API key is not configured."
      },
      {
        "method": "get_disclosures",
        "vendor": "opendart",
        "status": "fallback",
        "fallback": true,
        "note": "opendart: empty or unusable result"
      },
      {
        "method": "get_company_news",
        "vendor": "naver",
        "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
      }
    ]
  },
  "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"
  }
}