{
  "ticker": "GEV",
  "ticker_name": "GE Vernova",
  "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.68,\n  \"time_horizon\": \"medium\",\n  \"entry_logic\": \"GEV의 중기 배분 관점은 OVERWEIGHT로 유지한다. 공격적 분석가와 중립 분석가가 공통으로 지적했듯이 전력망, 가스터빈, AI 데이터센터 전력 수요, 에너지 전환 수요가 살아 있고, 2025년 영업이익이 4,300만 달러에서 6억200만 달러로, 정상화 EBITDA가 2억2,500만 달러에서 7억1,900만 달러로 개선된 점은 투자 가능성을 뒷받침한다. 기술적으로도 50일선 861.52와 200일선 678.18이 상승 중이고 가격이 10일 EMA 956.79 위에 있어 추세는 유효하다. 다만 보수적 분석가와 중립 분석가가 강조한 대로 주가가 985-1007 저항대에 근접했고, MACD 히스토그램이 10.05에서 6.72로 둔화됐으며, RSI가 69.39에서 65.86으로 식은 상태라 오늘 즉시 추격 매수는 부적절하다. 신규 진입은 1007.38 위 종가 돌파와 최근 1.4M-2.3M주 범위를 웃도는 거래량이 확인되거나, 956-960 눌림에서 10일 EMA를 지키고 RSI가 60 부근 이상을 유지하며 bullish reversal이 나올 때로 제한한다. 920 부근은 더 깊은 관찰 매수 후보이나, 안정화가 확인될 때만 starter가 정당화된다.\",\n  \"exit_logic\": \"956-960 구간을 종가로 이탈하고 빠르게 회복하지 못하면 전술 비중을 줄인다. 920 VWMA 부근을 상승 거래량과 함께 결정적으로 이탈하면 단기 추세 포지션은 종료한다. 920 이탈 후에는 중립 분석가가 지적한 50일선 861.52까지 평균회귀 위험을 열어둔다. 중기 보유분은 Vineyard Wind 관련 책임 범위가 확대되거나, 다음 실적에서 마진 확장, 정상화 EBITDA, 잉여현금흐름의 질, 백로그 실행이 약화되면 재평가한다.\",\n  \"position_sizing\": \"오늘은 신규 매수하지 않는다. 조건이 충족되면 목표 GEV 비중의 1/3 starter로 시작하고, 956-960 지지 반등이 선명하면 최대 1/2 starter까지 허용한다. ATR 36.65가 주가의 약 3.7%로 변동성이 크고, 후행 P/E 55배, 선행 P/E 약 43배, P/B 23.6배로 밸류에이션 여유가 작으므로 초기 비중은 작게 유지한다. 추가 매수는 돌파 후 재시험 성공, 후속 거래량 증가, 또는 지지선 방어와 모멘텀 회복이 확인된 뒤에만 한다.\",\n  \"risk_limits\": \"1007.38 돌파가 저거래량이거나 장중 돌파 후 종가 유지에 실패하면 추격하지 않는다. 신규 진입 시 손절 기준은 최소 1.0 ATR, 변동성을 감내할 수 있는 계정은 1.2-1.5 ATR로 설정한다. 960 부근 진입은 923-920을 핵심 전술 위험선으로 둔다. Vineyard Wind, 법적 업데이트, 실적 발표 전에는 위험을 줄였거나 포지션 크기가 제한적일 때만 노출을 유지한다. 기존 비중이 이미 과도한 OVERWEIGHT라면 1007 부근 실패나 956-960 이탈 시 일부 이익 실현을 우선한다.\",\n  \"catalysts\": [\n    \"1007.38 위 종가 돌파와 최근 1.4M-2.3M주 범위를 웃도는 거래량 동반으로 GEV의 상승 모멘텀이 재확인되는 경우.\",\n    \"전력망 현대화, 가스터빈, AI 데이터센터 전력 수요, 산업 전력 인프라 수요가 지속되는 경우.\",\n    \"영업이익, 정상화 EBITDA, 잉여현금흐름 개선이 운전자본 효과가 아니라 반복 가능한 수익성 개선으로 확인되는 경우.\",\n    \"Goldman Sachs의 1,000달러 목표가 상향 같은 긍정적 애널리스트 흐름이나 기관 수요가 실적 추정치 상향과 함께 이어지는 경우.\",\n    \"Vineyard Wind 분쟁에서 책임 범위가 제한되거나 8억5,300만 달러 비용 및 3억800만 달러 지급 보류 관련 불확실성이 완화되는 경우.\"\n  ],\n  \"invalidators\": [\n    \"GEV가 956-960 10일 EMA 구간을 지키지 못하고 종가 기준으로 빠르게 회복하지 못하는 경우.\",\n    \"920 VWMA 부근을 상승 거래량과 함께 결정적으로 이탈하는 경우.\",\n    \"Vineyard Wind 관련 68개 블레이드 결함 주장이 품질, 보증, 고객 관계, 해상풍력 마진 리스크로 확대되는 경우.\",\n    \"다음 실적이나 가이던스에서 마진 확장 부진, 낮은 품질의 현금흐름, 백로그 실행 문제, 운전자본 반전이 확인되는 경우.\",\n    \"후행 P/E 55배와 선행 P/E 약 43배를 정당화할 성장 기대가 약해지며 밸류에이션 압축이 가속되는 경우.\"\n  ],\n  \"watchlist_triggers\": [\n    \"GEV가 1007.38 위에서 종가를 형성하고 거래량이 최근 1.4M-2.3M주 범위를 초과하는지 확인한다.\",\n    \"956-960 눌림에서 10일 EMA를 방어하고 RSI가 60 부근 이상을 유지하며 bullish reversal이 나오는지 확인한다.\",\n    \"920 VWMA 테스트 시 고거래량 붕괴가 아니라 안정화와 매수 반응이 나오는지 확인한다.\",\n    \"Vineyard Wind 소송, 블레이드 결함 책임, 합의 비용, 지급 보류 관련 업데이트를 추적한다.\",\n    \"다음 분기 마진, 정상화 EBITDA, 잉여현금흐름, 이연수익, 재고, 매출채권 추세를 확인한다.\"\n  ],\n  \"data_coverage\": {\n    \"company_news_count\": 4,\n    \"disclosures_count\": 0,\n    \"social_source\": \"news_derived\",\n    \"macro_items_count\": 1\n  }\n}",
  "started_at": "2026-04-17T18:17:03.421315+09:00",
  "finished_at": "2026-04-17T18:30:24.967151+09:00",
  "duration_seconds": 801.55,
  "metrics": {
    "llm_calls": 56,
    "tool_calls": 18,
    "tokens_in": 0,
    "tokens_out": 0,
    "tokens_available": false,
    "calls_by_model": {
      "gpt-5.4": 56
    }
  },
  "tool_telemetry": {
    "total_tool_calls": 18,
    "vendor_calls": {
      "yfinance": 15,
      "alpha_vantage": 3
    },
    "fallback_count": 1,
    "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": "alpha_vantage",
        "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": "alpha_vantage",
        "status": "success",
        "fallback": false,
        "note": null
      },
      {
        "method": "get_company_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_cashflow",
        "vendor": "yfinance",
        "status": "success",
        "fallback": false,
        "note": null
      },
      {
        "method": "get_insider_transactions",
        "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"
  },
  "intraday_snapshot_attempts": [
    {
      "ticker": "GEV",
      "attempted": true,
      "success": true,
      "checkpoint": "05:05",
      "interval": "5m",
      "attempted_at": "2026-04-17T21:02:43.954561+09:00",
      "provider": "yfinance_intraday",
      "market_data_asof": "2026-04-16T15:55:00-04:00"
    },
    {
      "ticker": "GEV",
      "attempted": true,
      "success": true,
      "checkpoint": "selective_rerun",
      "interval": "5m",
      "attempted_at": "2026-04-17T22:24:54.524406+09:00",
      "provider": "yfinance_intraday",
      "market_data_asof": "2026-04-16T15:55:00-04:00"
    },
    {
      "ticker": "GEV",
      "attempted": true,
      "success": true,
      "checkpoint": "01:35",
      "interval": "5m",
      "attempted_at": "2026-04-18T02:34:46.498693+09:00",
      "provider": "yfinance_intraday",
      "market_data_asof": "2026-04-17T13:30:00-04:00"
    }
  ],
  "latest_intraday_snapshot_attempt": {
    "ticker": "GEV",
    "attempted": true,
    "success": true,
    "checkpoint": "01:35",
    "interval": "5m",
    "attempted_at": "2026-04-18T02:34:46.498693+09:00",
    "provider": "yfinance_intraday",
    "market_data_asof": "2026-04-17T13:30:00-04:00"
  },
  "intraday_snapshot_latest_attempt": {
    "ticker": "GEV",
    "attempted": true,
    "success": true,
    "checkpoint": "01:35",
    "interval": "5m",
    "attempted_at": "2026-04-18T02:34:46.498693+09:00",
    "provider": "yfinance_intraday",
    "market_data_asof": "2026-04-17T13:30:00-04:00"
  }
}