{
  "ticker": "MU",
  "ticker_name": "Micron Technology",
  "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.66,\n  \"time_horizon\": \"medium\",\n  \"entry_logic\": \"MU의 방향성은 우호적이다. 공격적 분석가가 지적한 것처럼 가격은 50일선 402.63, 10일 EMA 399.22, VWMA 372.47 위에 있고, MACD는 5.70, 히스토그램은 8.14로 개선됐으며 RSI 63.29는 아직 70 과열권을 넘지 않았다. 펀더멘털도 매출 136.43억 달러에서 238.60억 달러, 희석 EPS 4.60에서 12.07, 영업현금흐름 119.03억 달러, 잉여현금흐름 55.16억 달러로 강하다. 다만 보수적·중립적 분석가가 강조한 대로 2026-03-18 종가 461.54에서 2026-03-30 종가 321.80까지 약 30% 하락한 뒤 426.56까지 반등한 고변동성 구간이며, ATR 약 25.5와 베타 1.606은 추격 매수의 손실 폭을 키울 수 있다. 따라서 방향성은 BULLISH로 유지하되 오늘 즉시 진입하지 않고, 402-408 지지 재확인 또는 461.54 거래량 돌파 확인을 기다린다.\",\n  \"exit_logic\": \"이미 보유 중이면 402-408 위에서 종가 기준 지지가 유지되고 MACD 히스토그램이 급격히 둔화되지 않는 한 축소된 핵심 물량만 유지한다. 402 아래 종가 이탈이 거래량 확대나 MACD 히스토그램 롤오버와 동반되면 materially 축소하거나 청산한다. 444-461 저항권에서 RSI가 70에 접근하거나 돌파 거래량이 부족하고 MACD 히스토그램이 약해지면 일부 차익실현한다. 372-378 VWMA·반등 기반 구간으로 밀리면 신규 매수 논리는 중단한다.\",\n  \"position_sizing\": \"오늘 신규 풀 포지션은 열지 않는다. 402-408 지지 재확인 시 종가 지지, 안정적 거래량, MACD 히스토그램 유지가 확인되면 정상 비중의 20-30% starter를 허용한다. 461.54 돌파 진입은 추격 리스크가 더 크므로 평균 이상 거래량, RSI가 70을 크게 넘지 않음, 다음 세션 실패 돌파 부재가 확인될 때 20-25%로 제한한다. 추가 매수는 461.54 위 안착 또는 다음 분기 매출채권 회수와 현금 전환 확인 후에만 검토한다. 402 아래에서는 평균단가 낮추기를 금지한다.\",\n  \"risk_limits\": \"402-408을 핵심 전술 위험선으로 둔다. ATR 약 25.5를 감안해 손절은 너무 촘촘하게 두지 않되, 포트폴리오 기준 손실 한도는 작고 사전에 고정한다. 402 종가 이탈과 거래량 확대가 함께 나오면 리스크를 줄이고, 372-378 구간으로 하락하면 반등 품질 훼손으로 본다. 실적 발표, 주요 메모리 가격 업데이트, 반도체 전반 위험회피 장세, 금리·지정학 충격 전에는 비중 확대를 피한다. 매출채권이 80.09억 달러에서 153.89억 달러로 증가했고 운전자본 변화가 -41.38억 달러 부담이라는 점을 현금흐름 품질 위험으로 계속 점검한다.\",\n  \"catalysts\": [\n    \"HBM 공급 매진 또는 AI 서버 메모리 수요 추가 확인\",\n    \"DRAM과 NAND 가격 상승이 수요 파괴 없이 지속\",\n    \"다음 분기 가이던스에서 높은 마진, 강한 EPS, 현금 전환 확인\",\n    \"매출채권 증가가 영업현금흐름으로 회수되는 증거\",\n    \"461.50-461.54 직전 고점권을 평균 이상 거래량으로 회복하고 안착\",\n    \"Nasdaq과 반도체 위험선호 회복, 금리 부담 완화, 지정학 스트레스 완화\"\n  ],\n  \"invalidators\": [\n    \"402-408 지지대 종가 이탈과 거래량 확대\",\n    \"444-461 저항권에서 실패하고 MACD 히스토그램 롤오버\",\n    \"HBM 수요, AI 인프라 투자, 메모리 가격 모멘텀 둔화\",\n    \"매출채권 회수 지연 또는 다음 분기 현금 전환 약화\",\n    \"YMTC 또는 broader 공급 증가로 NAND·범용 DRAM 가격 압박\",\n    \"최근 내부자 매도 이후 추가 대규모 매도 또는 애널리스트 추정치 하향\",\n    \"인플레이션, 금리, 지정학 충격으로 고베타 반도체주 위험회피 확대\"\n  ],\n  \"watchlist_triggers\": [\n    \"STARTER: MU가 402-408로 되돌림 후 종가 기준 지지를 확인하고 거래량이 안정되며 MACD 히스토그램이 양호할 때 정상 비중의 20-30% 진입 가능\",\n    \"BREAKOUT STARTER: MU가 461.54 위로 평균 이상 거래량을 동반해 종가 돌파하고 RSI가 70을 크게 넘지 않으며 다음 세션 실패 돌파가 없을 때 20-25% 진입 가능\",\n    \"NO ENTRY: MU가 444-461 저항권 아래에서 정체되고 RSI가 70에 접근하며 MACD 히스토그램이 둔화될 때\",\n    \"RISK REDUCTION: MU가 402 아래로 종가 이탈하거나 372-378 VWMA 구간으로 밀릴 때\",\n    \"FUNDAMENTAL CHECK: 다음 보고서에서 매출채권 회수, HBM 수요, DRAM/NAND 가격, CAPEX 부담, 마진 지속성을 확인할 때\"\n  ],\n  \"data_coverage\": {\n    \"company_news_count\": 2,\n    \"disclosures_count\": 0,\n    \"social_source\": \"news_derived\",\n    \"macro_items_count\": 3\n  }\n}",
  "started_at": "2026-04-15T02:06:59.871926+09:00",
  "finished_at": "2026-04-15T02:19:46.083405+09:00",
  "duration_seconds": 766.21,
  "metrics": {
    "llm_calls": 63,
    "tool_calls": 21,
    "tokens_in": 0,
    "tokens_out": 0,
    "tokens_available": false,
    "calls_by_model": {
      "gpt-5.4": 63
    }
  },
  "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_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
      }
    ]
  },
  "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"
  }
}