{
  "ticker": "005380.KS",
  "ticker_name": "현대차",
  "status": "success",
  "trade_date": "2026-04-15",
  "analysis_date": "2026-04-15",
  "decision": "{\n  \"rating\": \"OVERWEIGHT\",\n  \"portfolio_stance\": \"BULLISH\",\n  \"entry_action\": \"WAIT\",\n  \"setup_quality\": \"DEVELOPING\",\n  \"confidence\": 0.62,\n  \"time_horizon\": \"medium\",\n  \"entry_logic\": \"005380.KS에 대한 최종 판단은 조건부 비중확대다. 공격적 분석가가 지적한 장기 200일선 상회, RSI 49.74로 과열 해소, MACD 히스토그램 양수 전환, 10일 EMA 485708 KRW 및 VWMA 481439 KRW 상회, Waymo/IONIQ 5 로보택시와 AI·로보틱스·SDV 서사는 투자 가능한 상승 논리를 만든다. 다만 보수적 분석가가 강조한 508000-510000 KRW 저항, 50일선 508531 KRW 하회, MACD -6176, ATR 약 27685 KRW, 최근 자유현금흐름 -7.2조 KRW와 2025년 12월 분기 영업현금흐름 -2.09조 KRW는 오늘 즉시 신규 매수할 만큼 확인된 셋업이 아님을 뜻한다. 따라서 중립 분석가의 균형안처럼 방향성은 상승 우위로 유지하되, 오늘의 실행은 WAIT다. 신규 진입 또는 추가 매수는 510000 KRW 위 일봉 종가와 1000000주 초과 거래량이 확인되거나, 481000-485000 KRW 지지 재확인과 RSI 50 상회 및 MACD 히스토그램 개선이 동반될 때만 허용한다.\",\n  \"exit_logic\": \"기존 핵심 보유분은 481000-485000 KRW 지지대가 유지되는 동안 보유 가능하다. 해당 지지대 이탈 시 보수적 분석가의 지적처럼 변동성 확대와 자본 보호를 우선해 트레이딩 노출을 줄인다. 463000 KRW 아래 일봉 종가는 중립·트레이더 계획이 공통으로 제시한 근접 반등 셋업의 기술적 무효화로 보고 전술적 노출은 종료한다. 중기 OVERWEIGHT 판단은 다음 실적에서 영업마진·총마진 추가 악화, 영업현금흐름 및 자유현금흐름 부진 지속, 운전자본 유출 지속, 차입·금융비용·신용비용 악화, 로보택시·AI·로보틱스·SDV 상업화 진전 부재가 확인되면 재검토한다.\",\n  \"position_sizing\": \"오늘은 신규 풀 포지션을 만들지 않는다. 510000 KRW 위 종가와 1000000주 초과 거래량으로 50일선 및 매물대 돌파가 확인되면 목표 배분의 약 25-40%만 1차로 시작한다. 이후 520000-545000 KRW 구간에서 가격이 버티고 거래량이 유지되며 MACD가 0선 쪽으로 개선될 때 2차 증액을 검토한다. 481000-485000 KRW 지지 확인 매수는 돌파 매수보다 더 작은 starter로 제한한다. 기존 보유자는 핵심 비중은 유지하되, 추가 매수는 확인 조건 전까지 보류한다. ATR이 약 27685 KRW로 종가 대비 약 5.6%이고 베타 1.576이므로 일반적인 OVERWEIGHT 최대치보다 낮은 단계적 비중을 적용한다.\",\n  \"risk_limits\": \"주요 방어선은 481000-485000 KRW이며, 이탈 시 469000-473000 KRW 재시험 가능성을 반영해 트레이딩 노출을 축소한다. 463000 KRW 아래 종가는 전술적 손절 기준이다. ATR이 큰 만큼 너무 촘촘한 손절은 피하되, 463000 KRW까지 아무 조정 없이 버티는 방식도 피한다. 총차입금 176.5조 KRW, 순차입금 157.0조 KRW, Debt to Equity 138.3, 자유현금흐름 적자, 자동차 금융 노출, FX·금리·관세·미국 수요·중동 물류 및 운임 리스크를 고려해 단일 종목 집중은 제한한다.\",\n  \"catalysts\": [\n    \"005380.KS가 510000 KRW 위에서 일봉 종가를 형성하고 거래량이 1000000주를 넘기면 50일선 및 508000-510000 KRW 저항 돌파로 해석한다.\",\n    \"481000-485000 KRW 지지대가 유지되고 RSI가 50 위로 회복하며 MACD 히스토그램 개선이 이어지면 지지 매수 셋업이 성립한다.\",\n    \"Waymo/IONIQ 5 로보택시, Motional, 피지컬 AI, 로보틱스, SDV, 온디바이스 AI 칩 관련 상업화 이정표가 확인되면 공격적 분석가가 제시한 재평가 서사가 강화된다.\",\n    \"다음 실적에서 2025년 12월 분기보다 영업마진과 총마진이 회복되면 보수적 분석가가 지적한 핵심 할인 요인이 완화된다.\",\n    \"영업현금흐름과 자유현금흐름이 개선되고 운전자본 유출이 정상화되면 현금흐름 리스크가 줄어든다.\",\n    \"협력사 차질에도 생산 안정이 유지되고 물류비, 운임, FX, 관세, 보조금, 하이브리드·EV 수요 믹스가 우호적으로 확인되면 중기 상승 논리가 강화된다.\"\n  ],\n  \"invalidators\": [\n    \"005380.KS가 508000-510000 KRW에서 재차 실패한 뒤 481000-485000 KRW 아래로 종가 이탈한다.\",\n    \"463000 KRW 아래 일봉 종가가 발생해 최근 반등 구조와 전술적 진입 논리가 무효화된다.\",\n    \"다음 실적에서 매출은 유지되지만 영업이익, 총마진, 영업마진이 추가로 악화된다.\",\n    \"최근 12개월 자유현금흐름 -7.2조 KRW와 2025년 12월 분기 영업현금흐름 -2.09조 KRW 같은 현금흐름 부진이 정상화되지 않는다.\",\n    \"운전자본 유출, 재고, 매출채권, 자동차 금융 신용비용, 차입 및 조달비용이 악화되어 주주환원이나 투자 여력을 압박한다.\",\n    \"로보택시, AI, 로보틱스, EV·하이브리드, SDV 뉴스가 상업적 이정표 없이 서사에만 머물러 뉴스 소진과 밸류에이션 되돌림이 발생한다.\"\n  ],\n  \"watchlist_triggers\": [\n    \"510000 KRW 위 일봉 종가와 1000000주 초과 거래량: entry_action을 STARTER 또는 기존 보유자 ADD로 상향 검토한다.\",\n    \"481000-485000 KRW 지지 유지, RSI 50 상회, MACD 히스토그램 개선 지속: 작은 starter를 검토한다.\",\n    \"481000-485000 KRW 종가 이탈: 신규 진입 대기 유지 및 트레이딩 노출 축소를 검토한다.\",\n    \"463000 KRW 아래 종가: 전술적 entry_action을 NONE 또는 EXIT로 전환한다.\",\n    \"다음 실적 발표: 영업마진, 총마진, 영업현금흐름, 자유현금흐름, 운전자본, 재고, 매출채권, 자동차 금융 신용비용을 확인한다.\",\n    \"임원 또는 주요주주 증권 보고 후속 공시: 행정적 신고인지 의미 있는 매도인지 구분한다.\",\n    \"중동 해상 운송 차질, 운임, 미국 판매, KRW, 관세, 보조금, 하이브리드·EV 수요 믹스 변화가 수출 마진에 미치는 영향을 점검한다.\"\n  ],\n  \"data_coverage\": {\n    \"company_news_count\": 4,\n    \"disclosures_count\": 1,\n    \"social_source\": \"news_derived\",\n    \"macro_items_count\": 0\n  }\n}",
  "started_at": "2026-04-15T11:56:37.709805+09:00",
  "finished_at": "2026-04-15T12:11:03.880483+09:00",
  "duration_seconds": 866.17,
  "metrics": {
    "llm_calls": 61,
    "tool_calls": 22,
    "tokens_in": 0,
    "tokens_out": 0,
    "tokens_available": false,
    "calls_by_model": {
      "gpt-5.4": 61
    }
  },
  "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_social_sentiment",
        "vendor": "naver",
        "status": "fallback",
        "fallback": true,
        "note": "naver: empty or unusable result"
      },
      {
        "method": "get_company_news",
        "vendor": "naver",
        "status": "success",
        "fallback": false,
        "note": null
      },
      {
        "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_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"
  }
}