{
  "ticker": "012450.KS",
  "ticker_name": "한화에어로스페이스",
  "status": "success",
  "trade_date": "2026-04-14",
  "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\": \"012450.KS에 대한 중기 방향성은 건설적이다. 공격적 분석가와 중립 분석가가 공통적으로 지적했듯이 주가는 10일 EMA 1,470,928원, 50일 SMA 1,337,140원, 200일 SMA 1,051,394원을 모두 상회하고, 2025년 분기 매출 성장, 자유현금흐름 반전, 순차입금 감소, 2026-04-10 단일판매·공급계약 공시, NATO 및 한미 방산 공급망 뉴스가 중기 수출 방산 재평가 논리를 뒷받침한다. 다만 보수적 분석가와 중립 분석가가 강조한 것처럼 1,545,000~1,559,000원 저항이 아직 종가 기준으로 해소되지 않았고, 2026-04-15 KOSPI 강세 속 -0.92% 상대 약세, MACD 히스토그램 둔화, 2026-04-30 실적 전 마진·현금흐름 확인 필요성이 남아 있다. 따라서 레거시 배분 의견은 OVERWEIGHT, 방향성은 BULLISH로 유지하되, 오늘 즉시 신규·추가 매수는 보류한다. 신규 자금은 1,559,000원 이상 종가 돌파와 최근 4월 대비 거래량 확대가 동반되거나, 1,470,000~1,500,000원 눌림에서 지지·반전·모멘텀 회복이 확인될 때 starter로 정당화된다.\",\n  \"exit_logic\": \"단기 진입분은 1,470,000원 부근 10일 EMA 및 지지권을 종가로 이탈하고 MACD 히스토그램 악화가 이어지면 축소 또는 대기한다. 1,337,000원 부근 50일 SMA 이탈은 단순 변동성이 아니라 중기 OVERWEIGHT 논리를 낮추는 신호로 보고 포지션을 재평가한다. 2026-04-30 실적과 IR에서 매출 성장은 확인되더라도 수출 마진, 현금 전환, 운전자본, 재고, 매출채권, 수주잔고의 질이 기대에 못 미치면 등급 하향 또는 감액을 검토한다.\",\n  \"position_sizing\": \"확인 전에는 부분 비중만 허용한다. 기존 보유자는 중기 OVERWEIGHT를 유지할 수 있으나 실적 전 공격적 추가 매수는 피한다. 신규 진입자는 돌파 확인 또는 지지 확인 후 starter로 시작하고, ATR 약 86,600원 및 종가 대비 약 5.7%의 정상 변동성을 반영해 한 ATR 움직임이 단일 종목 손실 한도를 넘지 않도록 산정한다. 실적 전 이벤트 리스크가 부담되는 계정은 기존 이익 일부를 보호하되, 추세가 살아 있는 상태에서 기계적으로 중립까지 낮추지는 않는다.\",\n  \"risk_limits\": \"초기 전술 리스크 기준은 1,470,000원, 중기 논리 재검토 기준은 1,337,000원이다. ATR이 큰 종목이므로 지나치게 촘촘한 손절은 피하되, 밸류에이션 민감도와 실적 이벤트 리스크를 감안해 포지션 상한을 엄격히 둔다. 보수적 분석가가 지적한 선행 PER 26배, 유동비율 1.023, 총차입금 12.83조원, 재고 7.74조원, 2025년 4분기 매출 증가에도 영업이익 감소한 점은 마진·현금흐름 실망 시 밸류에이션 압축 위험으로 관리한다. 현대위아·현대로템 방산 공급망 재편은 기회와 리스크가 모두 있으므로 납기, 원가, 가격 협상력 변화가 확인될 때까지 과도한 레버리지 노출을 피한다.\",\n  \"catalysts\": [\n    \"012450.KS 2026-04-10 단일판매·공급계약 공시로 수주 및 매출 가시성 개선\",\n    \"2026-04-30 1분기 실적 및 IR에서 수출 마진, 수주잔고, 납기, 생산능력, 운전자본, 현금 전환 확인\",\n    \"NATO 30개국 대사단 대상 K9 및 천무 수출 기회 관련 긍정적 뉴스 흐름\",\n    \"한미 방산 공급망 협력 논의에서 012450.KS의 전략적 역할 부각\",\n    \"1,559,000원 이상 종가 돌파와 최근 4월 대비 거래량 확대에 따른 추세 재가속 확인\"\n  ],\n  \"invalidators\": [\n    \"방산 협력 내러티브가 profitable orders 또는 수주잔고 증가로 연결되지 않는 경우\",\n    \"2026-04-30 실적에서 매출 성장에도 수출 마진 또는 영업이익률이 악화되는 경우\",\n    \"자유현금흐름 개선이 반복 가능한 현금창출력이 아니라 일시적 운전자본 효과로 드러나는 경우\",\n    \"현대위아 또는 현대로템 방산 공급망 재편이 K9 핵심 부품 납기, 원가, 가격 협상력에 부정적 영향을 주는 경우\",\n    \"1,337,000원 부근 50일 SMA를 종가로 이탈해 중기 추세와 밸류에이션 신뢰가 훼손되는 경우\"\n  ],\n  \"watchlist_triggers\": [\n    \"1,559,000원 이상 일봉 종가 돌파와 최근 4월 대비 거래량 확대\",\n    \"1,470,000~1,500,000원 구간의 지지 확인, 거래량 안정, 반전 신호 발생\",\n    \"MACD 히스토그램 재확대와 2026-04-15 이후 상대 약세 해소\",\n    \"RSI가 극단적 과열권으로 치솟지 않은 상태에서 신고가 또는 저항 돌파 시도\",\n    \"2026-04-30 IR에서 수출 마진, 수주잔고, 생산능력, 운전자본, 현금 전환 관련 긍정적 확인\",\n    \"현대위아 또는 현대로템 방산 공급망 재편이 K9 부품 공급, 납기, 원가 구조에 미치는 영향 업데이트\"\n  ],\n  \"data_coverage\": {\n    \"company_news_count\": 3,\n    \"disclosures_count\": 2,\n    \"social_source\": \"news_derived\",\n    \"macro_items_count\": 1\n  }\n}",
  "started_at": "2026-04-16T02:20:34.610150+09:00",
  "finished_at": "2026-04-16T02:34:41.195649+09:00",
  "duration_seconds": 846.59,
  "metrics": {
    "llm_calls": 57,
    "tool_calls": 22,
    "tokens_in": 0,
    "tokens_out": 0,
    "tokens_available": false,
    "calls_by_model": {
      "gpt-5.4": 57
    }
  },
  "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"
  ],
  "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"
  }
}