{
  "ticker": "AAPL",
  "ticker_name": "Apple",
  "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\": \"AAPL은 중기 배분 관점에서 비중확대가 가능한 강한 종목이나, 오늘 즉시 추격 매수할 만큼 진입 타이밍이 완성되지는 않았다. 공격적 분석가는 2025-12-31 분기 매출 143.756B, 순이익 42.097B, 영업이익률 약 35.4%, 자유현금흐름 51.552B, 24.701B 자사주 매입을 근거로 품질과 주주환원력이 충분하다고 보았다. 또한 가격이 10일 지수이동평균 259.88, 50일 단순이동평균 260.67, 200일 단순이동평균 251.51 위로 회복했고, MACD가 2026-03-30의 -3.85에서 2026-04-16의 1.28로 개선된 점은 상승 전환의 근거다. 다만 보수적 및 중립 분석가가 지적한 것처럼 후행 주가수익비율 약 33.3, 선행 주가수익비율 약 28.3, PEG 약 2.37은 실망에 취약하고, 270-275 저항대가 가까우며 ATR 5.90은 단기 변동성이 높다는 뜻이다. 따라서 신규 자금은 대기하되, 260-261 지지권으로 통제된 되돌림이 나오고 매도 압력이 약해지거나, 266.56 위 종가 돌파가 거래량 확대로 확인될 때만 시범 물량 진입을 허용한다.\",\n  \"exit_logic\": \"AAPL이 256.48 부근 거래량가중이동평균을 확대 거래량과 함께 이탈하면 수요 약화로 보고 노출을 줄인다. 251.51-251.83의 200일 단순이동평균 구간을 결정적으로 종가 이탈하면 회복 논리가 훼손된 것으로 보고 실질적으로 청산하거나 대폭 축소한다. 실적 발표 후 중국 회복이 매출, 평균판매가격, 마진으로 연결되지 않거나 서비스 성장, 매출총이익률, AI 기기 수요, 자사주 매입 지속성이 기대에 못 미치면 투자 논리를 재평가한다.\",\n  \"position_sizing\": \"현재 결정은 전면 매수가 아니라 단계적 비중확대 대기다. 260-261 지지 확인 또는 266.56 상향 돌파 확인 시에만 시범 물량으로 시작하고, ATR 5.90 수준의 변동성을 감안해 초기 크기는 목표 비중보다 작게 둔다. 270-275 방향의 후속 상승이 나오더라도 거래량과 모멘텀이 유지되고 256.48 거래량가중이동평균이 보존될 때만 추가한다. 실적, 규제, 중국, 노동, 지정학, 제품 주기 관련 대형 뉴스 전에는 전체 비중을 목표치보다 낮게 유지한다.\",\n  \"risk_limits\": \"진입 후 일반 변동성에 흔들리지 않도록 최소 1 ATR 수준의 가격 여유는 허용하되, 200일 단순이동평균의 결정적 붕괴는 허용하지 않는다. 고평가 구간에서 금리, 인플레이션, 에너지 가격, 지정학 충격 또는 좁은 대형 기술주 랠리 되돌림이 발생하면 유동성이 높은 AAPL도 자금 조달원으로 매도될 수 있음을 반영해 과대 포지션을 피한다. 동일일 장중 거래량 확인이 없었으므로 실제 주문 전에는 유동성, 거래량 확장, 돌파 또는 지지 확인을 다시 점검한다.\",\n  \"catalysts\": [\n    \"중국 iPhone 출하량이 20% 증가한 반면 중국 스마트폰 시장은 4% 감소했다는 보도는 약했던 중국 우려가 완화될 수 있음을 보여준다.\",\n    \"다음 실적에서 중국 회복이 단순 출하량이 아니라 매출, 평균판매가격, 마진으로 확인되면 재평가 가능성이 커진다.\",\n    \"서비스 매출 성장과 생태계 수익화가 프리미엄 마진을 계속 지지하면 높은 밸류에이션 방어력이 강화된다.\",\n    \"AAPL이 266.56 위에서 거래량을 동반해 종가 마감하면 270-275 기술적 목표 구간이 열린다.\",\n    \"AI 관련 기기 교체 수요, Mac 강세, 온디바이스 AI 기대가 개선되면 성장 서사가 보강된다.\",\n    \"51.552B 자유현금흐름과 24.701B 자사주 매입 같은 현금창출 및 주주환원은 주당순이익과 하방 완충을 지지한다.\"\n  ],\n  \"invalidators\": [\n    \"AAPL이 반등 후 260-261의 이전 저항 및 현재 지지 구간을 지키지 못한다.\",\n    \"AAPL이 256.48 거래량가중이동평균을 확대 거래량과 함께 이탈해 매수 수요 약화를 보인다.\",\n    \"AAPL이 251.51-251.83의 200일 단순이동평균 구간을 결정적으로 종가 이탈한다.\",\n    \"중국 출하량 회복이 매출, 평균판매가격, 마진 개선으로 이어지지 않는다.\",\n    \"서비스 마진이 규제 압력이나 가이던스 약화로 훼손된다.\",\n    \"노동 또는 매장 폐쇄 논란이 법적, 규제, 브랜드 리스크로 확대된다.\",\n    \"후행 주가수익비율 약 33.3, 선행 주가수익비율 약 28.3, PEG 약 2.37의 고평가가 금리, 인플레이션, 좁은 기술주 랠리 반전에 취약해진다.\"\n  ],\n  \"watchlist_triggers\": [\n    \"AAPL이 260-261로 되돌린 뒤 안정되고 매도 압력이 둔화되는지 확인한다.\",\n    \"AAPL이 266.56 위에서 거래량 확장과 함께 종가 마감하고 MACD 히스토그램이 양수를 유지하는지 확인한다.\",\n    \"가격이 10일 지수이동평균 259.88 위를 유지하면서 RSI가 과열권으로 치우치지 않는지 확인한다.\",\n    \"변동성 되돌림에서 256.48 부근 거래량가중이동평균이 지지되는지 확인한다.\",\n    \"다음 실적 설명에서 중국 수요, 서비스 성장, 매출총이익률, AI 기기 교체 주기가 확인되는지 점검한다.\",\n    \"내부자 매도, 자사주 매입 속도, 규제 또는 서비스 압력과 관련한 신규 공시나 확인된 보도가 나오는지 감시한다.\"\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-17T21:04:40.596247+09:00",
  "finished_at": "2026-04-17T21:19:32.103198+09:00",
  "duration_seconds": 891.51,
  "metrics": {
    "llm_calls": 66,
    "tool_calls": 18,
    "tokens_in": 0,
    "tokens_out": 0,
    "tokens_available": false,
    "calls_by_model": {
      "gpt-5.4": 66
    }
  },
  "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_cashflow",
        "vendor": "yfinance",
        "status": "success",
        "fallback": false,
        "note": null
      },
      {
        "method": "get_insider_transactions",
        "vendor": "yfinance",
        "status": "success",
        "fallback": false,
        "note": null
      },
      {
        "method": "get_balance_sheet",
        "vendor": "yfinance",
        "status": "success",
        "fallback": false,
        "note": null
      },
      {
        "method": "get_income_statement",
        "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": "AAPL",
      "attempted": true,
      "success": true,
      "checkpoint": "selective_rerun",
      "interval": "5m",
      "attempted_at": "2026-04-17T22:24:05.210566+09:00",
      "provider": "yfinance_intraday",
      "market_data_asof": "2026-04-16T15:55:00-04:00"
    },
    {
      "ticker": "AAPL",
      "attempted": true,
      "success": true,
      "checkpoint": "05:05",
      "interval": "5m",
      "attempted_at": "2026-04-18T05:59:52.718851+09:00",
      "provider": "yfinance_intraday",
      "market_data_asof": "2026-04-17T15:55:00-04:00"
    }
  ],
  "latest_intraday_snapshot_attempt": {
    "ticker": "AAPL",
    "attempted": true,
    "success": true,
    "checkpoint": "05:05",
    "interval": "5m",
    "attempted_at": "2026-04-18T05:59:52.718851+09:00",
    "provider": "yfinance_intraday",
    "market_data_asof": "2026-04-17T15:55:00-04:00"
  },
  "intraday_snapshot_latest_attempt": {
    "ticker": "AAPL",
    "attempted": true,
    "success": true,
    "checkpoint": "05:05",
    "interval": "5m",
    "attempted_at": "2026-04-18T05:59:52.718851+09:00",
    "provider": "yfinance_intraday",
    "market_data_asof": "2026-04-17T15:55:00-04:00"
  }
}