{
  "ticker": "GLDM",
  "ticker_name": "SPDR Gold MiniShares Trust",
  "status": "success",
  "trade_date": "2026-04-16",
  "analysis_date": "2026-04-16",
  "decision": "{\n  \"rating\": \"OVERWEIGHT\",\n  \"portfolio_stance\": \"BULLISH\",\n  \"entry_action\": \"WAIT\",\n  \"setup_quality\": \"DEVELOPING\",\n  \"confidence\": 0.66,\n  \"time_horizon\": \"medium\",\n  \"entry_logic\": \"GLDM의 중기 배분 관점은 OVERWEIGHT로 유지한다. 세 분석가 모두 장기 상승 구조 자체는 인정했으며, 근거는 2026-04-15 종가 94.91이 200일 SMA 82.67을 크게 웃돌고, 10일 EMA 93.89 위에서 반등했으며, RSI가 27.37 과매도권에서 51.59로 회복되고 MACD도 -3.11 부근에서 -0.50으로 개선됐다는 점이다. 다만 Conservative와 Neutral이 지적했듯 가격은 아직 50일 SMA 96.98 아래이고 97.00-98.00 구간에 50일선과 볼린저 상단 97.85가 겹쳐 있어 오늘 즉시 본격 신규 진입은 보류한다. 방향성은 BULLISH이지만 즉시 실행은 WAIT이며, 93.89-95.00 구간에서 10일 EMA 지지가 확인되거나 98.00 위 일간 종가가 나오면 작은 starter는 정당화될 수 있다. 의미 있는 증액은 98.00 돌파 후 일부, 이후 96.50-97.00 재지지 또는 100.00 위 거래량 동반 지속이 확인될 때 단계적으로 진행한다.\",\n  \"exit_logic\": \"기존 보유분은 GLDM이 10일 EMA 93.89 부근을 유지하고 금 매크로 헤지 수요가 훼손되지 않는 한 유지한다. 92.50 아래 일간 종가는 Neutral과 Conservative가 모두 최근 반등 실패 가능성을 높이는 신호로 본 만큼 1차 감축 기준으로 삼는다. 90.00 이탈은 단순 재점검이 아니라 중기 BULLISH 및 OVERWEIGHT 근거가 크게 약해지는 가격 경고로 보고 실질적 축소 또는 철수를 검토한다. 97.00-98.00 저항대에서 반복적으로 거절되고 거래량 확인이 없으면 부분 이익 실현 또는 손절 기준 상향으로 방어한다.\",\n  \"position_sizing\": \"98.00 위 종가 확인 전에는 정상 비중보다 낮게 유지한다. 93.89-95.00 지지 확인만으로 진입할 경우에는 Neutral의 조언처럼 매우 작은 starter로 제한하고, 이는 추세 회복 확정 포지션이 아니라 조건부 선제 포지션으로 취급한다. 98.00 위 일간 종가가 나오면 일부 추가를 허용하되, 이후 96.50-97.00 재지지 또는 100.00 위 거래량 동반 지속이 확인될 때만 추가 증액한다. ATR 2.20, 현재가 대비 약 2.3% 변동성을 반영해 너무 촘촘한 장중 손절보다 종가 기준 위험 관리와 분할 집행을 우선한다.\",\n  \"risk_limits\": \"97.00-98.00 저항대에 바로 진입하며 추격하지 않는다. 단일 포지션 위험은 낮게 유지하고, 92.50 종가 이탈 시 노출을 줄이며 신규 starter는 중단한다. 90.00 이탈 시 OVERWEIGHT 유지 근거를 재평가하고 방어 우선으로 전환한다. GLDM은 배당과 자체 현금흐름이 없어 금 가격, 실질금리, USD, CPI, Fed 발언, 지정학적 위험, ETF 자금 흐름 변화에 직접 노출된다는 Conservative의 지적을 반영한다. ETF 유입은 긍정적이지만 2026-04-09의 일간 상위 10개 유입 신호만으로 지속성을 단정하지 않는다.\",\n  \"catalysts\": [\n    \"GLDM이 98.00 위에서 일간 종가를 형성해 50일 SMA 96.98과 볼린저 상단 97.85 저항대를 회복하는 경우.\",\n    \"93.89-95.00 pullback 구간에서 10일 EMA 지지가 확인되고 거래량과 가격 반응이 개선되는 경우.\",\n    \"2026-04-09 일간 ETF 자금 유입 상위 10개 신호 이후 GLDM 및 금 ETF 유입이 지속되는 경우.\",\n    \"실질금리 하락, USD 약세, Fed 금리 인하 기대 강화가 금 수요를 뒷받침하는 경우.\",\n    \"인플레이션, M2 확대 우려, 중앙은행 금 매입, 지정학적 리스크가 안전자산 및 인플레이션 헤지 수요를 유지하는 경우.\",\n    \"100.00 위 돌파와 거래량 확인으로 100.00-102.00 구간을 향한 추세추종 수요가 붙는 경우.\"\n  ],\n  \"invalidators\": [\n    \"GLDM이 92.50 아래에서 일간 종가를 형성해 최근 반등 실패 가능성이 커지는 경우.\",\n    \"90.00 이탈로 중기 BULLISH 및 OVERWEIGHT 논리가 가격 측면에서 훼손되는 경우.\",\n    \"50일 SMA 96.98과 볼린저 상단 97.85가 겹친 97.00-98.00 구간에서 반복적으로 거절되고 거래량 확인이 없는 경우.\",\n    \"실질금리 또는 USD가 급등해 우호적 금 내러티브에도 GLDM 가격이 압박받는 경우.\",\n    \"2026-04-09 ETF 유입 신호가 일회성으로 끝나고 지속적 유출로 전환되는 경우.\",\n    \"위험자산 선호 회복, 지정학적 긴장 완화, 금리 상승이 동시에 나타나 금 헤지 수요가 약해지는 경우.\"\n  ],\n  \"watchlist_triggers\": [\n    \"GLDM 일간 종가가 98.00 위에서 형성되고 거래량 확인이 동반되는지 확인한다.\",\n    \"93.89-95.00 구간으로 되돌림이 나올 때 10일 EMA 부근을 지키는지 확인한다.\",\n    \"96.98-97.85 저항대에서 돌파, 실패, 또는 반복 거절 중 어느 흐름이 나타나는지 추적한다.\",\n    \"92.50 아래 종가 또는 장중 이탈 후 종가 회복 실패가 발생하는지 감시한다.\",\n    \"90.00 이탈 여부를 중기 thesis 훼손 기준으로 감시한다.\",\n    \"금 가격, USD, Treasury yields, real yields, CPI, Fed 발언, 지정학적 뉴스, 금 ETF flow 업데이트를 함께 점검한다.\"\n  ],\n  \"data_coverage\": {\n    \"company_news_count\": 5,\n    \"disclosures_count\": 0,\n    \"social_source\": \"news_derived\",\n    \"macro_items_count\": 6\n  }\n}",
  "started_at": "2026-04-16T23:45:02.445427+09:00",
  "finished_at": "2026-04-16T23:56:22.565952+09:00",
  "duration_seconds": 680.12,
  "metrics": {
    "llm_calls": 56,
    "tool_calls": 20,
    "tokens_in": 0,
    "tokens_out": 0,
    "tokens_available": false,
    "calls_by_model": {
      "gpt-5.4": 56
    }
  },
  "tool_telemetry": {
    "total_tool_calls": 20,
    "vendor_calls": {
      "yfinance": 16,
      "alpha_vantage": 4
    },
    "fallback_count": 3,
    "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": "fallback",
        "fallback": true,
        "note": "alpha_vantage: empty or unusable result"
      },
      {
        "method": "get_macro_news",
        "vendor": "alpha_vantage",
        "status": "success",
        "fallback": false,
        "note": null
      },
      {
        "method": "get_company_news",
        "vendor": "yfinance",
        "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",
    "intraday_snapshot_missing_same_day"
  ],
  "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": "GLDM",
      "attempted": true,
      "success": true,
      "checkpoint": "01:35",
      "interval": "5m",
      "attempted_at": "2026-04-17T02:51:16.629410+09:00",
      "provider": "yfinance_intraday",
      "market_data_asof": "2026-04-16T13:50:00-04:00"
    },
    {
      "ticker": "GLDM",
      "attempted": true,
      "success": true,
      "checkpoint": "selective_rerun",
      "interval": "5m",
      "attempted_at": "2026-04-17T03:58:37.385826+09:00",
      "provider": "yfinance_intraday",
      "market_data_asof": "2026-04-16T14:55:00-04:00"
    },
    {
      "ticker": "GLDM",
      "attempted": true,
      "success": true,
      "checkpoint": "03:35",
      "interval": "5m",
      "attempted_at": "2026-04-17T04:18:06.628142+09:00",
      "provider": "yfinance_intraday",
      "market_data_asof": "2026-04-16T15:15:00-04:00"
    }
  ],
  "latest_intraday_snapshot_attempt": {
    "ticker": "GLDM",
    "attempted": true,
    "success": true,
    "checkpoint": "03:35",
    "interval": "5m",
    "attempted_at": "2026-04-17T04:18:06.628142+09:00",
    "provider": "yfinance_intraday",
    "market_data_asof": "2026-04-16T15:15:00-04:00"
  },
  "intraday_snapshot_latest_attempt": {
    "ticker": "GLDM",
    "attempted": true,
    "success": true,
    "checkpoint": "03:35",
    "interval": "5m",
    "attempted_at": "2026-04-17T04:18:06.628142+09:00",
    "provider": "yfinance_intraday",
    "market_data_asof": "2026-04-16T15:15:00-04:00"
  }
}