{
  "ticker": "000660.KS",
  "ticker_name": "SK하이닉스",
  "status": "success",
  "trade_date": "2026-04-15",
  "analysis_date": "2026-04-16",
  "decision": "{\n  \"rating\": \"OVERWEIGHT\",\n  \"portfolio_stance\": \"BULLISH\",\n  \"entry_action\": \"WAIT\",\n  \"setup_quality\": \"DEVELOPING\",\n  \"confidence\": 0.69,\n  \"time_horizon\": \"medium\",\n  \"entry_logic\": \"000660.KS에 대한 중기 배분 관점은 여전히 우호적이다. 공격적 분석가가 지적한 것처럼 2026-04-15 기준 10 EMA 1019152, 50 SMA 940248, 200 SMA 570454가 모두 우상향이고, MACD가 2026-04-07 -10148에서 2026-04-15 39669로 급반전했으며 히스토그램도 -10022에서 22392로 확대되어 모멘텀 재가속이 확인된다. 또한 중립적 분석가가 강조한 매출 32.8조원, 영업이익 19.2조원, 영업이익률 58.4%, 영업활동현금흐름 20.9조원, 자유현금흐름 8.6조원, 순부채 13.3조원에서 7.3조원으로 감소한 점은 HBM과 메모리 사이클 개선이 실제 이익과 현금흐름으로 연결되고 있음을 뒷받침한다. 다만 보수적 분석가의 지적처럼 주가는 849000 저점권에서 1100000 부근까지 빠르게 회복했고 ATR 65562로 정상 변동폭이 크며, 1100000은 직전 고가권 저항이다. 따라서 오늘 즉시 추격 매수하지 않고 WAIT한다. 신규 진입은 1100000 위 종가 안착, 거래량 확장, 다음 거래일 재이탈 방어가 함께 확인될 때 소규모 초기 진입을 허용하거나, 더 선호되는 방식으로 1000000-1020000 눌림에서 10 EMA 부근 매수세가 확인될 때 시작한다. 기존 보유자는 중기 우위를 인정해 보유 및 조건부 비중확대 관점을 유지하되, 1100000 부근에서 공격적으로 추가하지 않는다.\",\n  \"exit_logic\": \"000660.KS가 10 EMA 1019152 부근을 종가로 이탈한 뒤 빠르게 회복하지 못하면 신규 매수를 중단하고 단기 경고로 본다. 1000000을 거래량 증가와 함께 하회하면 기존 노출 일부를 줄인다. 940000-950000의 50 SMA 940248 및 VWMA 947191 지지 구간을 지속적으로 이탈하면 중기 기술적 논리가 훼손된 것으로 보고 강한 감축 또는 퇴출한다. 실적 또는 IR에서 HBM 수요, 가격, 고마진 제품 믹스, DRAM·NAND 가격, CAPEX 대비 현금흐름 회수, 재고와 매출채권 관리가 기대에 못 미치면 상승 논리를 재평가하고 방어적으로 전환한다.\",\n  \"position_sizing\": \"신규 자금은 확인 전까지 투입하지 않는다. 1100000 위 안착과 거래량 확장이 확인되면 전체 목표 비중의 작은 일부만 초기 진입하고, 다음 거래일 지지 유지와 모멘텀 지속을 확인한 뒤 단계적으로 늘린다. 1000000-1020000 눌림에서 10 EMA 부근 매수세가 확인되는 경우가 더 우선되는 진입이며, 이때도 한 번에 크게 사지 않고 첫 진입은 작게 시작한다. 기존 중기 보유자는 OVERWEIGHT 관점을 유지할 수 있지만 1100000 저항 부근에서는 신규 추가보다 이익 보호와 재진입 여력 확보를 우선한다.\",\n  \"risk_limits\": \"000660.KS는 베타 1.751과 ATR 65562로 변동성이 높으므로 단일 진입 규모를 제한한다. 진입 후 정상 변동은 대략 1 ATR 범위까지 감안하되, 1000000 부근에서 매수세가 확인되지 않으면 빠르게 노출을 재평가한다. 10 EMA 이탈 후 회복 실패는 경고, 1000000 하회와 거래량 증가는 부분 감축, 940000-950000 이탈은 중기 지지 훼손으로 강한 감축 또는 퇴출 기준이다. CAPEX -12.2조원, 매출채권 18.2조원, 재고 14.3조원 증가처럼 현금흐름 민감도를 높이는 항목은 실적 검증 전까지 포지션 확대를 제한하는 요인으로 반영한다.\",\n  \"catalysts\": [\n    \"HBM 수요와 AI 서버 메모리 주문이 시장 기대보다 강하게 유지되는 경우\",\n    \"DRAM 및 NAND 가격 상승이 다음 보고 기간까지 이어지는 경우\",\n    \"향후 IR 또는 실적 코멘트에서 고마진 제품 믹스, HBM 수요 가시성, 가격 결정력이 확인되는 경우\",\n    \"SK hynix 고유 가이던스와 삼성전자 메모리 사이클 읽기를 바탕으로 추가 이익 추정치 상향이 나오는 경우\",\n    \"KRX 대형 반도체로 자금 유입이 지속되고 글로벌 기술주 위험선호가 유지되는 경우\",\n    \"1100000 위 종가 안착, 거래량 확장, 다음 거래일 지지 방어가 동시에 나타나는 경우\"\n  ],\n  \"invalidators\": [\n    \"000660.KS가 1100000 부근에서 재차 거절된 뒤 1000000을 지키지 못하는 경우\",\n    \"940000-950000의 50 SMA 및 VWMA 지지 구간을 지속적으로 이탈하는 경우\",\n    \"HBM 출하, 가격, 마진 코멘트가 높아진 기대에 미달하는 경우\",\n    \"CAPEX 확대가 충분한 수요 가시성 없이 자유현금흐름을 압박하는 경우\",\n    \"재고, 매출채권, 비경상 항목이 악화되어 이익의 질을 훼손하는 경우\",\n    \"미국 ITC, 수출통제, 지정학 리스크가 매출 또는 밸류에이션에 실질적 부담으로 확대되는 경우\",\n    \"RSI가 70에 접근하거나 초과하는 동시에 MACD 히스토그램이 둔화되어 상승 탄력이 약해지는 경우\"\n  ],\n  \"watchlist_triggers\": [\n    \"1100000 위 종가 안착과 거래량 확장, 다음 거래일 재이탈 방어가 확인되면 소규모 초기 진입 검토\",\n    \"1000000-1020000 눌림에서 10 EMA 부근 매수세와 장중 수요 개선이 확인되면 선호 진입 검토\",\n    \"10 EMA 1019152 부근 종가 이탈 후 회복 실패 시 신규 매수 중단\",\n    \"1000000 하회와 거래량 확대 시 기존 노출 일부 감축 검토\",\n    \"940000-950000 지지 구간 테스트 시 중기 thesis 유지 여부와 강한 감축 여부 결정\",\n    \"다음 실적 또는 IR에서 HBM 믹스, 메모리 가격, CAPEX, 재고, 매출채권, 자유현금흐름 확인\",\n    \"RSI 70 근접 또는 초과와 MACD 히스토그램 둔화가 동시에 나타나면 차익 보호 검토\"\n  ],\n  \"data_coverage\": {\n    \"company_news_count\": 4,\n    \"disclosures_count\": 3,\n    \"social_source\": \"news_derived\",\n    \"macro_items_count\": 1\n  }\n}",
  "started_at": "2026-04-16T09:16:53.939988+09:00",
  "finished_at": "2026-04-16T09:29:15.437534+09:00",
  "duration_seconds": 741.5,
  "metrics": {
    "llm_calls": 59,
    "tool_calls": 22,
    "tokens_in": 0,
    "tokens_out": 0,
    "tokens_available": false,
    "calls_by_model": {
      "gpt-5.4": 59
    }
  },
  "tool_telemetry": {
    "total_tool_calls": 22,
    "vendor_calls": {
      "yfinance": 15,
      "naver": 3,
      "ecos": 1,
      "opendart": 1,
      "alpha_vantage": 2
    },
    "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": "success",
        "fallback": false,
        "note": null
      },
      {
        "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_cashflow",
        "vendor": "yfinance",
        "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_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"
  }
}