{
  "ticker": "GEV",
  "ticker_name": "GE Vernova",
  "status": "success",
  "trade_date": "2026-04-14",
  "analysis_date": "2026-04-15",
  "decision": "{\n  \"rating\": \"OVERWEIGHT\",\n  \"portfolio_stance\": \"BULLISH\",\n  \"entry_action\": \"WAIT\",\n  \"setup_quality\": \"DEVELOPING\",\n  \"confidence\": 0.68,\n  \"time_horizon\": \"medium\",\n  \"entry_logic\": \"GEV의 중기 방향성은 여전히 긍정적이다. 공격적 분석가는 AI 전력 수요, 데이터센터 전력 부족, 가스터빈 희소성, 송배전·변압기 병목, 에너지 안보 수요가 동시에 작동하고 있으며, 10일 EMA 944.46, 50일 SMA 852.92, 200일 SMA 673.59 위에서 강한 추세가 유지된다고 강조했다. 중립 분석가도 이 구조적 수요와 강한 추세를 인정해 장기 후보에서 제외할 이유는 없다고 봤다. 다만 보수적 분석가와 중립 분석가가 지적했듯이 2026-03-30의 817.35에서 2026-04-13의 991.12까지 급등했고, 현재 가격은 999.43-1007.38 저항대에 가깝다. RSI 68.42, ATR 약 38.56, 고점 부근 거래량 둔화, MACD 히스토그램 10.05에서 9.71로의 소폭 약화는 오늘 즉시 추격 매수하기에는 보상 대비 위험이 충분히 좋지 않다는 증거다. 따라서 레거시 투자 의견은 OVERWEIGHT, 방향성은 BULLISH로 유지하되, 즉시 실행은 WAIT로 둔다. 신규 진입은 1007.38 위 일간 종가와 최근 1.6M-2.2M 범위를 넘는 거래량 확대 및 MACD 히스토그램 재확대가 확인되거나, 944-952 지지권 테스트 후 10일 EMA를 강하게 회복할 때만 소규모 시작 포지션으로 정당화된다.\",\n  \"exit_logic\": \"기존 보유분은 추세가 유지되는 동안 유지할 수 있으나, 구조적 성장 서사가 손실 통제를 대체해서는 안 된다. 933-945 단기 추세 방어 구간 아래로 종가가 이탈하고 MACD 히스토그램 수축이 이어지거나 10일 EMA 회복에 실패하면 전술적 노출을 축소한다. 910 VWMA를 상승 거래량과 함께 하향 이탈하면 추세 품질 훼손으로 보고 추가 축소 또는 방어적 보유로 전환한다. 852-853의 50일 SMA를 결정적으로 이탈하면 중기 기술적 논리가 크게 훼손되므로 OVERWEIGHT 논리를 재검토한다. 또한 Vineyard Wind의 853 million 비용 청구가 더 큰 충당금, 계약 손실, 품질 문제로 확산되거나, 다음 실적에서 자유현금흐름이 운전자본 효과에 의존한 것으로 드러나고 마진 전환이 약하면 투자 논리를 낮춘다.\",\n  \"position_sizing\": \"기존 보유자는 OVERWEIGHT를 유지할 수 있지만 999.43-1007.38 저항권에서 추가 매수하지 않는다. 신규 자금은 확인 이후에만 단계적으로 투입한다. 1007.38 위 유효 돌파 또는 944-952 지지 후 10일 EMA 회복 시 정상 목표 비중의 일부만 시작하고, 거래량과 모멘텀이 이어질 때만 증액한다. ATR이 약 38.56으로 크기 때문에 1.0-1.5 ATR 손절 폭이 일반 포트폴리오 위험 한도를 넘지 않도록 주식 수를 줄인다. 보수적 분석가가 지적한 높은 밸류에이션, 넓은 지지 간격, 법적·실행 리스크를 반영해 신규 시작 포지션은 일반 OVERWEIGHT보다 작게 운용한다.\",\n  \"risk_limits\": \"확인 없는 추격 매수는 금지한다. 1007.38 위 종가 돌파와 거래량 확대가 없거나, 944-952 지지권에서 회복 신호가 없으면 신규 진입하지 않는다. 933-945는 첫 전술적 위험 구간, 910은 추세 품질 경고선, 852-853은 중기 추세 무효화 구간으로 둔다. trailing P/E 55.85, forward P/E 43.13, price-to-book 23.81 수준의 높은 밸류에이션은 실적 실망 시 멀티플 압축 위험을 키운다. Vineyard Wind 분쟁, Prolec 통합 리스크, 운전자본 악화, current ratio 0.982, inventory 9.644 billion, receivables 7.866 billion도 노출 확대를 제한해야 하는 이유다.\",\n  \"catalysts\": [\n    \"GEV가 1007.38 위에서 일간 종가를 형성하고 거래량이 최근 1.6M-2.2M 범위를 뚜렷하게 상회하며 MACD 히스토그램이 재확대되는 경우\",\n    \"AI 데이터센터 전력 수요가 GEV의 가스터빈, 송배전 장비, 변압기 주문으로 실제 전환되고 있다는 추가 증거\",\n    \"5년 이상으로 언급된 가스터빈 공급 제약이 수주잔고 가시성, 가격 결정력, 마진 개선으로 연결되는 경우\",\n    \"Prolec 인수 후 미국 변압기 생산능력 확대와 통합 진척이 확인되는 경우\",\n    \"다음 실적에서 영업마진 개선, 반복 가능한 자유현금흐름, deferred revenue 25.774 billion의 건전한 매출 전환이 확인되는 경우\"\n  ],\n  \"invalidators\": [\n    \"933-945 아래 종가 이탈 후 10일 EMA 회복 실패와 MACD 히스토그램 수축 지속\",\n    \"910 VWMA 하향 이탈이 상승 거래량과 함께 발생하는 경우\",\n    \"852-853 50일 SMA의 결정적 이탈로 중기 상승 추세가 훼손되는 경우\",\n    \"Vineyard Wind의 853 million 비용 청구가 대규모 충당금, 계약 손실, 광범위한 품질 문제로 확대되는 경우\",\n    \"다음 분기 자유현금흐름이 운전자본 반전 이후 약화되고 마진 전환 또는 backlog 전환 품질이 기대에 못 미치는 경우\",\n    \"금리, 인플레이션, 달러 강세, AI 인프라 지출 기대 약화로 고밸류에이션 산업재 멀티플이 압박받는 경우\"\n  ],\n  \"watchlist_triggers\": [\n    \"돌파 유지 조건: 1007.38 위 일간 종가, 최근 1.6M-2.2M 범위를 넘는 거래량, RSI의 약세 반전 부재\",\n    \"되돌림 진입 조건: 944-952 테스트 후 지지 확인, 이어서 10일 EMA 위 강한 종가 회복\",\n    \"위험 축소 조건: 910 VWMA 하향 이탈 또는 가격이 10일 EMA 아래에 있는 상태에서 MACD 히스토그램이 2거래일 연속 수축\",\n    \"실적 점검 조건: 영업마진, 자유현금흐름 반복성, deferred revenue 전환, inventory, receivables, current ratio의 개선 여부\",\n    \"법적 점검 조건: Vineyard Wind 관련 신규 공시나 신뢰 가능한 보도에서 853 million 청구를 넘어서는 손실 범위가 확인되는지 여부\"\n  ],\n  \"data_coverage\": {\n    \"company_news_count\": 5,\n    \"disclosures_count\": 0,\n    \"social_source\": \"news_derived\",\n    \"macro_items_count\": 4\n  }\n}",
  "started_at": "2026-04-15T21:52:28.556024+09:00",
  "finished_at": "2026-04-15T22:07:09.892986+09:00",
  "duration_seconds": 881.34,
  "metrics": {
    "llm_calls": 60,
    "tool_calls": 21,
    "tokens_in": 0,
    "tokens_out": 0,
    "tokens_available": false,
    "calls_by_model": {
      "gpt-5.4": 60
    }
  },
  "tool_telemetry": {
    "total_tool_calls": 21,
    "vendor_calls": {
      "yfinance": 15,
      "naver": 3,
      "ecos": 1,
      "opendart": 1,
      "alpha_vantage": 1
    },
    "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": "fallback",
        "fallback": true,
        "note": "opendart: empty or unusable result"
      },
      {
        "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_balance_sheet",
        "vendor": "yfinance",
        "status": "success",
        "fallback": false,
        "note": null
      },
      {
        "method": "get_insider_transactions",
        "vendor": "yfinance",
        "status": "success",
        "fallback": false,
        "note": null
      },
      {
        "method": "get_cashflow",
        "vendor": "yfinance",
        "status": "success",
        "fallback": false,
        "note": null
      },
      {
        "method": "get_fundamentals",
        "vendor": "yfinance",
        "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"
  }
}