{
  "ticker": "005380.KS",
  "ticker_name": "현대차",
  "status": "success",
  "trade_date": "2026-04-15",
  "analysis_date": "2026-04-16",
  "decision": "{\n  \"rating\": \"OVERWEIGHT\",\n  \"portfolio_stance\": \"BULLISH\",\n  \"entry_action\": \"WAIT\",\n  \"setup_quality\": \"DEVELOPING\",\n  \"confidence\": 0.6,\n  \"time_horizon\": \"medium\",\n  \"entry_logic\": \"005380.KS는 중기 관점에서 위험 통제형 비중확대가 가능하지만, 오늘 즉시 추격 매수할 조건은 아직 완성되지 않았다. 공격적 분석가는 200일 SMA 321038.98 위의 장기 구조, 10일 EMA 485707.52 회복, MACD 히스토그램의 2026-04-06 -5401.96에서 2026-04-14 +1149.60 개선, RSI 49.74의 비과열 상태, 외국인 지분율 42% 돌파 보도와 AI·로보틱스·자율주행 서사를 근거로 상승 재평가 가능성을 제시했다. 반면 보수적 분석가는 2026-04-08의 508000 도달 후 489500 되밀림, 2026-04-14 종가 491500이 50일 SMA 508530.79 및 508000-510000 저항 아래에 있다는 점, MACD 본선 -6176.01, 낮은 거래량 778907주, FCF -7.21조 원, 순부채 157.03조 원, 노사 리스크를 지적했다. 최종 판단은 중립 분석가의 균형안처럼 방향성은 BULLISH로 유지하되, 491500-510000 구간에서는 추격하지 않고 510000 위 종가와 거래량 확장, 또는 478500-482000 지지 확인 후 VWMA 회복이 나올 때만 스타터를 허용한다.\",\n  \"exit_logic\": \"스타터 진입 후 005380.KS가 465000 아래로 종가 이탈하면 4월 반등 구조 실패로 보고 위험을 줄인다. 특히 478500-482000 지지 확인으로 진입한 물량은 465000 종가 이탈 시 최소 절반 이상 감축하고, 445500 아래 종가 이탈은 2026-03 저점권 재이탈과 하락 모멘텀 재개로 보아 전술 포지션을 종료한다. 510000 돌파 후 진입했더라도 종가가 빠르게 510000 아래로 복귀하고 거래량이 둔화되면 2026-04-08 이후의 실패 사례와 같은 가짜 돌파로 간주해 철수하거나 재확인을 기다린다.\",\n  \"position_sizing\": \"현재는 신규 매수 없음. 510000 위 일간 종가와 778907주를 명확히 웃도는 거래량 확장이 동시에 확인되면 의도한 중기 배분의 20%-30%만 스타터로 시작한다. 525000 부근까지 후속 상승이 나오고 510000을 지지로 재확인하면 35%-45%까지 단계적으로 확대할 수 있다. 478500-482000 지지 확인 후 VWMA 위 종가 회복으로 진입하는 경우에는 실패 위험이 더 크므로 15%-25%로 더 작게 시작한다. ATR 약 27685, 음의 FCF, 운전자본 악화, 순부채 증가, 노사 협상 변수를 감안해 정상 비중까지의 확대는 마진 회복과 영업현금흐름 개선 확인 전까지 보류한다.\",\n  \"risk_limits\": \"491500-510000 사이에서는 추격 매수하지 않는다. 510000 돌파 진입은 거래량 확장 없이 가격만 넘는 경우 유효 신호로 보지 않는다. 478500-482000 지지 진입은 465000 종가 이탈을 엄격한 감축 기준으로 둔다. 총 노출은 005380.KS가 510000을 지지로 확인하고 525000 후속 상승을 보이기 전까지 제한한다. 노조의 고용 보장 및 상여금 800% 요구, 금속노조 총파업 가능성, FCF -7.21조 원, 2025-12-31 영업현금흐름 -2.09조 원, 운전자본 변화 -8.31조 원, 순부채 157.03조 원 증가는 사이즈 상한 요인으로 반영한다.\",\n  \"catalysts\": [\n    \"005380.KS 일간 종가가 510000 위로 올라서고 거래량이 778907주를 명확히 웃돌며 50일 SMA 508530.79 회복을 확인하는 경우\",\n    \"510000 돌파 후 525000까지 후속 상승이 나오고 510000이 지지선으로 전환되는 경우\",\n    \"478500-482000 재시험 후 장중 회복과 VWMA 481439.36 위 종가 회복이 확인되는 경우\",\n    \"외국인 지분율 42% 돌파 보도 이후 외국인 순매수와 수급 지지가 지속되는 경우\",\n    \"다음 실적에서 영업이익 안정화, 영업현금흐름 개선, 운전자본 정상화가 확인되는 경우\",\n    \"자율주행, 아이오닉5 로보택시, Boston Dynamics, 피지컬 AI, DEEPX, 수소, EV 전략이 실제 매출·수주·생산·수익성 지표로 연결되는 경우\",\n    \"노사 협상이 큰 생산 차질이나 과도한 임금 비용 부담 없이 마무리되는 경우\"\n  ],\n  \"invalidators\": [\n    \"005380.KS 종가가 465000 아래로 내려가 4월 반등 구조가 실패하는 경우\",\n    \"005380.KS 종가가 445500 아래로 내려가 2026-03 저점권 이탈과 하락 모멘텀 재개를 확인하는 경우\",\n    \"510000 돌파가 거래량 없이 발생하거나 돌파 직후 종가가 510000 아래로 빠르게 복귀하는 경우\",\n    \"MACD 개선이 꺾이고 가격이 계속 50일 SMA 508530.79 아래에 머무는 경우\",\n    \"2026-04-14 거래량 778907주 수준을 의미 있게 넘지 못한 채 반등만 이어지는 경우\",\n    \"FCF 적자, 운전자본 악화, 순부채 증가가 다음 보고 주기에도 정상화 경로 없이 심화되는 경우\",\n    \"노사 갈등이 생산 차질이나 구조적인 비용 부담 확대로 이어지는 경우\",\n    \"AI·로보틱스·자율주행 관련 뉴스가 매출, 수주, 양산, 수익성 증거로 연결되지 못하는 경우\"\n  ],\n  \"watchlist_triggers\": [\n    \"005380.KS 일간 종가 510000 상회 및 거래량 778907주를 명확히 웃도는지 확인\",\n    \"478500-482000 지지 재시험 후 장중 회복과 VWMA 481439.36 위 종가 회복 여부 확인\",\n    \"510000 돌파 후 525000 상회 또는 접근 시 추가 매수 가능성 점검\",\n    \"510000 돌파 후 종가 재이탈과 거래량 둔화가 동시에 발생하는지 확인\",\n    \"465000 종가 이탈 시 위험 축소, 445500 종가 이탈 시 전술 포지션 종료 검토\",\n    \"다음 실적에서 영업이익 안정화, 영업현금흐름 플러스 전환, 운전자본 정상화 여부 확인\",\n    \"노조 협상, 파업 가능성, 미국 EV 경쟁, FX, 관세, 외국인 수급 관련 뉴스 추적\",\n    \"공시 부재가 이어지는 상황에서 뉴스 기반 성장 서사가 실적 증거로 전환되는지 확인\"\n  ],\n  \"data_coverage\": {\n    \"company_news_count\": 5,\n    \"disclosures_count\": 0,\n    \"social_source\": \"news_derived\",\n    \"macro_items_count\": 0\n  }\n}",
  "started_at": "2026-04-16T01:34:52.633697+09:00",
  "finished_at": "2026-04-16T01:49:20.490263+09:00",
  "duration_seconds": 867.86,
  "metrics": {
    "llm_calls": 62,
    "tool_calls": 22,
    "tokens_in": 0,
    "tokens_out": 0,
    "tokens_available": false,
    "calls_by_model": {
      "gpt-5.4": 62
    }
  },
  "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_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
      }
    ],
    "called_tools": [],
    "intraday_snapshot_used": false
  },
  "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"
  }
}