{
  "ticker": "005930.KS",
  "ticker_name": "삼성전자",
  "status": "success",
  "trade_date": "2026-04-17",
  "analysis_date": "2026-04-17",
  "decision": "{\n  \"rating\": \"OVERWEIGHT\",\n  \"portfolio_stance\": \"BULLISH\",\n  \"entry_action\": \"WAIT\",\n  \"setup_quality\": \"DEVELOPING\",\n  \"confidence\": 0.66,\n  \"time_horizon\": \"medium\",\n  \"entry_logic\": \"005930.KS에 대한 중기 배분 관점은 OVERWEIGHT로 유지한다. 공격적 분석이 지적한 대로 가격은 10일 EMA 203908, 50일 SMA 188115, 200일 SMA 116683 위에 있고, MACD가 2026-04-02 -193.81에서 2026-04-16 7169.78로 개선되었으며, 최근 분기 매출 93.84조원, 영업이익 20.07조원, 영업현금흐름 28.8조원, 잉여현금흐름 16.0조원, 현금 및 단기투자 125.85조원이 회복 논리를 뒷받침한다. 다만 보수·중립 분석이 강조한 것처럼 최신 확인 종가 217500은 218000-223000 저항 바로 아래이고, 2026-04-16 거래량 21499788은 4월 초 강한 거래량보다 낮아 저항 흡수 확인이 부족하다. 따라서 방향성은 BULLISH이나 오늘 즉시 신규 추격 매수는 하지 않고 WAIT한다. 신규 진입 또는 추가는 005930.KS가 218000 위에서 거래량 확장을 동반해 종가 확인을 만들 때 1차로 검토하고, 223000 돌파 또는 돌파 후 재지지가 확인되면 추가를 검토한다. 대안적으로 210500-203900 눌림 구간에서 지지, RSI 55-60 방어, MACD 히스토그램 급격한 둔화 부재가 확인되면 starter가 정당화될 수 있다.\",\n  \"exit_logic\": \"기존 보유자는 레버리지 없이 moderate overweight를 유지할 수 있으나, 005930.KS가 218000-223000 저항에서 실패한 뒤 203900 아래로 종가 이탈하면 전술 비중을 줄인다. 195000-195200 아래 종가는 VWMA 및 수급 구조 훼손으로 보고 단기 전술 포지션은 exit한다. 중기 OVERWEIGHT 판단은 메모리 가격 둔화, HBM4E 또는 Nvidia 관련 검증 실망, 실적 전망 하향, 재고 52.64조원 증가가 마진 압박으로 전환되는 징후, 또는 2026-04-23 집회와 2026-05-21 파업 가능성이 실제 생산 차질 리스크로 커질 때 재평가한다.\",\n  \"position_sizing\": \"신규 자금은 217500 부근에서 추격하지 않는다. ATR이 약 10370, 종가 대비 약 4.8%로 높기 때문에 확인 후에도 한 번에 전량 진입하지 않고 부분 포지션으로 시작한다. 기존 보유자는 중립 대비 moderate overweight를 유지하되, 변동성 허용 폭이 커지는 만큼 포지션 크기를 줄여 계좌 위험을 통제한다. 218000 위 거래량 동반 종가 확인 시 1차 소량, 223000 돌파 또는 재지지 확인 시 2차, 210500-203900 지지 반등 확인 시 별도 starter를 검토한다.\",\n  \"risk_limits\": \"218000 위 장중 돌파만으로는 추가하지 않고 반드시 종가와 거래량 확장을 확인한다. 210500은 1차 지지 관찰선, 203900은 전술 감축선, 195000-195200은 단기 구조 훼손에 따른 방어선이다. 1 ATR 이상 흔들림을 감안하되, 손절 폭을 넓히는 만큼 포지션 크기는 축소한다. 2026-04-23 노동 집회 관련 헤드라인과 2026-05-21 파업 가능성 전에는 무리한 추가매수를 피한다. 생산 차질 가능성이 구체화되면 기술적 돌파 여부와 무관하게 리스크를 재산정한다.\",\n  \"catalysts\": [\n    \"005930.KS가 218000 위에서 거래량 확장을 동반한 일봉 종가를 만들며 저항 흡수를 확인\",\n    \"223000 돌파 또는 돌파 후 재지지로 52주 고가권 위 연속성이 확인\",\n    \"DRAM/NAND 가격 강세와 메모리 회복 사이클 지속 증거 확대\",\n    \"HBM4E 진전 또는 Nvidia 공급망 관련 긍정적 검증\",\n    \"최근 분기에서 확인된 매출 93.84조원, 영업이익 20.07조원, 영업현금흐름 28.8조원 흐름의 지속\",\n    \"2026-04-23 및 2026-05-21 관련 노동 리스크가 생산 차질 없이 완화\"\n  ],\n  \"invalidators\": [\n    \"005930.KS가 218000-223000 저항에서 재차 실패한 뒤 203900 아래로 종가 이탈\",\n    \"195000-195200 아래 종가로 VWMA 및 수급 지지 훼손\",\n    \"2026-04-23 집회 또는 2026-05-21 파업 가능성이 실제 생산 차질 위험으로 확대\",\n    \"메모리 가격 모멘텀 둔화 또는 이익 전망 하향\",\n    \"HBM4E/Nvidia 기대가 지연되거나 SK하이닉스, TSMC 대비 경쟁 열위가 부각\",\n    \"재고 52.64조원 증가와 CAPEX 부담이 마진 압박 또는 재고평가손실 우려로 전환\"\n  ],\n  \"watchlist_triggers\": [\n    \"005930.KS의 218000 및 223000 부근 일봉 종가와 거래량 변화\",\n    \"210500 및 203900 눌림 구간에서 지지와 반등 여부\",\n    \"RSI가 55-60 위를 유지하는지 또는 저항권에서 하락 반전하는지\",\n    \"MACD 히스토그램 확장 지속 여부와 저항권 약세 다이버전스 발생 여부\",\n    \"2026-04-23 노동 집회와 2026-05-21 파업 가능성 관련 협상 진전 또는 악화 뉴스\",\n    \"DRAM/NAND 가격, HBM4E 검증, Nvidia 관련 수요, CAPEX 및 재고 추세의 후속 증거\"\n  ],\n  \"data_coverage\": {\n    \"company_news_count\": 4,\n    \"disclosures_count\": 2,\n    \"social_source\": \"news_derived\",\n    \"macro_items_count\": 1\n  }\n}",
  "started_at": "2026-04-17T10:41:17.217999+09:00",
  "finished_at": "2026-04-17T10:55:39.058589+09:00",
  "duration_seconds": 861.84,
  "metrics": {
    "llm_calls": 65,
    "tool_calls": 22,
    "tokens_in": 0,
    "tokens_out": 0,
    "tokens_available": false,
    "calls_by_model": {
      "gpt-5.4": 65
    }
  },
  "tool_telemetry": {
    "total_tool_calls": 22,
    "vendor_calls": {
      "yfinance": 15,
      "naver": 3,
      "ecos": 1,
      "opendart": 1,
      "alpha_vantage": 2
    },
    "fallback_count": 4,
    "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": "success",
        "fallback": false,
        "note": null
      },
      {
        "method": "get_macro_news",
        "vendor": "alpha_vantage",
        "status": "success",
        "fallback": false,
        "note": null
      },
      {
        "method": "get_company_news",
        "vendor": "naver",
        "status": "success",
        "fallback": false,
        "note": null
      },
      {
        "method": "get_insider_transactions",
        "vendor": "yfinance",
        "status": "fallback",
        "fallback": true,
        "note": "yfinance: empty or unusable result"
      },
      {
        "method": "get_cashflow",
        "vendor": "yfinance",
        "status": "success",
        "fallback": false,
        "note": null
      },
      {
        "method": "get_income_statement",
        "vendor": "yfinance",
        "status": "success",
        "fallback": false,
        "note": null
      },
      {
        "method": "get_balance_sheet",
        "vendor": "yfinance",
        "status": "success",
        "fallback": false,
        "note": null
      },
      {
        "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",
    "intraday_snapshot_missing_same_day"
  ],
  "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": "005930.KS",
      "attempted": true,
      "success": true,
      "checkpoint": "selective_rerun",
      "interval": "5m",
      "attempted_at": "2026-04-17T10:55:57.305437+09:00",
      "provider": "yfinance_intraday",
      "market_data_asof": "2026-04-17T10:35:00+09:00"
    },
    {
      "ticker": "005930.KS",
      "attempted": true,
      "success": true,
      "checkpoint": "12:35",
      "interval": "5m",
      "attempted_at": "2026-04-17T13:15:05.928404+09:00",
      "provider": "yfinance_intraday",
      "market_data_asof": "2026-04-17T12:55:00+09:00"
    }
  ],
  "latest_intraday_snapshot_attempt": {
    "ticker": "005930.KS",
    "attempted": true,
    "success": true,
    "checkpoint": "12:35",
    "interval": "5m",
    "attempted_at": "2026-04-17T13:15:05.928404+09:00",
    "provider": "yfinance_intraday",
    "market_data_asof": "2026-04-17T12:55:00+09:00"
  },
  "intraday_snapshot_latest_attempt": {
    "ticker": "005930.KS",
    "attempted": true,
    "success": true,
    "checkpoint": "12:35",
    "interval": "5m",
    "attempted_at": "2026-04-17T13:15:05.928404+09:00",
    "provider": "yfinance_intraday",
    "market_data_asof": "2026-04-17T12:55:00+09:00"
  }
}