{
  "ticker": "GEV",
  "ticker_name": "GE Vernova",
  "status": "success",
  "trade_date": "2026-04-14",
  "analysis_date": "2026-04-15",
  "decision": "{\n  \"rating\": \"NO_TRADE\",\n  \"portfolio_stance\": \"BULLISH\",\n  \"entry_action\": \"WAIT\",\n  \"setup_quality\": \"DEVELOPING\",\n  \"confidence\": 0.68,\n  \"time_horizon\": \"medium\",\n  \"entry_logic\": \"GEV의 방향성은 여전히 우상향으로 판단한다. 공격적 분석가와 중립 분석가가 공통으로 지적한 10일 EMA 947.73, 50일 SMA 853.28, 200일 SMA 673.68의 정배열, MACD 40.46, MACD 히스토그램 10.86, VWMA 907.56 위의 가격 구조는 매도 우위가 아니라 매수 우위의 추세를 뒷받침한다. 또한 유동 이연수익 257.74억, 현금 및 단기투자 93.14억 대비 총부채 11.72억, AI 데이터센터 전력 수요·가스터빈·송배전·원전·전력망 현대화 수요는 중기 강세 논리를 유지시킨다. 다만 즉시 진입은 보류한다. 보수적 분석가와 중립 분석가가 강조한 RSI 70.91, ATR 38.56, 991 부근 단기 확장, 2026-04-13 거래량 1,629,200주로 직전 2.0M 이상 거래일 대비 둔화, 후행 PER 56.95, 선행 PER 43.89, PBR 24.23은 현재가 추격의 손익비를 낮춘다. 신규 진입은 947.73 부근의 질 좋은 눌림에서 RSI가 60대 중반 이하로 식고 거래량이 투매가 아닌 안정화 양상을 보이거나, 991.32 위 돌파가 거래량 재확대·종가 안착·후속 매수로 확인될 때만 검토한다. 따라서 레거시 rating은 NO_TRADE이지만, 이는 약세 판단이 아니라 조건부 강세 대기다.\",\n  \"exit_logic\": \"기존 보유자는 947.73 위에서 가격이 유지되고 MACD 히스토그램이 양수인 동안 core 보유를 허용한다. 다만 고점권 확장과 높은 밸류에이션을 감안해 과도한 tactical exposure는 일부 축소할 수 있다. 947.73 아래 종가 이탈과 MACD 히스토그램 둔화가 함께 나오면 전술 비중을 줄인다. 853.28의 50일 SMA를 निर्ण적으로 이탈하면 단순한 단기 열기 식힘이 아니라 중기 추세 훼손으로 보고 강세 논리를 재평가한다. Vineyard Wind 관련 비용, 소송, 프로젝트 지연, 마진 악화, 자유현금흐름의 반복성 훼손이 확인될 경우에도 보유 논리를 다시 검토한다.\",\n  \"position_sizing\": \"현재 991 부근에서는 신규 full-size 진입을 하지 않는다. 기존 보유분은 core를 유지하되 집중도를 높이지 않고, 급등 이후 초과 전술 비중은 부분 이익 실현을 고려한다. 947.73 부근 안정적 눌림 또는 991.32 위 검증된 돌파가 확인되면 starter만 허용하며, ATR 38.56과 프리미엄 밸류에이션을 반영해 정상 비중보다 작게 시작한다. 돌파 진입의 경우에도 다음 거래일 후속 매수 확인 전까지 증액하지 않는다.\",\n  \"risk_limits\": \"단기 위험 단위는 ATR 38.56을 기준으로 삼는다. 신규 starter의 초기 위험은 947.73 아래로 명확히 제한하고, 947.73 이탈 후 빠른 회복이 없으면 감액한다. 853.28 이탈은 중기 thesis review와 방어적 조치의 핵심 기준이다. Vineyard Wind 소송이나 실적 발표 전에는 사전 손절 기준 없이 추가하지 않는다. 밸류에이션이 후행 PER 56.95, 선행 PER 43.89, PBR 24.23으로 높기 때문에 주문·마진·현금흐름 중 하나라도 기대를 하회하면 멀티플 압축 위험을 반영한다.\",\n  \"catalysts\": [\n    \"GEV가 991.32 위로 돌파한 뒤 거래량이 최근 2.0M 주 이상 수준으로 재확대되고 종가 안착과 후속 매수가 확인되는 경우\",\n    \"947.73 부근 눌림에서 RSI가 60대 중반 이하로 식고 거래량이 투매가 아닌 안정화 형태를 보이는 경우\",\n    \"다음 실적에서 주문, 이연수익 전환, 마진 확장, 반복 가능한 자유현금흐름이 함께 확인되는 경우\",\n    \"Vineyard Wind 관련 비용이나 소송 노출이 제한적이라는 회사 공시 또는 경영진 설명이 나오는 경우\",\n    \"AI 데이터센터, 가스터빈, 전력망, 원전, 송배전 장비 수요가 추가 수주나 목표가 상향으로 확인되는 경우\"\n  ],\n  \"invalidators\": [\n    \"GEV가 947.73 아래로 종가 이탈하고 MACD 히스토그램이 둔화되며 빠른 회복에 실패하는 경우\",\n    \"853.28의 50일 SMA를 निर्ण적으로 이탈해 중기 상승 추세가 훼손되는 경우\",\n    \"Vineyard Wind 분쟁이 8.53억 달러 수준 비용 언급을 넘어 물질적 비용, 합의금, 프로젝트 지연, 평판 훼손으로 확대되는 경우\",\n    \"매출 성장에도 영업이익률 개선이 나타나지 않아 운영 레버리지 논리가 약해지는 경우\",\n    \"자유현금흐름 개선이 반복 가능한 현금 창출이 아니라 운전자본 효과에 과도하게 의존한 것으로 확인되는 경우\",\n    \"성장 전망 둔화와 인플레이션 기대 상승으로 프로젝트 경제성 또는 프리미엄 멀티플이 압박받는 경우\"\n  ],\n  \"watchlist_triggers\": [\n    \"947.73 부근으로 질서 있게 눌리고 RSI가 60대 중반 이하로 냉각되며 거래량이 안정화되는지 확인\",\n    \"991.32 위 돌파 후 거래량 2.0M 주 이상 재확대, 종가 안착, 다음 거래일 후속 매수 확인\",\n    \"2026-04-13 거래량 1,629,200주처럼 고점권 거래량이 계속 줄어드는지 추적\",\n    \"Vineyard Wind 관련 회사 공시, 경영진 발언, 비용 추정 업데이트 확인\",\n    \"다음 실적에서 주문, deferred revenue 전환, 마진, 자유현금흐름의 반복성 확인\",\n    \"947.73 이탈 후 회복 실패 여부와 853.28의 50일 SMA 방어 여부 점검\"\n  ],\n  \"data_coverage\": {\n    \"company_news_count\": 1,\n    \"disclosures_count\": 1,\n    \"social_source\": \"news_derived\",\n    \"macro_items_count\": 2\n  }\n}",
  "started_at": "2026-04-15T01:11:59.075731+09:00",
  "finished_at": "2026-04-15T01:25:44.942058+09:00",
  "duration_seconds": 825.87,
  "metrics": {
    "llm_calls": 61,
    "tool_calls": 21,
    "tokens_in": 0,
    "tokens_out": 0,
    "tokens_available": false,
    "calls_by_model": {
      "gpt-5.4": 61
    }
  },
  "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_social_sentiment",
        "vendor": "naver",
        "status": "fallback",
        "fallback": true,
        "note": "naver: empty or unusable result"
      },
      {
        "method": "get_company_news",
        "vendor": "naver",
        "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": "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_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
      }
    ]
  },
  "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"
  }
}