
想用 AI Agent 幫你做台股量化交易,工具現在多到讓人選擇困難:Claude Code、Codex CLI、Cursor、Pi、Hermes、OpenClaw(俗稱「龍蝦」)都號稱能跑量化研究。好消息是,這些工具背後有一個共通點:它們都支援 Anthropic 的 Agent Skills 標準,而 FinLab 的台股能力就是一份符合該標準的 SKILL.md。換句話說,你只要安裝一次,同一份 skill 就能裝進上面任何一個工具,到處都能叫 AI 幫你抓台股資料、寫程式、跑回測。
這篇先用一張能力對照表幫你選工具,再用一個可以「叫任何一個 agent 幫你建」的代表性策略,把真實回測攤開來看。這個策略是品質、動能、低波三個因子的複合,在本文設定、2018 到 2026 這段期間,它的年化報酬(CAGR) 18.6%,輸給 0050 含息的 25.0%;但它的月索提諾比率 1.96 略高於 0050 的 1.92,最大回撤只有 -26.4%,遠淺於 0050 的 -34.0%。它的價值在風險調整後,用較淺的回撤換取接近的長期報酬,不是在絕對報酬上贏過大盤。
| 指標 | 三因子複合(本文,前 25 檔) | 單因子低本益淨值比 | 0050 含息 |
|---|---|---|---|
| 年化報酬(CAGR) | 18.6% | 11.4% | 25.0% |
| 最大回撤(MDD) | -26.4% | -35.3% | -34.0% |
| 日夏普比率 | 1.26 | 0.66 | 1.22 |
| 月索提諾比率 | 1.96 | 1.00 | 1.92 |
| 總報酬 | +315% | +147% | +559% |
| 月底平均持股數 | 25 檔 | 25 檔 | 1 檔 ETF |
口徑:2018-01 到 2026-06(資料快照 2026-06-09),策略含 finlab 預設交易成本,0050 為還原價含息買進持有,純指數算術不扣成本(詳見文末回測方法)。重點先講清楚:三因子複合的 CAGR 輸 0050,贏的是日夏普(1.26 對 1.22)、月索提諾(1.96 對 1.92)與最大回撤(-26.4% 對 -34.0%)。同時,三因子複合的每一項都明顯優於只看一個估值因子的單因子做法,這是「多因子複合勝過單因子」最直接的證據。
整個過程你不需要自己寫程式:策略邏輯用中文講給 AI 聽,程式由 AI 產生、數據由 finlab 套件實跑。後面會公開貼給 AI 的提示詞、AI 產生的核心程式碼、四組持股數敏感度實測,以及可下載的完整重現腳本。先從「該選哪個工具」開始。
能跑量化研究的 AI Agent 工具,差在哪裡?
這些工具都能讓 AI 動手執行程式、抓資料、跑回測,屬於量化研究用的 AI Agent,而不是只會一問一答的聊天機器人。它們的差異主要在「跑在哪裡、長什麼樣、要不要付 token 費用、適合什麼程度的使用者」。下表把目前主流、可以接 finlab skill 的工具做能力對照:
| 工具 | 操作介面 | 可接本地模型 | 排程/記憶 | 新手友善 | token 成本 | 一句話定位 |
|---|---|---|---|---|---|---|
| Claude Code | 終端機 | 否(雲端 Claude) | 部分(專案記憶) | 中 | 訂閱或 API 計費 | Agent Skills 原生支援,量化研究主力 |
| Codex CLI | 終端機 | 否(雲端 GPT) | 部分 | 中 | 訂閱或 API 計費 | 工程重構強,適合改大型程式 |
| Cursor | 編輯器 GUI | 部分 | 專案記憶 | 中高 | 訂閱 | 邊看程式邊對話,適合想學程式的人 |
| Pi | 終端機/GUI | 是(可接本地) | 是 | 中 | 開源,可省雲端費 | 開源、可接本地模型,重隱私者首選 |
| Hermes | GUI/背景服務 | 部分 | 強(長期記憶+排程) | 中 | 視底層模型 | 記憶與排程,適合每月自動重跑 |
| OpenClaw(龍蝦) | 聊天視窗 | 部分 | 部分 | 高 | 視底層模型 | 聊天視窗操作、最適合新手入門 |
幾個關鍵差異值得展開:
- Claude Code 是 Agent Skills 標準的原生環境,安裝 finlab skill 後 AI 會直接讀到台股資料能力,跑在終端機、適合已經習慣命令列的人。
- Codex CLI 的工程能力特別適合「策略寫到一半要大改架構」的場景,重構與多檔案修改是它的強項;做量化選股時和 Claude Code 體驗接近。
- Pi 是開源工具,最大特點是可以接本地模型。如果你不想把資料送上雲端,或想用自己的 GPU 跑模型省 token 費用,Pi 是少數能做到的選項。
- Hermes 主打長期記憶與排程:它能記住你上次調過的策略參數,也能設定「每月初自動重跑一次選股」。對想把研究流程半自動化的人很實用,實際做法見 Hermes Agent 每月自動重跑與樣本外驗證。
- OpenClaw(龍蝦) 用聊天視窗操作,是這幾個裡最適合新手的:不必開終端機,像在聊天軟體裡對話就能讓 AI 跑程式。台大李宏毅教授也曾在 AI agent 教學裡把它當作示範案例,門檻相對低。
如果你完全不想裝任何工具,還有兩條無程式碼路徑:用 ChatGPT 或 Claude app 對話,搭配瀏覽器版的 FinLab Studio 輸入選股條件直接回測。Studio 不需要安裝、不吃 token,適合先試水溫。
怎麼選? 完全新手、不想碰終端機,從 OpenClaw 龍蝦或 FinLab Studio 開始;習慣命令列、要把量化研究當主力,用 Claude Code 或 Codex CLI;在意資料隱私、想接本地模型,選 Pi;想要每月自動重跑、長期累積策略記憶,選 Hermes。工具不同,但下一段要裝的 finlab skill 是同一份。
把 finlab 裝進你的 AI Agent:一份 skill 到處能用
finlab 的台股能力是一份遵循 Anthropic Agent Skills 標準的 SKILL.md。這個設計的好處是:你不用為每個工具學一套不同的接法,同一份 skill 裝進 Claude Code、Codex CLI、Cursor、Pi、Hermes、OpenClaw 都能用。安裝指令(所有支援 Agent Skills 的工具通用):
npx skills add https://github.com/koreal6803/finlab-ai --skill finlab
裝好之後,AI 就具備抓台股資料、算因子、跑含成本回測的能力。如果你還在用網頁版 AI,建議改用桌面工具:ChatGPT 使用者用 Codex app,Claude 使用者用 Claude cowork,這樣 AI 才能真的執行程式。零安裝路徑則是直接開 FinLab Studio。完整的工具安裝說明集中在 AI skill 安裝頁。
最省事的開始方式,是把下面這句話貼給你的 AI,讓它依流程完成設定並建好本文的策略:
用 AI 開始 FinLab
把這句話交給你的AI,它會帶你完成設定並做出第一個策略。
告訴你的AI:
幫我設定 FinLab,建一個品質動能低波三因子台股策略,請讀:https://finlab.finance/setup?relatedUrl=/blog/ai-agent-quant-trading-tools
首次取台股資料時,finlab 套件會自動引導你完成登入,照套件指示操作即可,不需要手動貼任何 token。
招牌提示詞:一句話叫 AI 建三因子策略
下面這段提示詞,貼給上面任何一個裝好 finlab skill 的工具都能跑。它把「品質、動能、低波」三個因子的規格、選股數、加權方式、再平衡頻率、對照基準一次講清楚,是讓 AI 直接產出可回測程式碼的完整任務描述(複製即用):
幫我用 finlab 建一個台股「品質+動能+低波」三因子策略:
ROE、120 日動能、60 日波動度三個因子各自在池內做百分位排名後相加
(低波取反向排名,波動越低分數越高),
只買近 20 日平均成交金額大於 1,000 萬的股票,
取總分前 25 檔、依分數平方加權、每月再平衡,
用 finlab 資料回測,並跟 0050 含息買進持有比較,
給我年化報酬、最大回撤、日夏普與月索提諾。
把它貼給 AI 後,一輪典型的對話像這樣:
💬 你問:
幫我用 finlab 建一個台股「品質+動能+低波」三因子策略:ROE、120 日動能、60 日波動度三個因子各自在池內做百分位排名後相加(低波取反向排名),只買近 20 日平均成交金額大於 1,000 萬的股票,取前 25 檔、分數平方加權、每月再平衡,並回測對照 0050 含息。
🤖 AI 回覆:
已完成回測。回測區間 2018-01 到 2026-06,含手續費 0.1425% 與賣出證交稅 0.3%:
- 策略年化報酬 18.6%,最大回撤 -26.4%,總報酬 +315%
- 日夏普 1.26、日索提諾 1.41、月索提諾 1.96
- 0050 含息年化報酬 25.0%,最大回撤 -34.0%
- 月底持股穩定在 25 檔,分數平方加權讓排名最高的股票拿到較大權重
策略的年化報酬低於 0050,但最大回撤淺了約 7.6 個百分點,月索提諾與日夏普都略高,屬於風險調整後較佳、波動較低的版本。
AI 產生的核心程式碼如下,刻意一行一個動作、附上說明,讓非工程背景的讀者也能逐步看懂它在做什麼:
顯示程式碼
import finlab
from finlab import data
from finlab.backtest import sim
# 首次執行會自動引導登入,不需手動貼 token
finlab.login()
# 1) 載入資料
close = data.get("price:收盤價")
volume = data.get("price:成交股數")
roe = data.get("fundamental_features:ROE稅後").index_str_to_date()
roe = roe.reindex(close.index, method="ffill") # 季財報對齊公布時點後補到日頻
# 2) 流動性過濾:近 20 日平均成交金額大於 1,000 萬
amount = (close * volume).rolling(20).mean()
liquid = (amount > 10_000_000) & close.notna()
# 3) 三個因子
quality = roe # 品質:ROE,越高越好
momentum = close.pct_change(120) # 動能:近 120 個交易日報酬,越高越好
volatility = close.pct_change().rolling(60).std() # 波動:近 60 日報酬標準差,越低越好
# 4) 池內百分位排名後相加(低波取反向排名,波動低分數高)
rank_quality = quality.where(liquid).rank(axis=1, pct=True)
rank_momentum = momentum.where(liquid).rank(axis=1, pct=True)
rank_low_vol = volatility.where(liquid).rank(axis=1, pct=True, ascending=False)
score = rank_quality + rank_momentum + rank_low_vol
# 5) 取總分前 25 名,依分數平方加權,每月再平衡
top25 = score.rank(axis=1, ascending=False) <= 25
weight = (score[top25].fillna(0)) ** 2
weight = weight.div(weight.sum(axis=1), axis=0)
report = sim(weight, resample="M", name="品質動能低波三因子")
report.display()完整互動式回測報告(月報酬熱力圖、權益曲線、年度績效都在裡面),可以直接在這裡操作:
單因子先試水溫:為什麼只看一個估值因子不夠
在把三個因子合在一起之前,先看一個常見的起手式:只用一個估值因子選股。很多人第一次做量化選股,會直覺地「找便宜的股票」,例如只取低本益淨值比的前 25 檔。我們把這個單因子做法跑出來當對照組:
| 指標 | 單因子低本益淨值比 | 三因子複合 | 0050 含息 |
|---|---|---|---|
| 年化報酬 | 11.4% | 18.6% | 25.0% |
| 最大回撤 | -35.3% | -26.4% | -34.0% |
| 日夏普 | 0.66 | 1.26 | 1.22 |
| 月索提諾 | 1.00 | 1.96 | 1.92 |
| 總報酬 | +147% | +315% | +559% |
單因子做法在 2018 到 2026 這段期間,年化只有 11.4%,最大回撤卻深達 -35.3%,是三個欄位裡風險調整後最差的。問題在於單一估值因子有明顯的盲點:便宜的股票常常便宜得有理由(成長停滯、產業逆風),只看估值很容易買進一籃子「便宜但走不動」的股票,而且因子一旦失靈就沒有別的訊號補位。
把品質、動能、低波三個低相關的訊號用排名相加合成後,情況改善很多:年化從 11.4% 跳到 18.6%,最大回撤從 -35.3% 收斂到 -26.4%,日夏普與月索提諾全面提升。三個因子裡,低波因子是壓低回撤的主力,品質與動能負責提供報酬來源。這就是多因子複合的核心價值:單一因子失靈時其他因子補位,整體比押注任何一個條件都穩健。類似的多因子做法在多因子選股能不能贏 0050 的實測有另一組獨立驗證。
風險報酬的全貌放在同一張圖看更清楚,三個組合在「年化報酬對最大回撤」與夏普、索提諾上的相對位置如下:

