{
  "ticker": "005380.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.65,\n  \"time_horizon\": \"medium\",\n  \"entry_logic\": \"005380.KS는 중기적으로 비중확대 가능한 우호적 구조를 유지하지만, 오늘 즉시 추격 매수할 정도로 진입 신호가 완성되지는 않았다. 공격적 분석이 지적한 것처럼 445500 저점 이후 2026-04-13 478500, 2026-04-14 491500, 2026-04-15 508000으로 회복했고, 종가가 10일 EMA 489760.70 및 VWMA 482563.48 위에 있으며 RSI가 38.83에서 53.25로, MACD가 -11876.52에서 -3992.84로 개선된 점은 반등 구조를 뒷받침한다. 다만 보수적·중립적 분석이 강조한 대로 508000은 50일 SMA 508176.94와 508000-510000 저항에 막힌 위치이고, 2026-04-15 거래량 867909주는 추세 전환을 압도적으로 확인할 수준은 아니다. 따라서 방향성은 BULLISH, 기존 보유는 유지 가능, 신규 자금은 510000 위 종가와 뚜렷한 거래량 확장 또는 489000-490000 눌림 후 재상승 확인 전까지 WAIT가 적절하다.\",\n  \"exit_logic\": \"기존 보유분은 005380.KS가 478000-482000 구간 위에서 종가 기준으로 버티는 동안 유지한다. 510000 돌파 시도 후 거래량이 약하거나 510000을 빠르게 재이탈하면 신규 진입을 취소하거나 추가 매수를 보류한다. 482500 VWMA 부근 하회는 비중 축소 검토 신호, 478000 하회 종가는 회복 시나리오 훼손으로 보고 방어적으로 축소한다. 445500-450000 지지 실패는 고변동성 회복 구간이 무너지는 명확한 무효화로 보고 핵심 포지션을 정리한다. 상승 시 525000은 1차 부분 차익 및 리스크 재평가 구간이며, 530000-545000은 거래량, RSI 55-60 이상, MACD 추가 개선이 동반될 때만 추가 목표로 인정한다.\",\n  \"position_sizing\": \"신규 자금은 확인 전 투입하지 않는다. 510000 위 종가와 867909주 대비 명확한 거래량 확장이 확인되거나, 489000-490000 눌림 이후 해당 구간을 회복하면 정상 비중보다 작은 starter만 허용한다. 이후 RSI가 55-60을 상향 통과하고 MACD가 양전환 방향으로 계속 개선되며 거래량이 유지될 때 단계적으로 증액한다. ATR이 약 27671-27672 KRW로 높고, 2025년 4분기 마진 둔화와 자유현금흐름 약화가 남아 있으므로 초기 포지션은 보통보다 작게 유지한다.\",\n  \"risk_limits\": \"종가 기준 리스크 관리를 우선한다. 482000 하회는 경고가 아니라 실제 비중 축소 검토 신호, 478000 하회는 위험 축소 기준, 445500-450000 하회는 회복 thesis 무효화 기준이다. 뉴스나 2026-04-16의 5-6%대 급등 보도에 따른 갭 상승은 종가와 거래량 확인 없이 추격하지 않는다. 2025년 4분기 영업이익률 약 3.6%, 자유현금흐름 -5.94조원, 2025년 각 분기 음수 자유현금흐름, 순부채 157.0조원 및 총부채 176.5조원은 리레이팅을 제한할 수 있는 핵심 위험이다. HEV, 자율주행, AI·로보틱스 기대는 인정하되 공시와 실적 확인 전에는 기대 기반 랠리의 되돌림 위험을 함께 관리한다.\",\n  \"catalysts\": [\n    \"005380.KS가 510000 위에서 종가를 형성하고 867909주 대비 명확한 거래량 확장을 동반해 50일 SMA 508176.94 저항 돌파를 확인하는 경우\",\n    \"489000-490000 부근 눌림 이후 10일 EMA 489760.70 주변을 지키고 재상승하며 손익비가 개선되는 경우\",\n    \"RSI가 55-60을 상향 돌파하고 MACD가 -3992.84에서 계속 개선되어 양전환 가능성을 높이는 경우\",\n    \"HEV 수요와 믹스 개선이 2026년 실적 또는 가이던스에서 마진 회복으로 확인되는 경우\",\n    \"US IONIQ 5 자율주행 확대, Motional 실행, DEEPX 협력 등 자율주행·AI·로보틱스 선택권이 상업적 또는 규제 진전으로 구체화되는 경우\",\n    \"주주환원 확대, 애널리스트 추정치 상향, 대형 수출주·자동차 업종으로의 수급 회전이 valuation 재평가를 강화하는 경우\"\n  ],\n  \"invalidators\": [\n    \"005380.KS가 508000-510000 저항에서 반복적으로 실패하고 478000-482000 아래로 종가가 내려가는 경우\",\n    \"482500 VWMA 부근 이탈 후 반등하지 못해 최근 매수 기반의 신뢰가 훼손되는 경우\",\n    \"445500-450000 지지가 깨져 445500 저점 이후의 회복 구조가 무너지는 경우\",\n    \"다음 실적에서 2025년 4분기 수준의 낮은 영업이익률과 현금흐름 부진이 지속되는 경우\",\n    \"자유현금흐름이 운전자본 부담과 capex로 계속 깊은 음수를 기록해 주주환원 및 리레이팅 논리가 약화되는 경우\",\n    \"Tesla 등 US EV·자율주행 경쟁, 가격 압박, 보조금·관세·환율 변화가 현대차의 점유율이나 수익성을 훼손하는 경우\",\n    \"최근 상승이 공시·실적·판매·추정치 개선 없이 뉴스와 위험선호에만 의존한 것으로 드러나 거래량 후속 확인이 실패하는 경우\"\n  ],\n  \"watchlist_triggers\": [\n    \"510000 위 종가와 867909주 대비 뚜렷한 거래량 확장\",\n    \"489000-490000 눌림 지지 후 재상승 및 10일 EMA 489760.70 회복 유지\",\n    \"RSI 55-60 상향 돌파와 MACD의 지속 개선\",\n    \"525000 돌파 후 즉시 되밀리지 않고 안착하는지 여부\",\n    \"482500 VWMA 또는 478500 최근 저점 하회 여부\",\n    \"2026년 실적·가이던스에서 HEV 수익성, 마진 회복, 자유현금흐름 개선이 확인되는지 여부\",\n    \"자율주행, Motional, AI·로보틱스 관련 뉴스가 단순 기대가 아니라 상업적 성과나 규제 진전으로 연결되는지 여부\",\n    \"공시 부재가 해소되고 주주환원 확대 또는 애널리스트 추정치 상향이 확인되는지 여부\"\n  ],\n  \"data_coverage\": {\n    \"company_news_count\": 2,\n    \"disclosures_count\": 0,\n    \"social_source\": \"news_derived\",\n    \"macro_items_count\": 1\n  }\n}",
  "started_at": "2026-04-16T09:29:15.442541+09:00",
  "finished_at": "2026-04-16T09:41:55.567023+09:00",
  "duration_seconds": 760.12,
  "metrics": {
    "llm_calls": 59,
    "tool_calls": 22,
    "tokens_in": 0,
    "tokens_out": 0,
    "tokens_available": false,
    "calls_by_model": {
      "gpt-5.4": 59
    }
  },
  "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_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": "fallback",
        "fallback": true,
        "note": "opendart: empty or unusable result"
      },
      {
        "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_balance_sheet",
        "vendor": "yfinance",
        "status": "success",
        "fallback": false,
        "note": null
      },
      {
        "method": "get_cashflow",
        "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"
  }
}