所有專案
04QuantLab量化交易平台2026上線中・僅限本人登入

從研究到下單的台股量化平台。

從資料更新、選股、策略回測、參數優化、機器學習到收盤後的下單清單,都在同一個平台完成。Claude 協助設計與檢討策略,但只能存取樣本內資料,樣本外驗證一律由程式執行。

個內建策略,其中 22 個附學術文獻
28
個內建策略,其中 22 個附學術文獻
個因子的 IC 與分組分析
20
個因子的 IC 與分組分析
個 API 路由
75
個 API 路由
平日收盤後自動計算訊號並推播
18:30
平日收盤後自動計算訊號並推播
個股研究頁:K 線、月營收、三大法人與 AI 研究報告

01

要解決的問題

  • 零訂閱成本

    需要可自行部署、沒有月費,資料與程式都由自己掌握的研究環境。

  • 券商未提供散戶 API

    國泰證券未開放散戶 API,無法由程式下單,因此採半自動流程:計算清單、推播通知、手動下單。

  • 回測偏誤

    回測容易誤用當時尚未公布的資料(前視偏誤),或因過度調參而過度擬合。

  • 雲端主機遭 Yahoo 限流

    雲端主機向 Yahoo 取資料會被限流,因此還原股價改以 FinMind 原始資料自行計算。

  • 邊做邊學

    身為量化新手,需要能查詢資料、執行回測並解釋結果的 AI 家教。

02

系統架構

前端 Next.js 部署於公開網域,透過 /api 代理至內網的 FastAPI,資料存放於 DuckDB。背景工作與排程都在 API 程序內執行,避免 DuckDB 被多個程序同時鎖定。

資料來源FinMind・證交所・櫃買・FRED・Yahoo 備援
Claude Code CLI只開放本機 MCP 工具
瀏覽器Google 登入・白名單
Next.js 16/api 代理(不受 30 秒逾時限制)
FastAPI回測・優化・ML・AI
DuckDB19 張表・/data 磁碟
排程週一到週五 18:30
Discord訊號與警示推播

← 左右滑動看完整流程 →

使用技術

前端
Next.jsReactTailwind CSSTanStack Querylightweight-chartsECharts
後端與資料
PythonFastAPIDuckDBpandasNumPy
量化與機器學習
OptunaLightGBM
AI
Claude CodeMCPAnthropic API
部署
DockerZeaburDiscord

03

主要功能

  • 個股研究

    K 線與技術指標、月營收、三大法人、本益比河流圖與 AI 研究報告。

  • 選股器

    以規則條件篩選股票池或全體上市櫃,並可一鍵轉為策略或警示。

  • 策略工作室

    28 個內建策略與視覺化規則建構器,也能以自然語言請 Claude 設計。

  • 回測報告

    權益曲線對照 0050、回撤、月報酬熱力圖、滾動夏普、買賣點標記與 AI 檢討。

  • 參數優化

    Optuna 樣本內尋優、樣本外驗證、前 10 名穩健度分析與 Deflated Sharpe。

  • 因子與機器學習

    20 個因子的 IC 與分組報酬;LightGBM 滾動訓練與特徵重要度。

  • AI 研究員與家教

    Claude 多輪提出並回測策略;家教可查詢資料、執行回測並解讀截圖。

  • 截圖問 AI

    在任何頁面按住 Alt 點選卡片、表格或圖表,即可在側欄詢問 Claude。

  • 每日訊號與帳戶

    收盤後依資金配置產生下單清單,整股與零股分列,並記錄實際成交。

  • 上線追蹤與警示

    實盤表現落後回測或回撤過深時推播通知;條件警示只在出現新符合標的時觸發。

04

技術細節

  1. 04.1

    避免前視偏誤:資料以公布日為準

    回測中的每筆資料都對齊實際可取得的日期,而非資料所屬的期間。

    • 月營收對齊 FinMind 的實際公布時間,缺值時以次月 10 日為準。
    • 季報自法定期限隔日起才納入:Q1 5/15、Q2 8/14、Q3 11/14、年報 3/31。
    • FRED 月資料依公布延遲平移,晚於當日公布者一律排除。
    3 月營收
    未公布
    Q1 季報
    未公布
    FRED 月資料
    未公布
    回測日
    1 月2 月3 月4 月5 月6 月
    • 3 月營收:次月 10 日(無公布時間時)
    • Q1 季報:法定期限 5/15 的隔天
    • FRED 月資料:依公布延遲平移

    灰色是資料所屬期間;回測日走過「可用」那一格之前,這筆資料都不存在。

  2. 04.2

    收盤決策,次日開盤成交

    回測引擎依台股的實際交易方式模擬,交易成本採台灣實際費率。

    • 手續費 0.1425% × 券商折扣、滑價預設 0.1%、賣出證交稅 0.3%(ETF 為 0.1%)。
    • 只交易權重有變動的部位;無法交易的日子順延下單;現金不足時買單等比例縮減,不融資、不放空。
    1. 01收盤 t策略算出目標權重
    2. 02開盤 t+1只交易權重變動的部位
    3. 03先賣手續費+證交稅+滑價
    4. 04再買現金不足時等比例縮減
    5. 05收盤結算權益、回撤、夏普
  3. 04.3

    AI 不接觸樣本外資料

    AI 研究員可以反覆提出並回測策略,但只能使用樣本內資料;候選策略由程式執行樣本外驗證,並以 Deflated Sharpe 校正多次嘗試帶來的運氣成分。

    • Claude 透過內部 MCP 工具回測,預設 12 次嘗試,最多提交 3 個候選策略。
    • AI 產出的是經 JSON Schema 驗證的規則,而非程式碼。

    樣本內:Claude 看得到

    嘗試 1/12

    透過內部 MCP 工具回測(lab_backtest)

    AI 碰不到

    樣本外:只有程式

    • 候選 1等待
    • 候選 2等待
    • 候選 3等待

    Deflated Sharpe 扣掉多次嘗試的運氣

    長條只是示意,沒有對應真實數字。

05

系統畫面

回測報告:績效指標與權益曲線對 0050
回測報告:績效指標與權益曲線對 0050
AI 研究員:研究結論、所有嘗試與樣本內對樣本外夏普
AI 研究員:研究結論、所有嘗試與樣本內對樣本外夏普
參數優化:每次嘗試的散佈圖與參數熱力圖
參數優化:每次嘗試的散佈圖與參數熱力圖