三個因子背後的學術研究
這三個因子不是憑空挑的,各自對應行之有年的實證發現:
- 動能:Jegadeesh & Titman (1993) 在橫斷面上發現過去 3 到 12 個月的贏家股票,後續數月平均持續跑贏輸家,動能因子從此成為實證金融最常被複製的異常報酬之一。本文用 120 個交易日(約半年)報酬當動能指標。
- 品質(獲利能力):Novy-Marx (2013) 證明獲利能力強的公司即使估值不便宜,長期報酬仍系統性較高。他用的是毛利對資產,本文用 ROE,同屬獲利能力家族但口徑不同,效果不能直接劃等號。
- 低波動:Ang, Hodrick, Xing & Zhang (2006) 記錄了「低波動異常」,過去報酬波動度較高的股票,後續報酬反而偏低,這違反「高風險高報酬」的直覺。本文用近 60 日報酬標準差衡量波動,取反向排名,讓波動低的股票拿到高分。
把這三個低相關的訊號合成,正是上一段年化從 11.4% 提升到 18.6%、回撤從 -35.3% 收斂到 -26.4% 的來源。想補齊量化交易的整體脈絡,可以先讀量化交易完整指南,想看更多現成的台股選股提示詞,可參考 AI 選股提示詞 30 條與真實回測。
回測方法與限制
這些數字是怎麼算出來的,逐項交代:
| 項目 | 本文設定 |
|---|---|
| 回測區間 | 2018-01 到 2026-06,共 8.4 年(資料快照日 2026-06-09) |
| 交易成本 | finlab sim() 台股預設值:手續費 0.1425%(未打折)、賣出證交稅 0.3%,已內扣 |
| 滑價 | 未另行假設;實際衝擊取決於資金規模與個股成交量,本文未估算策略容量 |
| 股票池 | 全上市櫃,finlab 資料含已下市股票,無生存者偏誤;未刻意排除金融股、KY 股與 ETF |
| 流動性過濾 | 近 20 日平均成交金額大於 1,000 萬 |
| 前視偏差 | ROE 季財報以 index_str_to_date 對齊公布時點後補到日頻;動能與波動只用已實現的收盤價報酬 |
| 權重 | 分數平方加權(基準為等權),前 25 檔,每月再平衡 |
| 周轉率 | 每月再平衡換股,高周轉成本已內扣在 18.6% 的績效裡,本文未單列周轉率數值 |
| 樣本內外 | 全段樣本內(in-sample),未做樣本外測試;持股數敏感度是穩健性參考,不是樣本外證據 |
| 0050 基準 | etl:adj_close 還原價含息買進持有,純指數算術、不含交易成本;基準不扣成本而策略扣成本,比較口徑對策略偏保守 |
把回撤攤在時間軸上看,三因子複合在 2018 到 2026 的最深回撤是 -26.4%,控制在比 0050 的 -34.0% 更淺的範圍:

