{
  "ticker": "LHX",
  "ticker_name": "L3Harris Technologies",
  "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\": \"LHX에 대한 중기 방향성은 긍정적이다. 공격적 분석가는 $1.27 billion 규모 Virginia solid rocket motor 투자, 보고된 $1 billion 정부 지원, Aerojet Rocketdyne 통합, missile replenishment와 hypersonics 수요를 근거로 재평가 가능성을 강조했고, 중립 분석가도 촉매 묶음이 단순한 방산 낙관론보다 구체적이라고 평가했다. 다만 보수적 분석가가 지적한 대로 가격은 353-365 박스권 안에 있으며 355.92 부근에서 10일 EMA 355.26, 50일 SMA 354.64와 거의 겹쳐 있고 RSI 49.14, MACD 0.31은 강한 추세 확인으로 보기 어렵다. 따라서 오늘 즉시 공격적으로 진입하지 않고 WAIT를 유지한다. 신규 자금은 353-355 지지 확인 후 358-362를 회복하고 거래량이 개선될 때 소규모 starter가 정당화될 수 있으며, 365 위 일간 종가와 20일 평균 이상 거래량이 동반될 때 추가 진입을 검토한다. 365 돌파만으로 전량 진입하지 않고, 돌파 후 후속 흐름이나 358-365 재시험 성공을 확인해야 한다.\",\n  \"exit_logic\": \"353 아래 일간 종가는 근접한 VWMA 352.97 및 50일 SMA 354.64 부근 지지 실패 신호로 보며 신규 매수를 중단하고 전술 노출을 줄인다. 353 이탈 후 50일선 회복에 실패하면 보수적 분석가가 지적한 박스권 하방 위험이 커지므로 감축을 우선한다. 340 아래 일간 종가는 2026-03-30 저점 337.02와 하단 박스권 붕괴에 가까운 regime-change 신호로 보고 전술 포지션을 대부분 축소하거나 청산한다. 다음 실적에서 6.66% 수준의 최근 분기 영업마진 약화가 지속되거나, $1.804 billion 자유현금흐름이 주로 $1.201 billion 운전자본 효과였다는 우려가 현실화되면 OVERWEIGHT 논리를 재평가한다.\",\n  \"position_sizing\": \"기존 보유자는 핵심 노출을 유지하되 353-365 박스권 안에서는 공격적 추가 매수를 피한다. 신규 포지션은 조건 충족 전에는 대기하고, 353-355 지지 확인 및 358-362 회복 시 의도한 배분의 1/3 이하로 starter를 허용한다. 365 위 거래량 동반 종가 확인 시 1/3-1/2 수준까지 확대할 수 있으나, 의미 있는 추가 확대는 돌파 구간 재시험 성공이나 실적에서 마진 회복 및 반복 가능한 자유현금흐름 확인 후로 제한한다. 내부자 매도, 높은 trailing P/E 약 41 및 forward P/E 약 26, 평균 변동폭 8.79를 감안해 초기 크기는 보수적으로 둔다.\",\n  \"risk_limits\": \"위험 관리는 평균 변동폭 8.79를 기준으로 한다. 진입 후 전술 손실 관리는 349 아래에서 엄격히 적용하고, 340-345 지지 실패는 중기 논리 훼손 구간으로 본다. 365 근처는 Bollinger 상단 365.34와 겹치는 저항 구간이므로 돌파 매수는 거래량과 후속 확인 없이는 확대하지 않는다. 실적 발표, 방위예산 헤드라인, 대형 프로그램 또는 자금지원 뉴스 전에는 과대 포지션을 피한다. 2026-03-02 고점 377.91에서 2026-03-30 저점 337.02까지 급락한 이력이 있어 이벤트 변동성을 핵심 위험으로 반영한다.\",\n  \"catalysts\": [\n    \"Virginia solid rocket motor capacity expansion과 연결된 $1.27 billion 투자 및 보고된 $1 billion 미국 정부 지원 약속.\",\n    \"Aerojet Rocketdyne 통합을 통한 missile propulsion 병목 완화와 방산 공급망 내 전략적 가치 상승.\",\n    \"U.S. Army binocular night observation device 프로그램의 최대 $465 million, 7년 잠재 가치.\",\n    \"missile replenishment, hypersonics, space tracking, electronic warfare, defense budget 관련 뉴스 흐름.\",\n    \"최근 약화된 6.66% 영업마진의 정상화, 반복 가능한 자유현금흐름, 순부채 감소, 배당 및 자사주 매입 지속.\",\n    \"MACD가 0 위에 머무르고 353-355 지지가 유지되는 가운데 365 위 거래량 동반 돌파가 발생하는 기술적 확인.\"\n  ],\n  \"invalidators\": [\n    \"340 아래 일간 종가로 하단 박스권 및 Bollinger 지지 구간이 붕괴되는 경우.\",\n    \"353-355 지지 이탈 후 VWMA 352.97 및 50일 SMA 354.64 부근을 빠르게 회복하지 못하는 경우.\",\n    \"다음 실적에서 6.66% 수준의 영업마진 부진이 지속되고 비용 정상화 신뢰도가 낮아지는 경우.\",\n    \"2025-12-31 분기의 $1.804 billion 자유현금흐름이 반복 가능하지 않고 주로 $1.201 billion 운전자본 효과였다는 점이 확인되는 경우.\",\n    \"Virginia rocket motor 증설에서 비용 초과, 일정 지연, 마진 희석 또는 정부 예산 의존 위험이 커지는 경우.\",\n    \"고점 부근 내부자 매도가 계속되는데 실적 개선이나 기관 매집 신호가 이를 상쇄하지 못하는 경우.\"\n  ],\n  \"watchlist_triggers\": [\n    \"365 위 일간 종가와 20일 평균 이상 거래량으로 박스권 돌파가 확인되는 경우.\",\n    \"358-362 회복과 거래량 개선, MACD 0 상회가 동시에 나타나는 경우.\",\n    \"353-355 지지 재시험 성공 및 VWMA 352.97, 50일 SMA 354.64 위 유지.\",\n    \"353 아래 종가 발생 시 근접 지지 실패 경고로 신규 매수 중단 및 전술 리스크 점검.\",\n    \"340 아래 종가 발생 시 regime-change 신호로 방어적 감축 또는 청산 검토.\",\n    \"다음 실적에서 영업마진이 최근 약 6.66% 수준에서 회복되고 자유현금흐름이 반복 가능하다는 증거가 나오는 경우.\",\n    \"365 돌파 후 358-365 구간 재시험을 성공적으로 버티는 경우 추가 배분 검토.\"\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-17T00:09:21.504379+09:00",
  "finished_at": "2026-04-17T00:24:23.523014+09:00",
  "duration_seconds": 902.02,
  "metrics": {
    "llm_calls": 67,
    "tool_calls": 18,
    "tokens_in": 0,
    "tokens_out": 0,
    "tokens_available": false,
    "calls_by_model": {
      "gpt-5.4": 67
    }
  },
  "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_social_sentiment",
        "vendor": "yfinance",
        "status": "fallback",
        "fallback": true,
        "note": "yfinance: empty or unusable result"
      },
      {
        "method": "get_company_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_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": "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": "LHX",
      "attempted": true,
      "success": true,
      "checkpoint": "01:35",
      "interval": "5m",
      "attempted_at": "2026-04-17T02:51:32.351439+09:00",
      "provider": "yfinance_intraday",
      "market_data_asof": "2026-04-16T13:50:00-04:00"
    },
    {
      "ticker": "LHX",
      "attempted": true,
      "success": true,
      "checkpoint": "selective_rerun",
      "interval": "5m",
      "attempted_at": "2026-04-17T03:58:55.835298+09:00",
      "provider": "yfinance_intraday",
      "market_data_asof": "2026-04-16T14:55:00-04:00"
    },
    {
      "ticker": "LHX",
      "attempted": true,
      "success": true,
      "checkpoint": "03:35",
      "interval": "5m",
      "attempted_at": "2026-04-17T04:08:55.957147+09:00",
      "provider": "yfinance_intraday",
      "market_data_asof": "2026-04-16T15:05:00-04:00"
    }
  ],
  "latest_intraday_snapshot_attempt": {
    "ticker": "LHX",
    "attempted": true,
    "success": true,
    "checkpoint": "03:35",
    "interval": "5m",
    "attempted_at": "2026-04-17T04:08:55.957147+09:00",
    "provider": "yfinance_intraday",
    "market_data_asof": "2026-04-16T15:05:00-04:00"
  },
  "intraday_snapshot_latest_attempt": {
    "ticker": "LHX",
    "attempted": true,
    "success": true,
    "checkpoint": "03:35",
    "interval": "5m",
    "attempted_at": "2026-04-17T04:08:55.957147+09:00",
    "provider": "yfinance_intraday",
    "market_data_asof": "2026-04-16T15:05:00-04:00"
  }
}