FinceptTerminal 台灣股市資料連接器實戰指南以 TWSE/TPEX 行情、指數與公司資訊擴充開源終端【免费下载链接】FinceptTerminalFinceptTerminal is a modern finance application offering advanced market analytics, investment research, and economic data tools, designed for interactive exploration and>项目地址: https://gitcode.com/GitHub_Trending/fi/FinceptTerminal本指南圍繞 FinceptTerminal 開源社群分支新增的taiwan_market_connector.py展開完整講解如何在不重新編譯 C 程式碼的前提下為 FinceptTerminal 加入台灣上市TWSE與上櫃TPEX股票的歷史 OHLCV、公司基本面、大盤指數、市場概況與強勢股排行等能力。讀完本文你將掌握連接器的安裝部署、三步啟用流程、全部公開 API 的呼叫方式與參數細節並理解其底層資料來源與限速策略可直接在自己的 FinceptTerminal 環境中查詢台股資料。這個分支做了什麼為 FinceptTerminal 補上台股資料能力FinceptTerminal 是一套跨平台的現代化金融桌面終端Qt 6 C20 前端、Python 資料層其內建的股市資料連接器預設以美股NYSE / NASDAQ為主要市場。本開源社群貢獻分支在fincept-qt/src/python/目錄下新增了單一 Python 檔案fincept-qt/src/python/taiwan_market_connector.py這個連接器讓你在 FinceptTerminal 中直接查詢功能說明個股歷史價格OHLCV 日/週/月K支援上市TWSE與上櫃TPEX個股公司資訊名稱、產業、本益比、股價淨值比、殖利率、52週高低點大盤指數台灣加權指數TAIEX、櫃買指數市場概況大盤成交量、成交值、漲跌家數來自 TWSE OpenAPI強勢股排行當日漲幅最大個股列表股票搜尋依代碼或名稱搜尋台灣主要股票重要本修改僅涉及 Python 層不需要重新編譯 C 程式碼。連接器檔案可以直接執行、獨立自測也可作為模組被其他 Python 程式引用。從倉庫源碼看連接器同時提供了完整的「連接器元資料」CONNECTOR_META見 taiwan_market_connector.py包含連接器 idtaiwan_twse、名稱、區域、幣別以及七個可呼叫函式的映射這正是 FinceptTerminal 連接器登錄connector registry消費的標準結構——也就是說這個檔案既是獨立工具也設計成可以被終端內部的資料來源框架掛載。與 C 層的配合台股後綴的雙重保障FinceptTerminal 的 C 命令列Command Bar資產搜尋功能本身已內建了全球交易所代碼後綴映射表位於 CommandBar_Assets.cpp其中就包含{TPEX, .TWO}這條規則——也就是說終端原有的資產搜尋就能把上櫃交易所識別碼轉成 Yahoo Finance 的.TWO後綴。而本連接器在 Python 層以TWSE_SUFFIX .TW與TPEX_SUFFIX .TWO重新實現了同一套規則taiwan_market_connector.py並透過_yahoo_symbol()輔助函式統一轉換。兩層規則相互印證確保「上市用.TW、上櫃用.TWO」的慣例在整個終端內一致。授權說明重要請先閱讀原始專案授權FinceptTerminal 採用雙授權制AGPL-3.0適用於個人、學術與開源用途免費Fincept 商業授權任何商業用途皆需取得此授權本分支的授權立場本分支依照AGPL-3.0條款釋出這表示✅你可以免費下載、使用、修改本程式碼將本修改再分享給其他人須保持相同授權用於個人學習、學術研究、非商業專案❌你不可以將本程式碼或衍生作品用於任何商業目的需另行取得 Fincept 商業授權移除原始版權聲明以「Fincept」、「Fincept Terminal」等商標命名你的衍生產品合規作法分支的LICENSE檔案完整保留 AGPL-3.0 全文每個修改的檔案頭部都有明確的原始來源聲明連接器檔案開頭的 docstring 即標註了License : AGPL-3.0 (same as upstream FinceptTerminal)與 Upstream 來源README 頂部清楚標示這是社群貢獻分支非官方版本若你有商業需求請聯絡 Fincept Corporation安裝方式前置需求本分支與原版相同需要與 CMakeLists.txt 中實際強制的工具鏈版本一致Python 3.11.9由 CMake 自動管理透過PythonSetupManager與 UV 管理的 venv 環境Qt 6.8.3CMake 固定FINCEPT_QT_VERSION 6.8.3支援 EXACT / MINOR / ANY 三種鎖定模式CMake 3.27cmake_minimum_required(VERSION 3.27)C20 編譯器MSVC 2022 19.40 / GCC 12.3 / Apple Clang 15CMake 在 configure 階段即檢查並以 FATAL_ERROR 拒絕過舊工具鏈方法一直接使用預編譯版本推薦新手本分支的 Python 連接器不需要重新編譯C 程式碼。你可以先下載官方預編譯版本安裝後再手動加入本連接器檔案# 1. 下載並安裝官方預編譯版本Windows / macOS / Linux # 2. 複製台灣股市連接器到 Python 層目錄 cp taiwan_market_connector.py 路徑/到/fincept-qt/src/python/方法二從原始碼建置開發者# Clone 本分支 git clone https://github.com/你的帳號/FinceptTerminal.git cd FinceptTerminal # Linux / macOS — 一鍵建置 chmod x setup.sh ./setup.sh # Windows在 VS 2022 Developer Command Prompt 執行 setup.bat安裝 Python 相依套件連接器使用以下套件通常 FinceptTerminal 環境已內建pip install yfinance requests pandas若要使用twstock進行更完整的即時分析pip install twstock從源碼看連接器的CONNECTOR_META中聲明的依賴為[yfinance, requests, pandas]taiwan_market_connector.py與上述清單一致twstock屬於選用依賴僅用於即時報價與技術分析輔助。啟用台灣股市連接器步驟 1複製連接器檔案將taiwan_market_connector.py放入FinceptTerminal/ └── fincept-qt/ └── src/ └── python/ └── taiwan_market_connector.py ← 放在這裡步驟 2在連接器登錄中註冊找到fincept-qt/src/python/目錄中的連接器登錄檔案通常是data_sources.py或connectors/__init__.py加入以下程式碼from .taiwan_market_connector import CONNECTOR_META as TW_META # 在現有連接器字典中加入 AVAILABLE_CONNECTORS[taiwan_twse] TW_META需要說明的是連接器檔案本身已定義好CONNECTOR_META字典id 為taiwan_twse註冊時直接引用即可無需自行重寫元資料。步驟 3在應用程式介面中啟用啟動 FinceptTerminal 後前往Data Sources資料來源設定頁面找到Taiwan Stock Exchange (TWSE / TPEX)點擊啟用回到主畫面即可使用台灣股市功能功能說明與程式碼範例以下範例可在 Python 直譯器中直接執行用於驗證連接器是否正常運作。所有範例函式都定義於 taiwan_market_connector.py並帶有完整 docstring 參數說明。查詢個股歷史價格核心函式get_tw_stock_history(symbol, start, end, market, interval)參數型別預設值說明symbolstr必填股票代碼如2330台積電startstr2024-01-01開始日期格式YYYY-MM-DDendstr今天結束日期格式YYYY-MM-DDmarketstrTWSETWSE上市TPEX或OTC上櫃intervalstr1d1d日K、1wk週K、1mo月Kfrom taiwan_market_connector import get_tw_stock_history # 查詢台積電上市股票加 .TW 後綴 df get_tw_stock_history(2330, start2024-01-01, marketTWSE) print(df.tail(10)) # 查詢上櫃股票加 .TWO 後綴 df_otc get_tw_stock_history(6669, start2024-01-01, marketTPEX) print(df_otc.tail(5)) # 查詢週K資料 df_weekly get_tw_stock_history(2330, start2023-01-01, interval1wk) print(df_weekly)輸出範例DataFrame欄位為 Open/High/Low/Close/Volume索引為 DateOpen High Low Close Volume Date 2025-04-28 780.0 790.0 778.0 788.0 28500000 2025-04-29 789.0 795.0 785.0 792.0 31200000 ...從源碼看該函式內部會先將裸代碼轉為 Yahoo Finance 格式2330→2330.TW呼叫yf.download()後會做兩件事把索引命名為Date、並展平 yfinance 0.2.x 起可能出現的 MultiIndex 欄位df.columns.get_level_values(0)最後只保留[Open, High, Low, Close, Volume]五個欄位。若回傳空資料會直接拋出ValueError錯誤訊息提示檢查代碼與市場類型TWSE vs TPEX。查詢公司基本資訊from taiwan_market_connector import get_tw_stock_info info get_tw_stock_info(2330) for key, value in info.items(): print(f{key:15}: {value})輸出範例name : Taiwan Semiconductor Manufacturing Company Limited symbol : 2330 exchange : TWSE sector : Technology market_cap : 15280000000000 currency : TWD pe_ratio : 22.4 pb_ratio : 5.8 div_yield : 0.018 52w_high : 1080.0 52w_low : 688.0 current_price : 788.0從源碼看get_tw_stock_info回傳的字典比上面輸出更完整還包含yf_symbolYahoo 格式代碼、industry產業細分、website公司官網等欄位並對current_price做了currentPrice與regularMarketPrice的雙重取值備援。查詢大盤指數from taiwan_market_connector import get_tw_index # 台灣加權指數TAIEX taiex get_tw_index(^TWII, period3mo) print(taiex.tail(5)) # 上櫃指數 tpex_idx get_tw_index(^TWOII, period1mo) print(tpex_idx.tail(5))常用指數代碼代碼指數^TWIITAIEX 加權股價指數主指數^TWOIITPEx 櫃買指數OTC 指數查詢市場概況from taiwan_market_connector import get_tw_market_overview overview get_tw_market_overview() print(f日期{overview[date]}) print(f成交量{overview[trade_volume]}) print(f成交值{overview[trade_value]}) print(f加權指數收盤{overview[taiex_close]}) print(f漲跌{overview[taiex_change]})從源碼看此函式請求 TWSE OpenAPI 的/exchangeReport/FMTQIK端點取回傳清單的最後一筆data[-1]作為最新交易日解析出Date、TradeVolume、TradeValue、Transaction、ClosePrice、Change六個欄位並重新命名為英文鍵。非交易時段請求可能回傳空清單此時函式回傳空字典{}呼叫端需自行處理。查詢當日強勢股from taiwan_market_connector import get_tw_top_movers # 取得漲幅前 10 名 movers get_tw_top_movers(top_n10) print(movers)從源碼看get_tw_top_movers(top_n)請求 TWSE OpenAPI 的/exchangeReport/MI_INDEX20即時資料端點將欄位重新命名為英文Code→symbol、Name→name、TradeVolume→volume、ClosePrice→close、Change→change、ChangeRange→change_pct並將漲跌幅轉為數值後降冪排序最後取前top_n筆。注意 TWSE OpenAPI 的即時資料在盤中約每 5 分鐘更新一次。搜尋股票from taiwan_market_connector import search_tw_stocks # 依中文名稱搜尋 results search_tw_stocks(金融) for r in results: print(f{r[code]} {r[name]:6} {r[english]}) # 依產業搜尋 results search_tw_stocks(Semiconductors) for r in results: print(r)從源碼看search_tw_stocks(query)對內建參考表MAJOR_TW_STOCKS進行不區分大小寫的模糊比對比對欄位涵蓋股票代碼、中文名稱、英文名稱與產業sector四種空查詢則回傳整份參考表的複本。執行完整自我測試連接器檔案設計為可直接執行執行__main__區塊會依序跑四項自測# 在專案根目錄執行 python fincept-qt/src/python/taiwan_market_connector.py若所有功能正常將看到 Taiwan Market Connector — Self Test 1. TSMC (2330) last 5 trading days: ... 2. TSMC company info: ... 3. TAIEX index (last 5 days): ... 4. Search semi: ... ✓ All tests passed.從源碼看自測流程依序為抓取台積電 2025 年以來的歷史價格尾 5 筆、輸出台積電公司資訊、抓取 TAIEX 近一個月指數尾 5 筆、以semi關鍵字搜尋參考表。這個設計讓使用者不必先整合進終端就能驗證網路與依賴套件是否就緒。支援的股票代碼上市股票TWSE 台灣證券交易所使用格式代碼.TW在 Yahoo Finance 中代碼中文名稱英文名稱產業2330台積電TSMC半導體2454聯發科MediaTek半導體3711日月光ASE Technology半導體2303聯電UMC半導體2317鴻海Hon Hai / Foxconn電子2308台達電Delta Electronics電子2382廣達Quanta Computer電子2357華碩ASUS電子2353宏碁Acer電子2881富邦金Fubon Financial金融2882國泰金Cathay Financial金融2891中信金CTBC Financial金融2886兆豐金Mega Financial金融2892第一金First Financial金融2412中華電Chunghwa Telecom電信3045台灣大Taiwan Mobile電信1301台塑Formosa Plastics材料1303南亞Nan Ya Plastics材料6505台塑化FPCC材料補充說明從源碼的MAJOR_TW_STOCKS參考表taiwan_market_connector.py看內建清單還收錄了「力積電6770, PSMC, Semiconductors」該筆未列於 README 表格中但同樣可透過search_tw_stocks搜尋到清單依產業分類註記為 Semiconductors / Electronics / Financials / Telecom / Materials 五大類。上櫃股票TPEX 證券櫃檯買賣中心使用格式代碼.TWO在 Yahoo Finance 中上櫃股票請傳入marketTPEX參數。常見上櫃股代碼名稱說明6669緯穎伺服器 ODM6488環球晶矽晶圓3443創意IC 設計服務取得完整上市股票清單除了上述參考表連接器還提供動態抓取 TWSE 官方完整清單的能力from taiwan_market_connector import get_tw_all_listed_stocks all_stocks get_tw_all_listed_stocks() print(f共 {len(all_stocks)} 檔上市股票) print(all_stocks.head(10))從源碼看該函式請求 TWSE OpenAPI 的/company/BWIBBU_d端點直接以pd.DataFrame回傳原始欄位含code、name、isin、listing_date、market_type等可用於擴充內建參考表或做全市場掃描。資料來源說明資料來源用途API 金鑰備註Yahoo Financeyfinance歷史 OHLCV、公司資訊不需要免費有速率限制TWSE OpenAPI市場概況、強勢股、完整上市清單不需要官方資料每 5 秒 3 次請求限制twstock選用即時報價、技術分析輔助不需要需另行pip install twstock注意事項TWSE OpenAPI 有請求速率限制每 5 秒 3 次本連接器已內建等待邏輯。Yahoo Finance 的資料可能有 15–20 分鐘延遲非 Premium 用戶。盤中即時資料建議透過 TWSE OpenAPI 取得。源碼層的限速實作從源碼看連接器對 TWSE OpenAPI 的限速處理是透過模組級全域變數實現的taiwan_market_connector.py_LAST_TWSE_CALL: float 0.0 _TWSE_MIN_INTERVAL 1.8 # seconds between calls to be safe_twse_get()輔助函式在每次請求前計算距離上次呼叫的間隔若不足 1.8 秒則time.sleep()補足並以 10 秒 timeout 保護請求、resp.raise_for_status()確保非 2xx 回應直接拋出例外。也就是說即使文件載明的官方上限是「每 5 秒 3 次」連接器實際採用了更保守的約 1.8 秒/次節奏確保合規並降低被限流的風險。所有 TWSE OpenAPI 相關函式市場概況、強勢股、完整清單都共用這條限速路徑。常見問題 FAQQ1執行時出現No data returned for 2330.TW怎麼辦可能原因股票代碼或市場類型TWSE/TPEX錯誤查詢日期範圍包含假日或超出資料範圍Yahoo Finance 暫時性網路問題解決方式# 確認代碼正確上市用 .TW上櫃用 .TWO import yfinance as yf ticker yf.Ticker(2330.TW) print(ticker.history(period5d)) # 直接測試Q2TWSE OpenAPI 回傳空值TWSE OpenAPI 僅在台灣股市交易時間週一至週五 09:00–13:30 台灣時間有即時資料。非交易時段請求會回傳最新收盤資料或空陣列。Q3為什麼不直接支援 Polygon 或 Bloomberg 的台股資料Polygon 的台股資料需要付費方案。TWSE OpenAPI Yahoo Finance 的組合對於個人研究與學習已足夠且完全免費。Q4可以查詢 ETF 嗎可以台灣 ETF 使用相同格式# 元大台灣500050 df get_tw_stock_history(0050, marketTWSE) # 元大高股息0056 df get_tw_stock_history(0056, marketTWSE)Q5如何取得完整的上市股票清單from taiwan_market_connector import get_tw_all_listed_stocks all_stocks get_tw_all_listed_stocks() print(f共 {len(all_stocks)} 檔上市股票) print(all_stocks.head(10))連接器元資料與整合點若要在自己的程式或終端內部框架中掛載此連接器可直接引用檔案底部的CONNECTOR_METAtaiwan_market_connector.pyCONNECTOR_META { id: taiwan_twse, name: Taiwan Stock Exchange (TWSE / TPEX), region: TW, currency: TWD, description: ..., functions: { history: get_tw_stock_history, info: get_tw_stock_info, index: get_tw_index, market_overview: get_tw_market_overview, top_movers: get_tw_top_movers, search: search_tw_stocks, all_listed: get_tw_all_listed_stocks, }, dependencies: [yfinance, requests, pandas], }由此可見連接器暴露了七個統一入口覆蓋「歷史行情、公司資訊、指數、市場概況、強勢股、搜尋、全清單」七種查詢語意任何消費方能以一致的字典結構完成註冊與呼叫。如何貢獻歡迎任何形式的貢獻貢獻流程# 1. Fork 本 Repository點擊 GitHub 右上角 Fork 按鈕 # 2. Clone 你的 Fork git clone https://github.com/你的帳號/FinceptTerminal.git cd FinceptTerminal # 3. 建立新的功能分支 git checkout -b feature/你的功能名稱 # 4. 進行修改... # 5. 提交變更 git add . git commit -m feat: 加入某某功能的說明 # 6. 推送到你的 Fork git push origin feature/你的功能名稱 # 7. 在 GitHub 上開啟 Pull Request目前期待的貢獻項目新增更多上櫃股票到參考清單加入台灣 ETF 完整清單支援期貨/選擇權資料TAIFEX 臺灣期貨交易所加入英文版 READMEREADME.md補充更多技術指標範例程式碼風格所有函式需有 docstring中英文均可——連接器現有函式均已遵循此規範可作為範本新增功能請附上測試範例檔案頂部須保留原始授權聲明總結本文完整介紹了 FinceptTerminal 台灣股市資料連接器的設計與用法它是一個純 Python 層的輕量擴充透過 Yahoo Finance 與 TWSE 官方 OpenAPI 兩條免費資料通道為終端補上「上市/上櫃個股歷史行情、公司基本面、大盤指數、市場概況、強勢股排行、股票搜尋、完整清單」七類能力並內建了保守的限速邏輯與可一鍵執行的自我測試。無論你是想要在終端介面中直接查詢台股的使用者還是打算進一步擴充台灣市場資料如 TAIFEX 期貨選擇權、ETF 清單的開發者都可以從這份指南與連接器源碼出發快速上手。【免费下载链接】FinceptTerminalFinceptTerminal is a modern finance application offering advanced market analytics, investment research, and economic data tools, designed for interactive exploration and>项目地址: https://gitcode.com/GitHub_Trending/fi/FinceptTerminal创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
