{
  "date": "2026-10-22",
  "data_time": "2026-10-22T17:33:09+08:00",
  "version": "morning_data-v1.3",
  "market": {
    "twse": {
      "close": 46041.43,
      "change": -846.34,
      "change_pct": -1.81,
      "volume_billion_twd": 9334.37,
      "volume_unit": "億元",
      "date": "2026-10-22"
    },
    "tpex": {
      "close": 381.69,
      "change": -13.73,
      "change_pct": -3.47,
      "volume_billion_twd": 2252.12,
      "volume_unit": "億元",
      "date": "2026-10-22"
    }
  },
  "three_investors": {
    "twse": {
      "foreign": {
        "buy": 2975.5,
        "sell": 3792.07,
        "net": -816.57
      },
      "investment_trust": {
        "buy": 243.14,
        "sell": 154.39,
        "net": 88.75
      },
      "dealer": {
        "buy": 421.73,
        "sell": 695.51,
        "net": -273.78
      },
      "total_net": -1001.6,
      "unit": "億元",
      "date": "2026-10-22"
    },
    "tpex": null
  },
  "top_foreign_movers": {
    "buy_top10": [
      {
        "code": "1101",
        "name": "台泥",
        "net_shares": 25549325,
        "net_value_million": null
      },
      {
        "code": "1802",
        "name": "台玻",
        "net_shares": 25235718,
        "net_value_million": null
      },
      {
        "code": "2002",
        "name": "中鋼",
        "net_shares": 24664994,
        "net_value_million": null
      },
      {
        "code": "2887",
        "name": "台新新光金",
        "net_shares": 12843070,
        "net_value_million": null
      },
      {
        "code": "6505",
        "name": "台塑化",
        "net_shares": 12635429,
        "net_value_million": null
      },
      {
        "code": "2801",
        "name": "彰銀",
        "net_shares": 10912116,
        "net_value_million": null
      },
      {
        "code": "4526",
        "name": "東台",
        "net_shares": 9977609,
        "net_value_million": null
      },
      {
        "code": "2892",
        "name": "第一金",
        "net_shares": 9936099,
        "net_value_million": null
      },
      {
        "code": "2884",
        "name": "玉山金",
        "net_shares": 9327473,
        "net_value_million": null
      },
      {
        "code": "2353",
        "name": "宏碁",
        "net_shares": 9220766,
        "net_value_million": null
      }
    ],
    "sell_top10": [
      {
        "code": "0050",
        "name": "元大台灣50",
        "net_shares": -45989683,
        "net_value_million": null
      },
      {
        "code": "2409",
        "name": "友達",
        "net_shares": -41971178,
        "net_value_million": null
      },
      {
        "code": "1303",
        "name": "南亞",
        "net_shares": -20416205,
        "net_value_million": null
      },
      {
        "code": "1301",
        "name": "台塑",
        "net_shares": -16065504,
        "net_value_million": null
      },
      {
        "code": "2327",
        "name": "國巨*",
        "net_shares": -15755761,
        "net_value_million": null
      },
      {
        "code": "2330",
        "name": "台積電",
        "net_shares": -12694626,
        "net_value_million": null
      },
      {
        "code": "2449",
        "name": "京元電子",
        "net_shares": -10850567,
        "net_value_million": null
      },
      {
        "code": "2492",
        "name": "華新科",
        "net_shares": -10106241,
        "net_value_million": null
      },
      {
        "code": "2489",
        "name": "瑞軒",
        "net_shares": -9616183,
        "net_value_million": null
      },
      {
        "code": "1314",
        "name": "中石化",
        "net_shares": -9370905,
        "net_value_million": null
      }
    ],
    "date": "2026-10-22"
  },
  "futures": {
    "foreign_taiwan_index_oi_net": -86072,
    "foreign_oi_long": 9410,
    "foreign_oi_short": 95482,
    "comment": "外資台指期(TX)未平倉淨多空(口數)、負值=淨空",
    "date": "2026-10-21",
    "lag_days": 1,
    "freshness": "normal",
    "month_settlement_date": "2026-10-21",
    "crosses_settlement": false
  },
  "sectors": {
    "semiconductor": {
      "close": 1522.74,
      "change_pct_d1": -1.91,
      "leading_stocks": [
        "2330",
        "2454",
        "2303"
      ]
    },
    "electronics": {
      "close": 2866.47,
      "change_pct_d1": -2.11,
      "leading_stocks": [
        "2330",
        "2317",
        "2454"
      ]
    },
    "finance": {
      "close": 3742.82,
      "change_pct_d1": 0.62,
      "leading_stocks": [
        "2882",
        "2891",
        "2885"
      ]
    },
    "electronic_components": {
      "close": 883.7,
      "change_pct_d1": -3.64,
      "leading_stocks": [
        "2308",
        "3008"
      ]
    },
    "comment": "資料來源: TWSE 類股指數 (MI_INDEX type=IND)。AI 伺服器 / 蘋概 / 傳產等概念股無對應指數、leading stocks 代表股清單見 CONCEPT_SECTOR_LEADERS、v1.x 待擴充。"
  },
  "mega_caps": {
    "stocks": {
      "2330": {
        "name": "台積電",
        "close": 2385.0,
        "change": -35.0,
        "change_pct": -1.45
      },
      "2317": {
        "name": "鴻海",
        "close": 245.0,
        "change": -5.0,
        "change_pct": -2.0
      },
      "2454": {
        "name": "聯發科",
        "close": 4010.0,
        "change": -130.0,
        "change_pct": -3.14
      },
      "2382": {
        "name": "廣達",
        "close": 322.0,
        "change": -6.5,
        "change_pct": -1.98
      },
      "2412": {
        "name": "中華電",
        "close": 158.0,
        "change": 4.0,
        "change_pct": 2.6
      },
      "2882": {
        "name": "國泰金",
        "close": 113.5,
        "change": -0.5,
        "change_pct": -0.44
      }
    },
    "data_date": "2026-10-22",
    "stale_vs_report": false,
    "missing": [],
    "comment": "權值股六檔。TWSE 官方盤後(MI_INDEX ALLBUT0999)。stale_vs_report=true 時為前一交易日值、引用需標明"
  },
  "theme_stocks": {
    "stocks": {
      "2408": {
        "name": "南亞科",
        "close": 414.0,
        "change": -22.5,
        "change_pct": -5.15
      },
      "2344": {
        "name": "華邦電",
        "close": 154.5,
        "change": -5.0,
        "change_pct": -3.13
      },
      "2337": {
        "name": "旺宏",
        "close": 99.5,
        "change": -3.5,
        "change_pct": -3.4
      },
      "6770": {
        "name": "力積電",
        "close": 66.4,
        "change": 0.2,
        "change_pct": 0.3
      }
    },
    "data_date": "2026-10-22",
    "stale_vs_report": false,
    "missing": [],
    "comment": "主題股：記憶體族群。TWSE 官方盤後(MI_INDEX ALLBUT0999)。stale_vs_report=true 時為前一交易日值、引用需標明"
  },
  "chips_dashboard": {
    "foreign": {
      "streak_days": -1,
      "streak_desc": "連1賣",
      "gap_in_series": false,
      "sum_5d": -2831.27,
      "series_5d": [
        {
          "date": "2026-10-16",
          "net": -461.47
        },
        {
          "date": "2026-10-19",
          "net": -767.43
        },
        {
          "date": "2026-10-20",
          "net": -795.4
        },
        {
          "date": "2026-10-21",
          "net": 9.6
        },
        {
          "date": "2026-10-22",
          "net": -816.57
        }
      ]
    },
    "investment_trust": {
      "streak_days": 10,
      "streak_desc": "連10買",
      "gap_in_series": false,
      "sum_5d": 742.08
    },
    "futures_oi": {
      "series_5d": [
        {
          "date": "2026-10-15",
          "net": -97582
        },
        {
          "date": "2026-10-16",
          "net": -93675
        },
        {
          "date": "2026-10-19",
          "net": -91145
        },
        {
          "date": "2026-10-20",
          "net": -89748
        },
        {
          "date": "2026-10-21",
          "net": -86072
        }
      ],
      "change_5d": 11510,
      "settlement_in_range": "2026-10-21"
    },
    "unit": "法人=億元、期貨=口",
    "comment": "連N買賣以 TWSE BFI82U 日淨額連續同號計、確認休市日橋接；gap_in_series=true 表示回溯遇到未確認的資料洞、連N在該處截斷（實際可能更長）；sum_5d=近5個有資料交易日累計；futures_oi.settlement_in_range 非 null 時序列跨月結算、前後不可直接比較"
  },
  "technical_levels": {
    "taiex": {
      "ma5": 46631.09,
      "ma10": 47570.79,
      "ma20": 48071.61,
      "ma60": 46207.09,
      "ma120": 45121.79,
      "ma240": 38231.91,
      "deviation_pct": {
        "ma5": -1.26,
        "ma10": -3.21,
        "ma20": -4.22,
        "ma60": -0.36,
        "ma120": 2.04,
        "ma240": 20.43
      },
      "close": 46041.43,
      "data_date": "2026-10-22"
    },
    "tsmc_2330": {
      "ma5": 2410.0,
      "ma10": 2456.0,
      "ma20": 2485.25,
      "ma60": 2423.25,
      "ma120": 2384.0,
      "ma240": 2048.29,
      "deviation_pct": {
        "ma5": -1.04,
        "ma10": -2.89,
        "ma20": -4.03,
        "ma60": -1.58,
        "ma120": 0.04,
        "ma240": 16.44
      },
      "close": 2385.0,
      "data_date": "2026-10-22"
    },
    "comment": "六條均線以官方日收盤簡單平均（不還原除權息）；deviation_pct = (收盤-均線)/均線%；insufficient_history=true 表示該序列不足 240 日、缺的均線為 null"
  },
  "metadata": {
    "generator": "morning_data.py v1.3",
    "data_completeness": {
      "stock_quotes": true,
      "mega_caps": true,
      "theme_stocks": true,
      "twse_market": true,
      "tpex_market": true,
      "twse_three_investors": true,
      "top_foreign_movers": true,
      "foreign_futures": true,
      "sectors_twse_industries": true,
      "chips_dashboard": true,
      "technical_levels": true,
      "tpex_three_investors": false,
      "sectors_concept": false,
      "margin": false
    },
    "errors": [],
    "scan_target_date": "2026-10-22",
    "note": "TAIFEX 期貨資料常 D-1 (盤後 ~21:00 才發)、futures.date 標明對應交易日、v1.1 起 futures.lag_days>1 = stale、crosses_settlement=true 時 OI 不可與結算前比較。mega_caps.stale_vs_report=true 時為前一交易日值。chips_dashboard = 外資/投信連N買賣 + 5日累計 + 期貨OI 5日序列。tpex_three_investors / sectors_concept / margin 不收、預計 v1.x 補。",
    "generated_at": "2026-10-22T17:33:16+08:00",
    "revision": 1,
    "is_alias": true,
    "alias_date": "2026-10-23",
    "alias_for_date": "2026-10-22",
    "alias_note": "本檔為 2026-10-23 早晨的別名檔：當日盤後資料尚未產出（17:30 生成）、內容為最後交易日 2026-10-22 的盤後資料 + 今晨 overnight。當日 17:30 後同一 URL 會被當日盤後真檔覆蓋（屆時 is_alias 消失、date=2026-10-23）。下游請以「is_alias=true 且 overnight.updated_at 為今日」判定正常"
  },
  "dated_urls": {
    "base": "https://stock-daily-97u.pages.dev",
    "pattern": "https://stock-daily-97u.pages.dev/morning_data_{date}.json",
    "generated_from": "2026-10-22",
    "note": "未來 30 日曆日的帶日期 URL。該日尚未產出時 Cloudflare Pages 會 SPA fallback 回首頁 HTML（HTTP 200、content-type=text/html）而非 404 —— 前端務必以 content-type=application/json 或「body 可解析為含 metadata.date 的 JSON」判斷是否當日真檔、否則視同缺檔走退路往前找最近交易日",
    "urls": [
      {
        "date": "2026-10-22",
        "url": "https://stock-daily-97u.pages.dev/morning_data_2026-10-22.json"
      },
      {
        "date": "2026-10-23",
        "url": "https://stock-daily-97u.pages.dev/morning_data_2026-10-23.json"
      },
      {
        "date": "2026-10-24",
        "url": "https://stock-daily-97u.pages.dev/morning_data_2026-10-24.json"
      },
      {
        "date": "2026-10-25",
        "url": "https://stock-daily-97u.pages.dev/morning_data_2026-10-25.json"
      },
      {
        "date": "2026-10-26",
        "url": "https://stock-daily-97u.pages.dev/morning_data_2026-10-26.json"
      },
      {
        "date": "2026-10-27",
        "url": "https://stock-daily-97u.pages.dev/morning_data_2026-10-27.json"
      },
      {
        "date": "2026-10-28",
        "url": "https://stock-daily-97u.pages.dev/morning_data_2026-10-28.json"
      },
      {
        "date": "2026-10-29",
        "url": "https://stock-daily-97u.pages.dev/morning_data_2026-10-29.json"
      },
      {
        "date": "2026-10-30",
        "url": "https://stock-daily-97u.pages.dev/morning_data_2026-10-30.json"
      },
      {
        "date": "2026-10-31",
        "url": "https://stock-daily-97u.pages.dev/morning_data_2026-10-31.json"
      },
      {
        "date": "2026-11-01",
        "url": "https://stock-daily-97u.pages.dev/morning_data_2026-11-01.json"
      },
      {
        "date": "2026-11-02",
        "url": "https://stock-daily-97u.pages.dev/morning_data_2026-11-02.json"
      },
      {
        "date": "2026-11-03",
        "url": "https://stock-daily-97u.pages.dev/morning_data_2026-11-03.json"
      },
      {
        "date": "2026-11-04",
        "url": "https://stock-daily-97u.pages.dev/morning_data_2026-11-04.json"
      },
      {
        "date": "2026-11-05",
        "url": "https://stock-daily-97u.pages.dev/morning_data_2026-11-05.json"
      },
      {
        "date": "2026-11-06",
        "url": "https://stock-daily-97u.pages.dev/morning_data_2026-11-06.json"
      },
      {
        "date": "2026-11-07",
        "url": "https://stock-daily-97u.pages.dev/morning_data_2026-11-07.json"
      },
      {
        "date": "2026-11-08",
        "url": "https://stock-daily-97u.pages.dev/morning_data_2026-11-08.json"
      },
      {
        "date": "2026-11-09",
        "url": "https://stock-daily-97u.pages.dev/morning_data_2026-11-09.json"
      },
      {
        "date": "2026-11-10",
        "url": "https://stock-daily-97u.pages.dev/morning_data_2026-11-10.json"
      },
      {
        "date": "2026-11-11",
        "url": "https://stock-daily-97u.pages.dev/morning_data_2026-11-11.json"
      },
      {
        "date": "2026-11-12",
        "url": "https://stock-daily-97u.pages.dev/morning_data_2026-11-12.json"
      },
      {
        "date": "2026-11-13",
        "url": "https://stock-daily-97u.pages.dev/morning_data_2026-11-13.json"
      },
      {
        "date": "2026-11-14",
        "url": "https://stock-daily-97u.pages.dev/morning_data_2026-11-14.json"
      },
      {
        "date": "2026-11-15",
        "url": "https://stock-daily-97u.pages.dev/morning_data_2026-11-15.json"
      },
      {
        "date": "2026-11-16",
        "url": "https://stock-daily-97u.pages.dev/morning_data_2026-11-16.json"
      },
      {
        "date": "2026-11-17",
        "url": "https://stock-daily-97u.pages.dev/morning_data_2026-11-17.json"
      },
      {
        "date": "2026-11-18",
        "url": "https://stock-daily-97u.pages.dev/morning_data_2026-11-18.json"
      },
      {
        "date": "2026-11-19",
        "url": "https://stock-daily-97u.pages.dev/morning_data_2026-11-19.json"
      },
      {
        "date": "2026-11-20",
        "url": "https://stock-daily-97u.pages.dev/morning_data_2026-11-20.json"
      }
    ]
  },
  "overnight": {
    "updated_at": "2026-10-23T06:40:51+08:00",
    "comment": "早晨補跑（morning_update.py）：ADR 折溢價 + 夜盤隱含跳空。17:30 daily.bat 重產時本區塊消失、翌晨 06:40 重新注入。",
    "adr_tsm": {
      "adr_close": 412.35,
      "adr_trade_date": "2026-10-22",
      "adr_change_pct": -4.52,
      "usdtwd": 32.597,
      "usdtwd_change_pct": 0.06,
      "usdtwd_trade_date": "2026-10-22",
      "usdtwd_quote_time": "2026-10-22T22:48+01:00",
      "fx_date_matches_adr": true,
      "implied_twd_price": 2688.3,
      "spot_close": 2385.0,
      "spot_close_date": "2026-10-22",
      "premium_pct": 12.72,
      "premium_ma20": 15.14,
      "premium_ma20_n": 20,
      "premium_deviation_pp": -2.42,
      "premium_trend_5d": [
        {
          "date": "2026-10-16",
          "premium_pct": 10.58
        },
        {
          "date": "2026-10-19",
          "premium_pct": 12.78
        },
        {
          "date": "2026-10-20",
          "premium_pct": 15.16
        },
        {
          "date": "2026-10-21",
          "premium_pct": 15.62
        },
        {
          "date": "2026-10-22",
          "premium_pct": 12.72
        }
      ],
      "comment": "折溢價 = ADR×匯率/5 對現股收盤。溢價收斂 = ADR 指向現股向下修正（先行指標）。adr_change_pct = ADR 隔夜單日漲跌。premium_ma20 = 溢價20日均（premium_ma20_n 為實際樣本數、<20 表示歷史尚在累積）、premium_deviation_pp = 當日溢價-20日均（百分點）。usdtwd 為 06:40 全球 offshore spot 即時報價、非台北 16:00 官方收盤（實測 2026-08-01 spot 32.295 vs 官方 32.292）；僅供 ADR 折溢價換算、不得引用為「新台幣收盤」"
    },
    "night_futures": {
      "contract": "臺指期116",
      "session_start_date": "2026-10-22",
      "day_session_close_date": "2026-10-22",
      "fetched_at": "2026-10-23T06:40:02+08:00",
      "session_complete": true,
      "volume": 39363,
      "volume_vs_day_pct": 97.2,
      "volume_ratio_reliable": false,
      "day_session_volume": 40515,
      "day_session_volume_date": "2026-10-21",
      "night_close": 45654.0,
      "day_session_close": 46234.0,
      "change": -580.0,
      "change_pct": -1.25,
      "twse_spot_close": 46041.43,
      "implied_spot_open": 45466.0,
      "implied_gap_pct": -1.25,
      "comment": "夜盤台指期近月 vs 其日盤收盤。隱含開盤 = 加權收盤×(1+夜盤漲跌%)、以百分比轉移法估算、含基差誤差、僅供開盤方向參考。volume_vs_day_pct = 夜盤量/日盤量%（基準日見 day_session_volume_date、官方端點常落後1-2交易日）；比值低=薄市場、夜盤漲跌指示性弱、日盤開盤後常被否決。volume_ratio_reliable=false 時分母非前一交易日日盤量、不得用於薄量／非薄量判定"
    },
    "us_mega_movers": {
      "trade_date": "2026-10-22",
      "threshold_pct": 3.0,
      "movers": [
        {
          "symbol": "AMD",
          "name": "AMD",
          "close": 507.93,
          "change_pct": -8.1
        },
        {
          "symbol": "META",
          "name": "Meta",
          "close": 648.85,
          "change_pct": -6.98
        },
        {
          "symbol": "AMZN",
          "name": "Amazon",
          "close": 250.38,
          "change_pct": -4.57
        },
        {
          "symbol": "TSM",
          "name": "TSMC ADR",
          "close": 412.35,
          "change_pct": -4.52
        },
        {
          "symbol": "NVDA",
          "name": "NVIDIA",
          "close": 212.21,
          "change_pct": -4.4
        },
        {
          "symbol": "AVGO",
          "name": "Broadcom",
          "close": 323.24,
          "change_pct": -4.31
        },
        {
          "symbol": "GOOGL",
          "name": "Alphabet",
          "close": 324.22,
          "change_pct": -3.15
        },
        {
          "symbol": "TSLA",
          "name": "Tesla",
          "close": 374.58,
          "change_pct": -3.08
        },
        {
          "symbol": "NFLX",
          "name": "Netflix",
          "close": 67.05,
          "change_pct": 3.09
        },
        {
          "symbol": "PG",
          "name": "P&G",
          "close": 165.59,
          "change_pct": 3.94
        }
      ],
      "all": [
        {
          "symbol": "NVDA",
          "change_pct": -4.4
        },
        {
          "symbol": "MSFT",
          "change_pct": -2.23
        },
        {
          "symbol": "AAPL",
          "change_pct": 1.23
        },
        {
          "symbol": "GOOGL",
          "change_pct": -3.15
        },
        {
          "symbol": "AMZN",
          "change_pct": -4.57
        },
        {
          "symbol": "META",
          "change_pct": -6.98
        },
        {
          "symbol": "AVGO",
          "change_pct": -4.31
        },
        {
          "symbol": "TSM",
          "change_pct": -4.52
        },
        {
          "symbol": "TSLA",
          "change_pct": -3.08
        },
        {
          "symbol": "BRK-B",
          "change_pct": 1.32
        },
        {
          "symbol": "LLY",
          "change_pct": 1.79
        },
        {
          "symbol": "WMT",
          "change_pct": 2.77
        },
        {
          "symbol": "JPM",
          "change_pct": 0.38
        },
        {
          "symbol": "V",
          "change_pct": 1.91
        },
        {
          "symbol": "ORCL",
          "change_pct": -2.78
        },
        {
          "symbol": "MA",
          "change_pct": 2.06
        },
        {
          "symbol": "XOM",
          "change_pct": 0.21
        },
        {
          "symbol": "COST",
          "change_pct": 2.37
        },
        {
          "symbol": "UNH",
          "change_pct": 1.36
        },
        {
          "symbol": "PG",
          "change_pct": 3.94
        },
        {
          "symbol": "NFLX",
          "change_pct": 3.09
        },
        {
          "symbol": "AMD",
          "change_pct": -8.1
        }
      ],
      "fetch_failed": [],
      "comment": "美股 mega-cap 22 檔固定清單（市值前20大+NFLX/AMD）、|漲跌|>=3.0% 列入 movers（由跌到漲排序）。漲跌原因需晨報自查、本區塊只保證數字與覆蓋完整性"
    },
    "global_quotes": {
      "us_indices": {
        "^DJI": {
          "name": "道瓊工業",
          "price": 52867.98,
          "change_pct": 0.71,
          "change_from_date": "2026-10-20",
          "trade_date": "2026-10-22",
          "quote_time": "2026-10-22T16:31-04:00"
        },
        "^GSPC": {
          "name": "標普500",
          "price": 7663.43,
          "change_pct": -0.64,
          "change_from_date": "2026-10-20",
          "trade_date": "2026-10-22",
          "quote_time": "2026-10-22T16:31-04:00"
        },
        "^IXIC": {
          "name": "那斯達克",
          "price": 26008.86,
          "change_pct": -1.57,
          "change_from_date": "2026-10-20",
          "trade_date": "2026-10-22",
          "quote_time": "2026-10-22T17:15-04:00"
        },
        "^SOX": {
          "name": "費城半導體",
          "price": 10731.978,
          "change_pct": -4.89,
          "change_from_date": "2026-10-20",
          "trade_date": "2026-10-22",
          "quote_time": "2026-10-22T17:15-04:00"
        },
        "^VIX": {
          "name": "VIX恐慌指數",
          "price": 19.03,
          "change_pct": 9.94,
          "change_from_date": "2026-10-20",
          "trade_date": "2026-10-22",
          "quote_time": "2026-10-22T15:15-05:00"
        }
      },
      "fx": {
        "DX-Y.NYB": {
          "name": "美元指數",
          "price": 101.617,
          "change_pct": -0.11,
          "change_from_date": "2026-10-20",
          "trade_date": "2026-10-22",
          "quote_time": "2026-10-22T18:04-04:00"
        },
        "JPY=X": {
          "name": "美元兌日圓",
          "price": 156.604,
          "change_pct": -1.05,
          "change_from_date": "2026-10-21",
          "trade_date": "2026-10-22",
          "quote_time": "2026-10-22T23:40+01:00"
        }
      },
      "us_futures": {
        "ES=F": {
          "name": "標普500期貨",
          "price": 7711.75,
          "change_pct": -1.13,
          "change_from_date": "2026-10-21",
          "trade_date": "2026-10-22",
          "quote_time": "2026-10-22T18:30-04:00"
        },
        "NQ=F": {
          "name": "那斯達克100期貨",
          "price": 29131.75,
          "change_pct": -2.92,
          "change_from_date": "2026-10-21",
          "trade_date": "2026-10-22",
          "quote_time": "2026-10-22T18:30-04:00"
        }
      },
      "rates": {
        "^TNX": {
          "name": "美10年期公債殖利率",
          "price": 4.953,
          "change_pct": -3.21,
          "change_from_date": "2026-10-20",
          "trade_date": "2026-10-22",
          "quote_time": "2026-10-22T13:59-05:00",
          "change_bp": -16.4,
          "unit": "%（殖利率）"
        },
        "^TYX": {
          "name": "美30年期公債殖利率",
          "price": 5.287,
          "change_pct": -2.54,
          "change_from_date": "2026-10-20",
          "trade_date": "2026-10-22",
          "quote_time": "2026-10-22T13:59-05:00",
          "change_bp": -13.8,
          "unit": "%（殖利率）"
        }
      },
      "europe": {
        "^GDAXI": {
          "name": "德國DAX",
          "price": 25371.75,
          "change_pct": 0.27,
          "change_from_date": "2026-10-20",
          "trade_date": "2026-10-22",
          "quote_time": "2026-10-22T18:00+02:00"
        },
        "^FCHI": {
          "name": "法國CAC40",
          "price": 7811.26,
          "change_pct": -0.35,
          "change_from_date": "2026-10-20",
          "trade_date": "2026-10-22",
          "quote_time": "2026-10-22T18:05+02:00"
        },
        "^FTSE": {
          "name": "英國FTSE100",
          "price": 10725.03,
          "change_pct": -0.07,
          "change_from_date": "2026-10-20",
          "trade_date": "2026-10-22",
          "quote_time": "2026-10-22T16:35+01:00"
        }
      },
      "asia": {
        "^N225": {
          "name": "日經225",
          "price": 62907.84,
          "change_pct": -1.82,
          "change_from_date": "2026-10-20",
          "trade_date": "2026-10-22",
          "quote_time": "2026-10-22T15:45+09:00"
        },
        "^KS11": {
          "name": "韓國KOSPI",
          "price": 5533.77,
          "change_pct": -0.34,
          "change_from_date": "2026-10-20",
          "trade_date": "2026-10-22",
          "quote_time": "2026-10-22T20:05+09:00"
        },
        "^HSI": {
          "name": "恆生指數",
          "price": 22934.68,
          "change_pct": -3.91,
          "change_from_date": "2026-10-20",
          "trade_date": "2026-10-22",
          "quote_time": "2026-10-22T16:08+08:00"
        },
        "000001.SS": {
          "name": "上證指數",
          "price": 3658.026,
          "change_pct": -2.07,
          "change_from_date": "2026-10-20",
          "trade_date": "2026-10-22",
          "quote_time": "2026-10-22T15:00+08:00"
        },
        "000660.KS": {
          "name": "SK海力士",
          "price": 1223000.0,
          "change_pct": -5.49,
          "change_from_date": "2026-10-21",
          "trade_date": "2026-10-22",
          "quote_time": "2026-10-22T15:30+09:00"
        },
        "005930.KS": {
          "name": "三星電子",
          "price": 214500.0,
          "change_pct": -4.03,
          "change_from_date": "2026-10-21",
          "trade_date": "2026-10-22",
          "quote_time": "2026-10-22T15:30+09:00"
        }
      },
      "commodities": {
        "CL=F": {
          "name": "西德州原油",
          "price": 99.03,
          "change_pct": 1.94,
          "change_from_date": "2026-10-21",
          "trade_date": "2026-10-22",
          "quote_time": "2026-10-22T18:30-04:00"
        },
        "BZ=F": {
          "name": "布蘭特原油",
          "price": 112.98,
          "change_pct": 3.82,
          "change_from_date": "2026-10-21",
          "trade_date": "2026-10-22",
          "quote_time": "2026-10-22T18:27-04:00"
        },
        "GC=F": {
          "name": "黃金",
          "price": 4046.0,
          "change_pct": -2.51,
          "change_from_date": "2026-10-21",
          "trade_date": "2026-10-22",
          "quote_time": "2026-10-22T18:30-04:00"
        }
      },
      "taiwan_etf": {
        "0050.TW": {
          "name": "元大台灣50",
          "price": 106.9,
          "change_pct": -1.16,
          "change_from_date": "2026-10-21",
          "trade_date": "2026-10-22",
          "quote_time": "2026-10-22T13:30+08:00"
        },
        "00631L.TW": {
          "name": "元大台灣50正2",
          "price": 35.61,
          "change_pct": -2.73,
          "change_from_date": "2026-10-21",
          "trade_date": "2026-10-22",
          "quote_time": "2026-10-22T13:30+08:00"
        }
      },
      "fetch_failed": [],
      "comment": "Yahoo v8 chart API。trade_date=該市場當地交易日、quote_time=報價當地時點（判斷收盤價 vs 盤中價的依據：例 DAX 18:00=已收、日經 09:13=盤中）。us_futures 於台北早晨仍在交易（price=當下報價、非收盤）；rates 的 change_bp 為基點變化（殖利率專用、change_pct 為相對變化易誤讀）。trade_date 落後一日時多為 Yahoo 日K更新延遲、price 仍為即時值。change_pct 一律為「change_from_date 收盤 → 現價」的變化：引用單日漲跌前請確認 change_from_date 是前一交易日"
    },
    "settlement_today": {
      "date": "2026-10-23",
      "kind": "none",
      "label": "非結算日",
      "comment": "日曆推算（週三=週選、第三個週三=月結算）、不含國定假日調整。date 為本檔產生日；前端走退路取到舊檔時須自行核對 date 是否等於讀取當日、否則本結算狀態屬於另一個早晨（H-5）"
    },
    "dca_signal_0050": {
      "date": "2026-10-22",
      "close": 106.9,
      "k": 9.55,
      "d": 18.76,
      "ma20": 111.89,
      "dev20_pct": -4.46,
      "last_bar_source": "meta.regularMarketPrice",
      "light": "green",
      "triggered_by": [
        "kd"
      ],
      "rule": "green: K<20 或 dev20<-5；red: K>80 或 dev20>+5（D 方案、2026-07-25 五年三標的回測選定）"
    },
    "margin_balance": {
      "date": "2026-10-22",
      "balance_100m": 6338.8,
      "change_100m": -104.93,
      "unit": "億元",
      "comment": "融資餘額（TWSE MI_MARGN「融資金額」今日餘額換算億元）；change_100m 為對前日增減、正=加碼（散戶追、通常偏空訊號）"
    },
    "completeness": {
      "md_market_date": "2026-10-22",
      "md_market_date_ok": true,
      "adr_present": true,
      "night_present": true,
      "dca_present": true,
      "margin_present": true,
      "dca_date_matches_market": true,
      "margin_date_matches_market": true,
      "night_session_matches_market": true,
      "night_volume_ratio_reliable": false,
      "fx_date_matches_adr": true,
      "settlement_present": true
    }
  }
}