{
  "date": "2026-09-03",
  "data_time": "2026-09-03T17:31:40+08:00",
  "version": "morning_data-v1.3",
  "market": {
    "twse": {
      "close": 45857.66,
      "change": -307.06,
      "change_pct": -0.67,
      "volume_billion_twd": 9932.62,
      "volume_unit": "億元",
      "date": "2026-09-03"
    },
    "tpex": {
      "close": 395.25,
      "change": -11.71,
      "change_pct": -2.88,
      "volume_billion_twd": 2412.26,
      "volume_unit": "億元",
      "date": "2026-09-03"
    }
  },
  "three_investors": {
    "twse": {
      "foreign": {
        "buy": 3283.11,
        "sell": 3764.57,
        "net": -481.46
      },
      "investment_trust": {
        "buy": 196.98,
        "sell": 185.56,
        "net": 11.42
      },
      "dealer": {
        "buy": 379.83,
        "sell": 546.91,
        "net": -167.08
      },
      "total_net": -637.12,
      "unit": "億元",
      "date": "2026-09-03"
    },
    "tpex": null
  },
  "top_foreign_movers": {
    "buy_top10": [
      {
        "code": "2409",
        "name": "友達",
        "net_shares": 55437100,
        "net_value_million": null
      },
      {
        "code": "2845",
        "name": "遠東銀",
        "net_shares": 29742652,
        "net_value_million": null
      },
      {
        "code": "2886",
        "name": "兆豐金",
        "net_shares": 23261199,
        "net_value_million": null
      },
      {
        "code": "2303",
        "name": "聯電",
        "net_shares": 22021498,
        "net_value_million": null
      },
      {
        "code": "2889",
        "name": "國票金",
        "net_shares": 20412255,
        "net_value_million": null
      },
      {
        "code": "3481",
        "name": "群創",
        "net_shares": 19021801,
        "net_value_million": null
      },
      {
        "code": "5880",
        "name": "合庫金",
        "net_shares": 17430887,
        "net_value_million": null
      },
      {
        "code": "2885",
        "name": "元大金",
        "net_shares": 17375409,
        "net_value_million": null
      },
      {
        "code": "2481",
        "name": "強茂",
        "net_shares": 16999031,
        "net_value_million": null
      },
      {
        "code": "2892",
        "name": "第一金",
        "net_shares": 12524298,
        "net_value_million": null
      }
    ],
    "sell_top10": [
      {
        "code": "2408",
        "name": "南亞科",
        "net_shares": -34399366,
        "net_value_million": null
      },
      {
        "code": "2344",
        "name": "華邦電",
        "net_shares": -26737222,
        "net_value_million": null
      },
      {
        "code": "2834",
        "name": "臺企銀",
        "net_shares": -23184056,
        "net_value_million": null
      },
      {
        "code": "6770",
        "name": "力積電",
        "net_shares": -18954441,
        "net_value_million": null
      },
      {
        "code": "2337",
        "name": "旺宏",
        "net_shares": -15138475,
        "net_value_million": null
      },
      {
        "code": "4958",
        "name": "臻鼎-KY",
        "net_shares": -10271226,
        "net_value_million": null
      },
      {
        "code": "6116",
        "name": "彩晶",
        "net_shares": -8431234,
        "net_value_million": null
      },
      {
        "code": "2449",
        "name": "京元電子",
        "net_shares": -7545113,
        "net_value_million": null
      },
      {
        "code": "6505",
        "name": "台塑化",
        "net_shares": -7245203,
        "net_value_million": null
      },
      {
        "code": "2301",
        "name": "光寶科",
        "net_shares": -7190766,
        "net_value_million": null
      }
    ],
    "date": "2026-09-03"
  },
  "futures": {
    "foreign_taiwan_index_oi_net": -85329,
    "foreign_oi_long": 6686,
    "foreign_oi_short": 92015,
    "comment": "外資台指期(TX)未平倉淨多空(口數)、負值=淨空",
    "date": "2026-09-02",
    "lag_days": 1,
    "freshness": "normal",
    "month_settlement_date": "2026-09-16",
    "crosses_settlement": false
  },
  "sectors": {
    "semiconductor": {
      "close": 1532.13,
      "change_pct_d1": -0.16,
      "leading_stocks": [
        "2330",
        "2454",
        "2303"
      ]
    },
    "electronics": {
      "close": 2895.81,
      "change_pct_d1": -0.85,
      "leading_stocks": [
        "2330",
        "2317",
        "2454"
      ]
    },
    "finance": {
      "close": 3481.59,
      "change_pct_d1": 2.19,
      "leading_stocks": [
        "2882",
        "2891",
        "2885"
      ]
    },
    "electronic_components": {
      "close": 892.86,
      "change_pct_d1": -2.82,
      "leading_stocks": [
        "2308",
        "3008"
      ]
    },
    "comment": "資料來源: TWSE 類股指數 (MI_INDEX type=IND)。AI 伺服器 / 蘋概 / 傳產等概念股無對應指數、leading stocks 代表股清單見 CONCEPT_SECTOR_LEADERS、v1.x 待擴充。"
  },
  "mega_caps": {
    "stocks": {
      "2330": {
        "name": "台積電",
        "close": 2390.0,
        "change": 5.0,
        "change_pct": 0.21
      },
      "2317": {
        "name": "鴻海",
        "close": 247.5,
        "change": -3.5,
        "change_pct": -1.39
      },
      "2454": {
        "name": "聯發科",
        "close": 4340.0,
        "change": 65.0,
        "change_pct": 1.52
      },
      "2382": {
        "name": "廣達",
        "close": 335.0,
        "change": -2.0,
        "change_pct": -0.59
      },
      "2412": {
        "name": "中華電",
        "close": 138.0,
        "change": 0.5,
        "change_pct": 0.36
      },
      "2882": {
        "name": "國泰金",
        "close": 112.5,
        "change": 3.5,
        "change_pct": 3.21
      }
    },
    "data_date": "2026-09-03",
    "stale_vs_report": false,
    "missing": [],
    "comment": "權值股六檔。TWSE 官方盤後(MI_INDEX ALLBUT0999)。stale_vs_report=true 時為前一交易日值、引用需標明"
  },
  "theme_stocks": {
    "stocks": {
      "2408": {
        "name": "南亞科",
        "close": 477.5,
        "change": -40.5,
        "change_pct": -7.82
      },
      "2344": {
        "name": "華邦電",
        "close": 169.0,
        "change": -10.0,
        "change_pct": -5.59
      },
      "2337": {
        "name": "旺宏",
        "close": 117.0,
        "change": -6.0,
        "change_pct": -4.88
      },
      "6770": {
        "name": "力積電",
        "close": 67.8,
        "change": -2.6,
        "change_pct": -3.69
      }
    },
    "data_date": "2026-09-03",
    "stale_vs_report": false,
    "missing": [],
    "comment": "主題股：記憶體族群。TWSE 官方盤後(MI_INDEX ALLBUT0999)。stale_vs_report=true 時為前一交易日值、引用需標明"
  },
  "chips_dashboard": {
    "foreign": {
      "streak_days": -2,
      "streak_desc": "連2賣",
      "gap_in_series": false,
      "sum_5d": -854.31,
      "series_5d": [
        {
          "date": "2026-08-28",
          "net": 417.54
        },
        {
          "date": "2026-08-31",
          "net": -143.92
        },
        {
          "date": "2026-09-01",
          "net": 267.08
        },
        {
          "date": "2026-09-02",
          "net": -913.55
        },
        {
          "date": "2026-09-03",
          "net": -481.46
        }
      ]
    },
    "investment_trust": {
      "streak_days": 1,
      "streak_desc": "連1買",
      "gap_in_series": false,
      "sum_5d": 58.19
    },
    "futures_oi": {
      "series_5d": [
        {
          "date": "2026-08-27",
          "net": -84836
        },
        {
          "date": "2026-08-28",
          "net": -83655
        },
        {
          "date": "2026-08-31",
          "net": -82970
        },
        {
          "date": "2026-09-01",
          "net": -78706
        },
        {
          "date": "2026-09-02",
          "net": -85329
        }
      ],
      "change_5d": -493,
      "settlement_in_range": null
    },
    "unit": "法人=億元、期貨=口",
    "comment": "連N買賣以 TWSE BFI82U 日淨額連續同號計、確認休市日橋接；gap_in_series=true 表示回溯遇到未確認的資料洞、連N在該處截斷（實際可能更長）；sum_5d=近5個有資料交易日累計；futures_oi.settlement_in_range 非 null 時序列跨月結算、前後不可直接比較"
  },
  "technical_levels": {
    "taiex": {
      "ma5": 46286.2,
      "ma10": 45839.49,
      "ma20": 45542.0,
      "ma60": 44993.08,
      "ma120": 41825.56,
      "ma240": 35410.79,
      "deviation_pct": {
        "ma5": -0.93,
        "ma10": 0.04,
        "ma20": 0.69,
        "ma60": 1.92,
        "ma120": 9.64,
        "ma240": 29.5
      },
      "close": 45857.66,
      "data_date": "2026-09-03"
    },
    "tsmc_2330": {
      "ma5": 2408.0,
      "ma10": 2405.0,
      "ma20": 2397.25,
      "ma60": 2388.17,
      "ma120": 2248.0,
      "ma240": 1900.15,
      "deviation_pct": {
        "ma5": -0.75,
        "ma10": -0.62,
        "ma20": -0.3,
        "ma60": 0.08,
        "ma120": 6.32,
        "ma240": 25.78
      },
      "close": 2390.0,
      "data_date": "2026-09-03"
    },
    "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-09-03",
    "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-09-03T17:31:45+08:00",
    "revision": 1
  },
  "dated_urls": {
    "base": "https://stock-daily-97u.pages.dev",
    "pattern": "https://stock-daily-97u.pages.dev/morning_data_{date}.json",
    "generated_from": "2026-09-03",
    "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-09-03",
        "url": "https://stock-daily-97u.pages.dev/morning_data_2026-09-03.json"
      },
      {
        "date": "2026-09-04",
        "url": "https://stock-daily-97u.pages.dev/morning_data_2026-09-04.json"
      },
      {
        "date": "2026-09-05",
        "url": "https://stock-daily-97u.pages.dev/morning_data_2026-09-05.json"
      },
      {
        "date": "2026-09-06",
        "url": "https://stock-daily-97u.pages.dev/morning_data_2026-09-06.json"
      },
      {
        "date": "2026-09-07",
        "url": "https://stock-daily-97u.pages.dev/morning_data_2026-09-07.json"
      },
      {
        "date": "2026-09-08",
        "url": "https://stock-daily-97u.pages.dev/morning_data_2026-09-08.json"
      },
      {
        "date": "2026-09-09",
        "url": "https://stock-daily-97u.pages.dev/morning_data_2026-09-09.json"
      },
      {
        "date": "2026-09-10",
        "url": "https://stock-daily-97u.pages.dev/morning_data_2026-09-10.json"
      },
      {
        "date": "2026-09-11",
        "url": "https://stock-daily-97u.pages.dev/morning_data_2026-09-11.json"
      },
      {
        "date": "2026-09-12",
        "url": "https://stock-daily-97u.pages.dev/morning_data_2026-09-12.json"
      },
      {
        "date": "2026-09-13",
        "url": "https://stock-daily-97u.pages.dev/morning_data_2026-09-13.json"
      },
      {
        "date": "2026-09-14",
        "url": "https://stock-daily-97u.pages.dev/morning_data_2026-09-14.json"
      },
      {
        "date": "2026-09-15",
        "url": "https://stock-daily-97u.pages.dev/morning_data_2026-09-15.json"
      },
      {
        "date": "2026-09-16",
        "url": "https://stock-daily-97u.pages.dev/morning_data_2026-09-16.json"
      },
      {
        "date": "2026-09-17",
        "url": "https://stock-daily-97u.pages.dev/morning_data_2026-09-17.json"
      },
      {
        "date": "2026-09-18",
        "url": "https://stock-daily-97u.pages.dev/morning_data_2026-09-18.json"
      },
      {
        "date": "2026-09-19",
        "url": "https://stock-daily-97u.pages.dev/morning_data_2026-09-19.json"
      },
      {
        "date": "2026-09-20",
        "url": "https://stock-daily-97u.pages.dev/morning_data_2026-09-20.json"
      },
      {
        "date": "2026-09-21",
        "url": "https://stock-daily-97u.pages.dev/morning_data_2026-09-21.json"
      },
      {
        "date": "2026-09-22",
        "url": "https://stock-daily-97u.pages.dev/morning_data_2026-09-22.json"
      },
      {
        "date": "2026-09-23",
        "url": "https://stock-daily-97u.pages.dev/morning_data_2026-09-23.json"
      },
      {
        "date": "2026-09-24",
        "url": "https://stock-daily-97u.pages.dev/morning_data_2026-09-24.json"
      },
      {
        "date": "2026-09-25",
        "url": "https://stock-daily-97u.pages.dev/morning_data_2026-09-25.json"
      },
      {
        "date": "2026-09-26",
        "url": "https://stock-daily-97u.pages.dev/morning_data_2026-09-26.json"
      },
      {
        "date": "2026-09-27",
        "url": "https://stock-daily-97u.pages.dev/morning_data_2026-09-27.json"
      },
      {
        "date": "2026-09-28",
        "url": "https://stock-daily-97u.pages.dev/morning_data_2026-09-28.json"
      },
      {
        "date": "2026-09-29",
        "url": "https://stock-daily-97u.pages.dev/morning_data_2026-09-29.json"
      },
      {
        "date": "2026-09-30",
        "url": "https://stock-daily-97u.pages.dev/morning_data_2026-09-30.json"
      },
      {
        "date": "2026-10-01",
        "url": "https://stock-daily-97u.pages.dev/morning_data_2026-10-01.json"
      },
      {
        "date": "2026-10-02",
        "url": "https://stock-daily-97u.pages.dev/morning_data_2026-10-02.json"
      }
    ]
  }
}