{
  "ticker": "000660.KS",
  "ticker_name": "SK하이닉스",
  "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.76,\n  \"time_horizon\": \"medium\",\n  \"entry_logic\": \"000660.KS에 대한 중기 배분 관점은 OVERWEIGHT로 유지한다. 공격적 분석가와 중립 분석가가 지적한 대로 AI, HBM, DRAM/NAND 가격 강세, 글로벌 반도체 수요가 동시에 작동하고 있으며, 2025-12-31 분기 매출 32.8조원, 영업이익 19.2조원, 영업이익률 약 58.4%, 영업현금흐름 20.9조원, 자유현금흐름 8.6조원, 순차입금 감소는 투자 가능한 강세 논리를 뒷받침한다. 다만 보수적 분석가의 경고처럼 2026-03-31 807000에서 2026-04-15 1136000까지 약 40.8% 급반등했고, 2026-04-16 1155000 신고가와 볼린저 상단 1161987 부근에 근접해 있어 오늘 즉시 추격 매수는 손익비가 불완전하다. 따라서 방향성은 BULLISH이나 즉시 실행은 WAIT이다. 신규 진입은 1162000 위 종가 안착과 거래량 확대가 확인될 때 소규모 STARTER를 고려하거나, 1040000-1050000 부근 10일 EMA 지지와 거래량 안정이 확인될 때 분할 진입을 고려한다.\",\n  \"exit_logic\": \"기존 보유자는 중기 OVERWEIGHT를 유지하되, 1162000 돌파 실패 후 1100000 아래로 종가가 내려가고 거래량 약화나 외국인 매도가 동반되면 추가 매수를 중단하고 일부 축소를 검토한다. 1030000-1040000 지지대 붕괴 또는 10일 EMA의 지속 이탈은 전술 노출 축소 신호로 본다. HBM 출하 가이던스, DRAM/NAND 가격, 고객 주문, capex, 재고, 매출채권, 자유현금흐름이 현재의 높은 기대를 뒷받침하지 못하면 중기 OVERWEIGHT 자체를 재평가한다.\",\n  \"position_sizing\": \"기존 보유분은 유지 가능하지만 현재 가격대에서 full-size 추가 매수는 보류한다. 1162000 위 거래량 동반 안착은 신규 투자자에게 소규모 STARTER, 기존 보유자에게 제한적 ADD만 정당화한다. 1040000-1050000 눌림에서 지지가 확인되면 돌파 매수보다 더 나은 손익비의 단계적 진입을 허용한다. 베타 1.751과 ATR 63093이 정상 변동만으로도 중간 한 자릿수 손익 변동을 만들 수 있으므로 초기 비중은 평소보다 낮게 잡고, 실적 확인 전 과도한 집중은 피한다.\",\n  \"risk_limits\": \"단일 종목 리스크는 반도체 사이클, 외국인 수급 민감도, AI/HBM 서사 집중도를 감안해 제한한다. 손절은 너무 타이트한 가격 기준보다 약 1 ATR의 정상 노이즈를 허용하는 변동성 조정 방식으로 둔다. 1100000 아래 종가와 약한 거래량 또는 외국인 매도 동반은 방어적 관리 신호이고, 1030000 하향 이탈, DRAM/NAND 가격 둔화, HBM 고객 수요 부진, capex와 운전자본 증가로 인한 자유현금흐름 압박은 리스크 한도 위반으로 본다. 갭 하락과 업종 동반 조정에서는 1 ATR 손절이 이상적으로 작동하지 않을 수 있으므로 비중 관리가 1차 방어선이다.\",\n  \"catalysts\": [\n    \"000660.KS 실적과 가이던스가 HBM 출하 성장과 AI 서버 수요 지속성을 확인하는 경우\",\n    \"DRAM과 NAND 가격 강세가 유지되어 높은 마진의 지속 가능성을 뒷받침하는 경우\",\n    \"1162000 위 종가 안착과 거래량 확대가 동반되어 신고가 이후 가격 수용이 확인되는 경우\",\n    \"TSMC, Micron 등 글로벌 AI 반도체와 메모리 동종 기업의 긍정적 실적이 000660.KS 수요 전망을 강화하는 경우\",\n    \"높은 HBM 및 선단 공정 capex에도 자유현금흐름과 순차입금 개선이 이어지는 경우\"\n  ],\n  \"invalidators\": [\n    \"HBM 수요, 가격, 고객 주문, 출하 가이던스가 높아진 기대에 미달하는 경우\",\n    \"DRAM/NAND 공급 확대가 가격과 마진 전망을 압박하기 시작하는 경우\",\n    \"capex, 재고, 매출채권 증가가 자유현금흐름 방어력을 훼손하는 경우\",\n    \"ITC, 특허, 수출통제, 패키징 병목, 지정학 리스크가 출하 또는 투자심리를 흔드는 경우\",\n    \"외국인 매도 전환이 000660.KS와 KOSPI 반도체 주도력에 부정적 피드백을 만드는 경우\"\n  ],\n  \"watchlist_triggers\": [\n    \"1162000 위 종가와 거래량 확대: 신규 투자자는 소규모 STARTER, 기존 보유자는 제한적 ADD 검토\",\n    \"1162000 돌파 후 1130000-1162000 구간 지지 확인: 돌파 신뢰도 상향\",\n    \"1040000-1050000 눌림에서 10일 EMA 지지와 거래량 안정 확인: 단계적 진입 검토\",\n    \"1100000 아래 종가와 거래량 약화 또는 외국인 매도 동반: 신규 진입 보류 및 기존 OVERWEIGHT 일부 축소 검토\",\n    \"1030000-1040000 붕괴 또는 10일 EMA 지속 이탈: 전술 노출 축소\",\n    \"RSI가 70을 넘고 가격이 볼린저 상단 위로 더 확장되는 경우: 추격 매수 금지 및 기존 포지션 관리 강화\",\n    \"다음 실적 발표에서 HBM 가이던스, DRAM/NAND 가격, capex, 재고, 매출채권, 자유현금흐름을 강세 기대와 비교\"\n  ],\n  \"data_coverage\": {\n    \"company_news_count\": 4,\n    \"disclosures_count\": 0,\n    \"social_source\": \"news_derived\",\n    \"macro_items_count\": 0\n  }\n}",
  "started_at": "2026-04-17T07:43:26.983044+09:00",
  "finished_at": "2026-04-17T07:55:39.497369+09:00",
  "duration_seconds": 732.51,
  "metrics": {
    "llm_calls": 57,
    "tool_calls": 22,
    "tokens_in": 0,
    "tokens_out": 0,
    "tokens_available": false,
    "calls_by_model": {
      "gpt-5.4": 57
    }
  },
  "tool_telemetry": {
    "total_tool_calls": 22,
    "vendor_calls": {
      "yfinance": 15,
      "naver": 3,
      "ecos": 1,
      "opendart": 1,
      "alpha_vantage": 2
    },
    "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_macro_news",
        "vendor": "alpha_vantage",
        "status": "success",
        "fallback": false,
        "note": null
      },
      {
        "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_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": "fallback",
        "fallback": true,
        "note": "yfinance: empty or unusable result"
      },
      {
        "method": "get_fundamentals",
        "vendor": "yfinance",
        "status": "success",
        "fallback": false,
        "note": null
      },
      {
        "method": "get_insider_transactions",
        "vendor": "alpha_vantage",
        "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": "000660.KS",
      "attempted": true,
      "success": true,
      "checkpoint": "10:05",
      "interval": "5m",
      "attempted_at": "2026-04-17T10:39:41.882991+09:00",
      "provider": "yfinance_intraday",
      "market_data_asof": "2026-04-17T10:15:00+09:00"
    },
    {
      "ticker": "000660.KS",
      "attempted": true,
      "success": true,
      "checkpoint": "selective_rerun",
      "interval": "5m",
      "attempted_at": "2026-04-17T10:55:39.063138+09:00",
      "provider": "yfinance_intraday",
      "market_data_asof": "2026-04-17T10:35:00+09:00"
    }
  ],
  "latest_intraday_snapshot_attempt": {
    "ticker": "000660.KS",
    "attempted": true,
    "success": true,
    "checkpoint": "selective_rerun",
    "interval": "5m",
    "attempted_at": "2026-04-17T10:55:39.063138+09:00",
    "provider": "yfinance_intraday",
    "market_data_asof": "2026-04-17T10:35:00+09:00"
  },
  "intraday_snapshot_latest_attempt": {
    "ticker": "000660.KS",
    "attempted": true,
    "success": true,
    "checkpoint": "selective_rerun",
    "interval": "5m",
    "attempted_at": "2026-04-17T10:55:39.063138+09:00",
    "provider": "yfinance_intraday",
    "market_data_asof": "2026-04-17T10:35:00+09:00"
  }
}