{
  "ticker": "TSLA",
  "ticker_name": "Tesla",
  "status": "success",
  "trade_date": "2026-04-14",
  "analysis_date": "2026-04-15",
  "decision": "{\n  \"rating\": \"NO_TRADE\",\n  \"portfolio_stance\": \"NEUTRAL\",\n  \"entry_action\": \"WAIT\",\n  \"setup_quality\": \"DEVELOPING\",\n  \"confidence\": 0.64,\n  \"time_horizon\": \"short\",\n  \"entry_logic\": \"TSLA는 현재 즉시 진입보다 조건부 대기가 적절하다. 2026-04-13 종가 352.42는 10일 EMA 357.59와 VWMA 360.39 아래에 있어 가격 확인이 아직 부족하고, 50일선 391.71 및 200일선 397.67 아래에 머물러 중기 하락 추세도 완전히 해소되지 않았다. 다만 RSI가 31대에서 46.17까지 회복했고 MACD 히스토그램이 -2.25, -1.72, -0.96에서 0.48로 개선된 점은 반등 시도가 진행 중임을 보여준다. 따라서 방향성은 완전한 약세가 아니라 중립적 관찰이며, 360.39 위 일간 종가와 최근 반등일보다 강한 거래량, RSI 50 접근 또는 돌파가 확인되면 25~33% 리스크 예산의 파일럿 STARTER는 정당화될 수 있다. 371~381 구간을 소화하고 RSI가 50 위에서 유지될 때만 추가를 검토하며, 391.71~397.67 회복 전에는 정상 포지션으로 확대하지 않는다.\",\n  \"exit_logic\": \"조건부 파일럿 진입 후 357~360 회복에 실패하거나 회복 직후 다시 그 아래로 종가가 내려오면 반등 검증 가설을 철회한다. 371~381에서는 모멘텀이 둔화되면 일부 수익 실현 또는 손익분기 방어를 우선한다. 391.71~397.67의 50일선·200일선 구간은 강한 저항으로 보고, 이 구간에서 거래량 없이 정체되면 축소하거나 이익을 확정한다. 337 최근 저점 부근을 결정적 기술 무효화 구간으로 두며, 종가 기준 이탈 시 264 하방 시나리오가 열릴 수 있으므로 EXIT를 우선한다. EV 수요, 마진, 완성품 재고, 자유현금흐름, FSD 상용화 관련 악재가 확인될 때도 포지션을 줄인다.\",\n  \"position_sizing\": \"현 시점 포지션은 보유하지 않는다. 조건이 충족될 경우에도 TSLA의 ATR 14.33이 최근 종가 대비 약 4.1%로 높으므로 일반 TSLA 리스크 예산의 25~33% 파일럿만 허용한다. 이는 공격적 견해의 1/3~1/2보다 보수적이고, 보수적 견해의 사실상 전면 대기보다는 유연한 절충안이다. 371~381 가격 수용과 RSI 50 상단 유지가 확인되면 제한적 추가를 검토하고, 391.71~397.67 회복 및 거래량 확인 전에는 정상 크기로 키우지 않는다.\",\n  \"risk_limits\": \"레버리지는 사용하지 않는다. TSLA의 정상 변동성이 크기 때문에 너무 좁은 가격 손절보다 포트폴리오 기준 손실 한도를 우선 적용한다. 337 이탈은 핵심 무효화이며, 특히 큰 거래량을 동반하면 반등이 아니라 하락 추세 재개로 판단한다. 최근 하락일 거래량이 77,000,000~83,000,000주대로 반등일 51,000,000~53,000,000주대보다 무거웠다는 보수적 지적을 반영해, 거래량 없는 360 돌파는 추격하지 않는다. P/E 337, 선행 P/E 131, P/B 16.65, 매출 280.95억 달러에서 249.01억 달러로 감소, EPS 0.39에서 0.24로 둔화, 자유현금흐름 39.90억 달러에서 14.20억 달러로 감소한 점도 리스크 예산을 낮게 유지해야 하는 근거다.\",\n  \"catalysts\": [\n    \"TSLA가 360.39 VWMA와 357.59 10일 EMA 위로 종가 회복하고 최근 반등일보다 강한 거래량을 동반하면 단기 수급 전환 신호가 된다.\",\n    \"RSI가 50 위에서 유지되고 MACD 히스토그램 개선이 이어지면 과매도 반등에서 tradable recovery로 전환될 가능성이 커진다.\",\n    \"UBS가 sell에서 neutral로 상향한 것처럼 부정론 완화가 이어지면 sentiment reset이 연장될 수 있다.\",\n    \"네덜란드 FSD 사용 확대 같은 구체적 FSD 확산 또는 상업화 증거가 늘어나면 AI·소프트웨어 프리미엄이 다시 지지될 수 있다.\",\n    \"Nasdaq 강세, 인플레이션 둔화, 금리 인하 기대는 TSLA 같은 고베타 성장주 멀티플에 우호적이다.\",\n    \"현금 및 단기투자 440.59억 달러와 유동비율 2.164는 약한 실적 구간을 버틸 재무 완충력으로 작용한다.\"\n  ],\n  \"invalidators\": [\n    \"337 최근 저점 부근을 종가 기준 이탈하거나 큰 거래량을 동반해 깨질 경우 반등 가설은 폐기한다.\",\n    \"350 지지 실패 후 분배 거래일이 다시 늘어나면 360 회복 전술은 무효화된다.\",\n    \"다음 업데이트에서 인도량 약화, 완성품 재고 증가, 마진 압박, 자유현금흐름 악화가 확인되면 밸류에이션 부담이 재부각된다.\",\n    \"FSD 또는 robotaxi 일정이 추가로 지연되거나 상업화 근거가 약해지면 TSLA의 AI·소프트웨어 프리미엄이 약화된다.\",\n    \"반등일 거래량이 계속 51,000,000~53,000,000주대에 머물고 하락일 거래량이 77,000,000~83,000,000주대로 우세하면 매집보다 숏커버링성 반등으로 본다.\",\n    \"insider selling이 이어지고 이를 상쇄할 운영 개선 증거가 없으면 투자 심리 회복이 제한된다.\"\n  ],\n  \"watchlist_triggers\": [\n    \"TSLA 일간 종가가 360.39 위에 있고 거래량이 최근 반등일보다 뚜렷하게 증가하는지 확인한다.\",\n    \"RSI가 50을 돌파한 뒤 여러 세션 유지되는지 확인한다.\",\n    \"371~381 구간에서 가격 수용이 발생하는지, 이후 391.71~397.67 이동평균 저항을 거래량과 함께 시험하는지 관찰한다.\",\n    \"357~360 회복 직후 다시 그 아래로 종가가 내려오는 실패 신호를 감시한다.\",\n    \"337 이탈 또는 down-day volume 급증은 EXIT 또는 관망 강화 신호로 처리한다.\",\n    \"다음 delivery, margin, inventory, free-cash-flow, capex, FSD, energy-business 업데이트를 확인한다.\",\n    \"추가 analyst upgrade 또는 UBS의 neutral 이후 sentiment 개선이 실제 매수 수요로 이어지는지 점검한다.\"\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-15T02:59:46.315643+09:00",
  "finished_at": "2026-04-15T03:11:38.297764+09:00",
  "duration_seconds": 711.98,
  "metrics": {
    "llm_calls": 58,
    "tool_calls": 21,
    "tokens_in": 0,
    "tokens_out": 0,
    "tokens_available": false,
    "calls_by_model": {
      "gpt-5.4": 58
    }
  },
  "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_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_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_cashflow",
        "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_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"
  }
}