{
  "ticker": "005930.KS",
  "ticker_name": "삼성전자",
  "status": "success",
  "trade_date": "2026-04-16",
  "analysis_date": "2026-04-16",
  "decision": "{\n  \"rating\": \"OVERWEIGHT\",\n  \"portfolio_stance\": \"BULLISH\",\n  \"entry_action\": \"WAIT\",\n  \"setup_quality\": \"DEVELOPING\",\n  \"confidence\": 0.72,\n  \"time_horizon\": \"medium\",\n  \"entry_logic\": \"005930.KS의 중기 방향성은 우호적이므로 legacy rating은 OVERWEIGHT로 유지한다. 세 분석가가 공통으로 인정한 핵심 근거는 2026-04-15 종가 211000이 10일 EMA 200888, 50일선 186975, VWMA 192802 위에 있고 MACD가 2026-04-02 -193.8에서 2026-04-15 6191.7로 회복했다는 점이다. 펀더멘털도 2025-12-31 분기 영업이익 20.07조 KRW, 영업이익률 약 21.4%, FCF 16.04조 KRW, 현금 및 단기투자 125.85조 KRW로 회복세와 재무 여력이 확인된다. 다만 보수적·중립적 분석가가 지적한 대로 현재 가격은 214500~215500 단기 저항 바로 아래이고, 219000~223000은 2026-02 말 고점 이후 2026-03-04 저가 171900까지 급락했던 매물대다. 또한 2026-04-09 거래량 42320839주가 하락일에 발생했고 이후 2026-04-14~2026-04-15 거래량은 약 2367만~2409만 주로 재유입 확인이 아직 제한적이다. 따라서 방향성은 BULLISH이나 오늘 즉시 추격 매수는 하지 않고, 005930.KS가 215500 위에서 종가 안착하고 최근 평균 이상 거래량을 동반하거나 200000~201000 및 10일 EMA 부근 눌림에서 지지가 확인될 때 starter를 허용한다.\",\n  \"exit_logic\": \"215500 돌파 실패 후 200000을 종가 기준 이탈하면 신규 진입은 계속 보류하고 기존 전술 비중은 축소한다. 192800 부근 VWMA 종가 이탈은 단기 수급 훼손으로 보고 tactical exposure를 줄이며, 186975 부근 50일선 종가 이탈은 중기 OVERWEIGHT 논리 재검토 기준으로 삼는다. 219000~223000 저항권 접근 시 거래량이 약하거나 장대 음봉·반전 캔들이 나오면 일부 차익 실현을 우선한다. 다음 실적에서 2025-12-31 분기 영업이익 20.07조 KRW 수준의 지속성이 약해지거나 재고 증가가 가격 약세·출하 둔화로 연결되면 HOLD 이하로 낮춘다.\",\n  \"position_sizing\": \"현재 setup_quality는 DEVELOPING이므로 확인 전 full position은 부적절하다. ATR 10591, 종가 대비 약 5%의 고변동성을 감안해 215500 위 종가와 평균 이상 거래량이 확인될 경우 정상 목표 비중의 35~45% starter만 허용한다. 200000~201000 눌림 지지 확인 시에는 30~40% 범위에서 분할 진입한다. 219000~223000 매물대가 거래량을 동반해 흡수되고 종가가 안정되면 60~75%까지 단계적으로 증액할 수 있다. 100% 목표 비중은 다음 실적에서 영업이익률 20%대 유지, FCF 개선, 재고 회전 악화 부재, HBM 또는 파운드리 경쟁력 개선, 외국인 수급 회복이 함께 확인될 때까지 유보한다.\",\n  \"risk_limits\": \"과도하게 좁은 손절은 ATR 10591 수준의 정상 변동성에 흔들릴 수 있으므로 피한다. 대신 200000 이탈, 192800 VWMA 이탈, 186975 50일선 이탈을 단계별 위험 축소 기준으로 사용한다. 재고가 2025-09-30 50.33조 KRW에서 2025-12-31 52.64조 KRW로 증가했고 총부채도 16.67조 KRW에서 25.24조 KRW로 늘어난 점은 감시해야 한다. 메모리 가격 둔화, 외국인 순매도 확대, 미국 기술주 조정, TSMC 및 SK하이닉스 대비 HBM·파운드리 경쟁력 격차 확대가 동시에 나타나면 OVERWEIGHT를 방어적으로 낮춘다. 215500 돌파 시에도 거래량의 질이 약하거나 219000 부근에서 매물이 강하면 추가 매수하지 않는다.\",\n  \"catalysts\": [\n    \"005930.KS가 215500 위에서 종가 안착하고 최근 평균 이상 거래량을 동반\",\n    \"219000~223000 매물대를 강한 거래량으로 흡수하고 52주 고점권 재돌파 확인\",\n    \"AI 메모리, HBM, DRAM 가격 강세가 다음 실적 가시성으로 연결\",\n    \"영업이익률 20%대 유지와 FCF 개선 지속\",\n    \"HBM 점유율, 파운드리 수주, 첨단 공정 경쟁력 개선 증거 확인\",\n    \"외국인 순매수 재유입과 KOSPI 기술주 위험선호 회복\"\n  ],\n  \"invalidators\": [\n    \"005930.KS가 186975 50일선 아래로 종가 이탈\",\n    \"다음 실적에서 2025-12-31 분기 영업이익 20.07조 KRW 수준이 지속 가능하지 않다는 증거 확인\",\n    \"재고 증가가 출하 둔화 또는 메모리 가격 약세로 연결\",\n    \"TSMC 및 SK하이닉스 대비 HBM, 파운드리, 첨단공정 경쟁력 격차 확대\",\n    \"외국인 순매도 심화와 미국 기술주 조정이 동시에 발생\",\n    \"AI 반도체 기대와 목표주가 상향 뉴스가 실적 개선 없이 선반영으로 끝남\"\n  ],\n  \"watchlist_triggers\": [\n    \"215500 위 종가 안착 여부와 돌파일 거래량의 질\",\n    \"219000~223000 저항권에서 매물 흡수 또는 실패 여부\",\n    \"200000~201000 및 10일 EMA 부근 눌림 지지 확인\",\n    \"192800 VWMA 종가 이탈 여부\",\n    \"186975 50일선 종가 이탈 여부\",\n    \"2026-04-09 하락 거래량 42320839주 이후 거래량 재유입 여부\",\n    \"메모리 가격, HBM 수주, 파운드리 신규 수주, 재고 회전 관련 다음 실적 코멘트\",\n    \"OpenDART 지분 변동 공시의 규모와 사유\",\n    \"외국인 순매수 지속 여부와 KOSPI 기술주 수급\"\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-16T09:41:55.572136+09:00",
  "finished_at": "2026-04-16T09:53:47.317340+09:00",
  "duration_seconds": 711.75,
  "metrics": {
    "llm_calls": 44,
    "tool_calls": 22,
    "tokens_in": 0,
    "tokens_out": 0,
    "tokens_available": false,
    "calls_by_model": {
      "gpt-5.4": 44
    }
  },
  "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_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
      }
    ],
    "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"
  }
}