{
  "ticker": "ETN",
  "ticker_name": "Eaton",
  "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\": \"ETN의 중기 방향성은 우호적이다. 공격적 분석가는 50일 평균 약 369와 200일 평균 약 358 위에서 거래되고, 10일 지수평균 약 387, 양의 MACD, 강한 자유현금흐름 1.573 billion, 순부채 감소 10.598 billion에서 9.273 billion, AI 데이터센터와 전력 인프라 수요가 추세를 지지한다고 보았다. 그러나 보수적·중립적 분석가가 지적한 것처럼 2026-03-30의 343.53에서 약 403까지 단기간 급등했고, RSI가 약 69.4, ATR이 약 12.7이며, 가격이 408-409 저항과 상단 밴드 408.26 부근에 있어 오늘 즉시 추격 매수할 위험보상은 부족하다. 따라서 방향성은 BULLISH로 유지하되 즉시 진입은 WAIT이다. 신규 자금은 387 부근 조정에서 종가 기준 방어와 거래량 안정, 모멘텀 둔화 후 재안정이 확인되거나, 408-409 상향 돌파가 거래량과 후속 지지로 확인될 때만 소규모 시작 포지션을 검토한다.\",\n  \"exit_logic\": \"기존 보유분은 단기 추세대 위에 있는 동안 유지할 수 있다. ETN이 약 387 아래로 종가 이탈하고 시장 폭이나 거래량이 약해지면 축소한다. 408-409 돌파 시도 후 고거래량으로 급반전하면 실패 돌파로 보고 빠르게 위험을 줄인다. 373-369의 거래량가중 평균·50일 지지 구간을 연속 종가로 하회하면 최근 상승이 정상 조정이 아니라 과열 해소로 전환된 신호이므로 중립으로 낮추고 의미 있게 감축하거나 청산한다.\",\n  \"position_sizing\": \"오늘 신규 풀사이즈 포지션은 열지 않는다. 조건이 충족되면 ATR 약 12.7을 반영해 정상보다 작은 부분 시작 포지션만 허용한다. 387 지지 확인형 진입은 매도 압력이 통제되고 RSI가 식으면서 추세가 유지될 때만 가능하다. 408-409 돌파형 진입은 종가 돌파와 후속 지지가 있어야 하며, 추가 매수는 재테스트 성공 또는 돌파 지속 후에만 단계적으로 한다. 실적, 백로그, 마진, 자유현금흐름, 데이터센터 수요 확인 전까지 총 ETN 노출은 보수적으로 유지한다.\",\n  \"risk_limits\": \"ATR 기반으로 손절 폭을 설정하고 정상 변동성에 걸리는 과도하게 촘촘한 손절은 피한다. 387 부근 시작 포지션은 373-369 지지 구간 아래 또는 사전 정의한 포트폴리오 손실 한도에서 위험을 제한한다. 408-409 돌파 진입은 해당 구간이 지지로 유지되어야 하며, 즉시 되밀리면 빠르게 축소한다. 고평가 구간에서의 진입이므로 레버리지는 사용하지 않고, 실적 전후 및 지정학·금리·원자재 변동성이 커질 때는 노출을 더 낮춘다.\",\n  \"catalysts\": [\n    \"AI 데이터센터와 전력 인프라 수요가 ETN의 프리미엄 내러티브를 지속적으로 뒷받침\",\n    \"미국 중전압 스위치기어 생산능력 확대와 2027 생산 예정인 Nebraska 시설\",\n    \"다음 실적에서 주문, 백로그, 마진, 자유현금흐름, 데이터센터 관련 수요 확인\",\n    \"위험자산 반등과 금리 하락 기대가 프리미엄 산업재 배수를 지지\",\n    \"강한 현금 전환과 순부채 감소 지속\"\n  ],\n  \"invalidators\": [\n    \"실적이나 가이던스가 백로그·마진 개선 없이 완만한 성장에 그침\",\n    \"408-409 저항 돌파 실패 후 고거래량 급반전\",\n    \"373-369 거래량가중 평균·50일 지지 구간 연속 종가 하회\",\n    \"투입비, 공급망, 유가발 인플레이션이 마진을 압박\",\n    \"거시 성장 기대 악화로 산업 설비투자 수요가 약화\",\n    \"내부자 매도나 무형자산 부담이 시장의 핵심 우려로 부상\"\n  ],\n  \"watchlist_triggers\": [\n    \"408-409 위 종가 돌파와 거래량·후속 지지 확인 시 소규모 시작 또는 추가 검토\",\n    \"약 387까지 조정 후 종가 기준 방어, 매도 거래량 통제, 모멘텀 안정 시 소규모 시작 검토\",\n    \"RSI가 70 이상인데 가격 후속 상승이 없으면 과열 경고로 진입 보류\",\n    \"387 아래 종가 이탈 시 신규 진입 보류 및 기존 위험 축소\",\n    \"373-369 연속 종가 하회 시 포트폴리오 방향성을 NEUTRAL로 낮추고 신규 매수 금지\",\n    \"다음 실적의 주문, 백로그, 마진, 자유현금흐름, 데이터센터 수요 발언 확인\"\n  ],\n  \"data_coverage\": {\n    \"company_news_count\": 0,\n    \"disclosures_count\": 0,\n    \"social_source\": \"news_derived\",\n    \"macro_items_count\": 4\n  }\n}",
  "started_at": "2026-04-15T00:29:50.199164+09:00",
  "finished_at": "2026-04-15T00:45:20.476623+09:00",
  "duration_seconds": 930.28,
  "metrics": {
    "llm_calls": 62,
    "tool_calls": 23,
    "tokens_in": 0,
    "tokens_out": 0,
    "tokens_available": false,
    "calls_by_model": {
      "gpt-5.4": 62
    }
  },
  "tool_telemetry": {
    "total_tool_calls": 23,
    "vendor_calls": {
      "yfinance": 15,
      "naver": 4,
      "ecos": 1,
      "opendart": 2,
      "alpha_vantage": 1
    },
    "fallback_count": 5,
    "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_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_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"
  }
}