{
  "ticker": "005380.KS",
  "ticker_name": "현대차",
  "status": "success",
  "trade_date": "2026-04-16",
  "analysis_date": "2026-04-17",
  "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는 중기적으로 조건부 비중확대 관점이 타당하다. 공격적 분석가가 지적한 것처럼 674000원에서 445500원까지의 급락 이후 508000원 부근으로 회복했고, 10일 EMA 497804원 및 VWMA 488186원 위에 있어 반등 구조가 살아 있다. RSI 58.2, MACD 히스토그램 5197 개선, 미국 하이브리드 판매 53.2% 증가, 친환경차 수출 259121대 기록, Boston Dynamics와 DEEPX 관련 로봇·피지컬 AI 선택지는 상승 논리를 뒷받침한다. 다만 보수적·중립 분석가가 강조한 대로 ATR이 약 28267원으로 종가 대비 약 5.56%이고, 514000~519000원 저항이 아직 거래량으로 확인된 지지로 전환되지 않았다. 따라서 오늘은 추격 매수하지 않고 WAIT를 유지한다. 519000원 위 종가와 명확한 거래량 증가가 나오면 STARTER가 정당화되며, 489000~497000원 눌림 구간에서는 매도 압력 둔화와 지지 확인이 있을 때만 분할 진입을 검토한다.\",\n  \"exit_logic\": \"기존 보유분은 유지 가능하되 489000원 하회와 하락 거래량 증가가 동반되면 전술 비중을 줄인다. 465000원 종가 이탈은 중기 강세 구조 훼손으로 보고 방어 전환 또는 청산을 우선한다. 이 경우 445500원 저점 재시험 가능성을 반영해 재평가한다. 상승 시에는 530000~545000원 구간에서 일부 이익 실현을 검토하고, 569500원 부근에서는 추가 저항 반응과 거래량을 확인한다.\",\n  \"position_sizing\": \"신규 전면 진입은 보류한다. 519000원 위 종가와 거래량 확대가 확인되면 목표 비중의 25~35%로 STARTER를 시작하고, 그 후 519000원 지지 전환, RSI 60 상회 유지, MACD 0선 상향 전환이 확인될 때 단계적으로 증액한다. 489000~497000원 지지 확인형 눌림 매수도 분할로만 접근한다. 높은 beta 1.576, ATR 5.56%, 약한 잉여현금흐름을 고려해 레버리지와 공격적 물타기는 금지한다.\",\n  \"risk_limits\": \"핵심 위험 한도는 465000원 종가 이탈이다. 489000원 하회와 하락 거래량 증가는 1차 경고로 보고 신규 추가 매수를 중단한다. 보수적 분석가가 지적한 영업이익률 약 3.6%, 분기 잉여현금흐름 약 -5.94조 KRW, 2025년 4개 분기 연속 잉여현금흐름 적자, 순부채 137.5조 KRW에서 157.0조 KRW로 증가한 점은 밸류에이션 재평가를 제한할 수 있다. 실적과 현금흐름 개선 전에는 평균단가 상승과 과도한 포지션 확대를 피한다.\",\n  \"catalysts\": [\n    \"005380.KS가 519000원 위에서 거래량 증가를 동반해 종가 안착하고 후속 거래에서도 해당 가격대를 지지로 유지\",\n    \"미국 하이브리드 판매 53.2% 증가세 지속 및 고마진 하이브리드 라인업 확대\",\n    \"친환경차 수출 259121대 기록 이후 북미·인도 판매 믹스 개선 지속\",\n    \"Boston Dynamics, DEEPX, 로봇·피지컬 AI 관련 상용화 또는 매출화 진척\",\n    \"영업이익률 회복, 운전자본 정상화, 잉여현금흐름 개선 확인\",\n    \"KB Securities의 800000원 목표가처럼 우호적 리서치와 수급 개선이 실제 거래량으로 연결\"\n  ],\n  \"invalidators\": [\n    \"465000원 종가 이탈로 중기 반등 구조가 훼손되고 445500원 재시험 가능성이 확대\",\n    \"514000~519000원 저항 돌파 실패 후 거래량 증가를 동반한 하락\",\n    \"489000원 하회와 하락 거래량 증가로 489000~497000원 지지 구간이 무효화\",\n    \"영업이익률 약 3.6% 수준에서 추가 둔화하거나 2026년 실적 개선이 지연\",\n    \"분기 잉여현금흐름 약 -5.94조 KRW 및 2025년 연속 적자 흐름이 지속되고 순부채가 추가 증가\",\n    \"BYD, Zeekr, Xpeng, Tesla 등 중국 EV·PHEV 가격 경쟁이 현대차 전기차·하이브리드 마진을 훼손\",\n    \"로봇·AI·수소 관련 뉴스가 구체적 수익 기여 없이 단기 테마로 소진\"\n  ],\n  \"watchlist_triggers\": [\n    \"519000원 위 종가와 명확한 거래량 확대 여부\",\n    \"519000원 돌파 후 후속 거래에서 지지 전환 여부\",\n    \"489000~497000원 구간에서 매도 압력 둔화와 반등 거래량 확인\",\n    \"RSI 60 상회 유지 및 MACD 0선 상향 전환\",\n    \"April 17 전후 5~6% 급등 이후 뉴스 기반 수급이 실제 기관성 거래량으로 이어지는지 여부\",\n    \"하이브리드 판매, 친환경차 수출, 북미 인센티브와 인도 판매 믹스 추이\",\n    \"Boston Dynamics, DEEPX, 로봇·피지컬 AI 사업의 구체적 제품화·매출화 뉴스\",\n    \"OpenDART 임원·주요주주 보유상황보고서의 지분 변동 세부 내용\",\n    \"영업이익률, 잉여현금흐름, 순부채 개선 여부\"\n  ],\n  \"data_coverage\": {\n    \"company_news_count\": 5,\n    \"disclosures_count\": 1,\n    \"social_source\": \"news_derived\",\n    \"macro_items_count\": 0\n  }\n}",
  "started_at": "2026-04-17T07:55:39.502383+09:00",
  "finished_at": "2026-04-17T08:07:08.264038+09:00",
  "duration_seconds": 688.76,
  "metrics": {
    "llm_calls": 42,
    "tool_calls": 22,
    "tokens_in": 0,
    "tokens_out": 0,
    "tokens_available": false,
    "calls_by_model": {
      "gpt-5.4": 42
    }
  },
  "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_cashflow",
        "vendor": "yfinance",
        "status": "success",
        "fallback": false,
        "note": null
      },
      {
        "method": "get_balance_sheet",
        "vendor": "yfinance",
        "status": "success",
        "fallback": false,
        "note": null
      },
      {
        "method": "get_income_statement",
        "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"
  },
  "intraday_snapshot_attempts": [
    {
      "ticker": "005380.KS",
      "attempted": true,
      "success": true,
      "checkpoint": "10:05",
      "interval": "5m",
      "attempted_at": "2026-04-17T10:39:49.237801+09:00",
      "provider": "yfinance_intraday",
      "market_data_asof": "2026-04-17T10:15:00+09:00"
    },
    {
      "ticker": "005380.KS",
      "attempted": true,
      "success": true,
      "checkpoint": "selective_rerun",
      "interval": "5m",
      "attempted_at": "2026-04-17T10:55:49.693144+09:00",
      "provider": "yfinance_intraday",
      "market_data_asof": "2026-04-17T10:35:00+09:00"
    }
  ],
  "latest_intraday_snapshot_attempt": {
    "ticker": "005380.KS",
    "attempted": true,
    "success": true,
    "checkpoint": "selective_rerun",
    "interval": "5m",
    "attempted_at": "2026-04-17T10:55:49.693144+09:00",
    "provider": "yfinance_intraday",
    "market_data_asof": "2026-04-17T10:35:00+09:00"
  },
  "intraday_snapshot_latest_attempt": {
    "ticker": "005380.KS",
    "attempted": true,
    "success": true,
    "checkpoint": "selective_rerun",
    "interval": "5m",
    "attempted_at": "2026-04-17T10:55:49.693144+09:00",
    "provider": "yfinance_intraday",
    "market_data_asof": "2026-04-17T10:35:00+09:00"
  }
}