持股數敏感度:結論對參數不敏感
前 25 檔這個數字是不是剛好挑到漂亮參數?我們把持股數從前 20、前 25、前 30 一路測到前 40,其餘設定不變,結果年化報酬落在 17.0% 到 18.6%,最大回撤落在 -25.3% 到 -27.0%,月索提諾落在 1.75 到 1.96,全部都在同一個區間裡:

| 持股數 | 年化報酬 | 最大回撤 | 日夏普 | 月索提諾 |
|---|---|---|---|---|
| 前 20 | 17.0% | -25.3% | 1.16 | 1.81 |
| 前 25(本文採用) | 18.6% | -26.4% | 1.26 | 1.96 |
| 前 30 | 17.1% | -27.0% | 1.19 | 1.77 |
| 前 40 | 17.1% | -26.8% | 1.19 | 1.75 |
兩個觀察。第一,持股數從 20 拉到 40,年化只在 17% 到 18.6% 之間微調,最大回撤也只在 -25% 到 -27% 之間移動,代表這個策略的結論不是靠某一個持股數撐起來的,換個數字仍然成立。第二,前 25 檔在這幾組裡風險調整後表現最好(日夏普 1.26、月索提諾 1.96 都是最高),但和前 20、前 30 的差距很小,所以採用前 25 是合理選擇,而不是事後挑出來的最佳格。敏感度表的正確用法是確認「結論對參數不敏感」,而不是挑出最漂亮的那一格,Bailey, Borwein, López de Prado & Zhu (2014) 指出,反覆挑參數會讓回測過擬合、樣本外績效系統性低於回測值。
適合誰?不適合誰?
這個策略適合: 能接受年化輸給 0050、但想要更平穩的權益曲線與較淺回撤的人;願意每月花幾分鐘再平衡的人;以及想用一個結構清楚的多因子框架當研究起點、之後自己加減因子的人。三因子複合的最大回撤 -26.4% 仍代表 100 萬可能一度縮水到約 74 萬,但比 0050 的腰斬風險溫和。
這個策略不適合: 只看絕對報酬、想要打敗大盤年化的人(在本文設定下,它的 CAGR 確實輸 0050);完全無法接受任何回撤的人;以及想要全自動下單、不打算自己檢查策略的人。本文的 AI Agent 工作在研究階段,幫你驗證與回測;要不要、何時把它接到券商 API 下單,由你自己判斷,也需要額外處理部位控管、實單滑價與錯單保護。
和一般看盤、下單軟體相比,這套流程的差別在於:看盤軟體偏向條件篩選與下單,量化選股系統要能處理資料、因子、含成本回測與可重現驗證。市面上六種主流台股回測軟體的完整比較(含 XQ、TradingView、MultiCharts),見台股回測工具怎麼選,與 XQ 的逐項對照另見比較頁。想看不寫程式、用 AI 對話完成完整實驗的範例,AI 量化交易實戰用三段對話示範了從直覺篩選到多因子排名的全過程。
常見問題
AI Agent 量化交易工具,新手該先用哪一個?
如果完全沒碰過終端機,從 OpenClaw 龍蝦或瀏覽器版 FinLab Studio 開始最輕鬆:龍蝦用聊天視窗操作,台大李宏毅教授也曾把它當 AI agent 教學案例;Studio 不需安裝、不吃 token,輸入條件就能回測。等熟悉流程後,再考慮轉到 Claude Code 或 Codex CLI 這類終端機工具做更深入的研究。
同一份 finlab skill 真的能裝進所有這些工具嗎?
是的,因為 finlab 的台股能力是一份符合 Anthropic Agent Skills 標準的 SKILL.md。Claude Code、Codex CLI、Cursor、Pi、Hermes、OpenClaw 都支援這個標準,所以安裝指令 npx skills add https://github.com/koreal6803/finlab-ai --skill finlab 在這些工具裡通用,裝一次就能在不同工具間切換使用,不用為每個工具重學一套接法。
Claude Code 和 Codex 做量化研究有差別嗎?
做量化選股與回測時,兩者體驗很接近,都能讓 AI 抓 finlab 資料、寫 Python、跑含成本回測。差別在於 Codex 的工程重構能力較強,適合「策略寫到一半要大改架構」的場景;Claude Code 是 Agent Skills 的原生環境,安裝 skill 後 AI 能直接讀到台股能力。對純粹的量化研究來說,決定成敗的是資料與回測引擎,模型工具只是輔助。
Pi 可以接本地模型,這對量化研究有什麼好處?
兩個好處:一是資料隱私,你的策略想法與資料不必送上雲端;二是成本,用自己的硬體跑模型可以省下雲端 token 費用,適合需要反覆迭代、跑很多輪的研究。代價是本地模型的能力通常不如最新的雲端模型,產出的程式碼可能要多檢查幾次。
不會寫 Python 也能用這些工具做量化交易嗎?
可以。本文示範的就是用中文把策略規格講給 AI 聽,程式由 AI 產生、回測由 finlab 實跑。不過看得懂基本程式對你有利,因為你能檢查 AI 有沒有用到未來資料、交易成本有沒有扣。想補底子的話,Python 量化交易教學會帶你從設定一路到第一個台股回測。
為什麼三因子的年化輸給 0050,這個策略還值得做?
因為「值不值得」要看風險調整後的表現,而不是只看年化。在本文設定、2018 到 2026 這段期間,三因子複合的年化 18.6% 確實低於 0050 的 25.0%,但它的最大回撤只有 -26.4%(0050 是 -34.0%),日夏普 1.26、月索提諾 1.96 都略高於 0050。對承受不了大盤深度回撤的人來說,用較淺的回撤換取接近的長期報酬,可能比追求最高年化更實際。
這些 AI Agent 工具可以自動幫我下單嗎?
技術上可以串券商 API,但本文的 AI Agent 工作在研究階段,不建議在策略沒有足夠長的實單觀察前就全自動化。比較穩健的順序是:回測驗證、小部位手動跟單數月、確認實際成交與回測差距可接受,再考慮自動化。其中 Hermes 的排程與記憶功能適合用來「每月自動重跑選股」,但下單與風控仍應由你把關。辨識 AI 量化話術真偽的方法,整理在 AI 量化交易詐騙怎麼辨識。
用 AI Agent 跑回測會吃很多 token 嗎?
要看工具。Claude Code、Codex CLI 走雲端模型,較複雜的研究會累積 token 用量,多數採訂閱或 API 計費;Pi 可以接本地模型,省去雲端 token 費用;OpenClaw 與 Hermes 的成本則取決於它們底層接的模型。如果只是想先試一個策略,用零成本的 FinLab Studio 或免費額度跑通流程,再決定要不要長期使用付費工具,是比較省的做法。
下載與重現
- strategy.py:三因子複合策略完整原始碼,可直接執行取得最新選股清單
- data.csv:策略與基準淨值曲線的每日數據
- metrics.json:全部指標的機器可讀快照
- 互動式回測報告:三因子複合策略
延伸閱讀:想看 AI 如何把單一句話的策略想法逐步迭代成有效規格,可參考 AI 提示詞回測策略;想了解讓 AI 自動挖掘有效因子的做法,見 AI 因子探勘 Agent;用 Qlib 搭配 finlab 做 AI 選股的另一條路徑,見 Qlib + FinLab AI 選股。
投資警語:本文僅供教學參考,不構成投資建議。文中全部回測數據(年化 18.6%、最大回撤 -26.4% 等)為 2018-01 至 2026-06 的歷史模擬,已含 finlab 預設交易成本,但未含滑價與容量限制;過去績效不代表未來表現。本策略最大回撤 -26.4%,代表 100 萬可能一度縮水至約 74 萬,請依個人風險承受度審慎評估,僅使用虧損不影響生活的閒置資金。
最後更新:2026-06|回測區間:2018-01 ~ 2026-06(資料快照 2026-06-09)|作者:FinLab 量化研究團隊(經量化研究員審閱)
FinLab AI
想建立自己的策略?
用自然語言描述你的選股想法,AI 自動驗證、回測、給你答案
免費開始