Skip to main content
台股研究 約 15 分鐘閱讀

AI Agent 量化交易工具比較:Claude Code、Codex、Pi、Hermes、龍蝦怎麼選

AI Agent 量化交易工具該選哪一個?這篇把 Claude Code、Codex CLI、Pi、Hermes、OpenClaw 龍蝦做能力對照,用同一份 finlab skill 跑品質動能低波三因子台股策略(年化 18.3%、最大回撤 -26.4%),並附三個 agent 各跑一個因子家族的實測對照。

三因子回撤-26.4% CAGR 18.3% Sharpe 1.23
This article is displayed in Chinese

AI Agent 量化交易工具用三因子台股策略、單因子低股價淨值比與 0050 含息的淨值曲線比較,2018 到 2026 年對數刻度

依本文重跑

執行這個策略

複製提示詞,讓 AI 依照上方證據的資料、條件與風險檢查重跑一次。

告訴你的AI:

幫我設定 FinLab,建一個品質動能低波三因子台股策略,請讀:https://finlab.finance/setup?relatedUrl=/blog/ai-agent-quant-trading-tools

免安裝,開啟 FinLab Studio

想用 AI Agent 幫你做台股量化交易,工具現在多到讓人選擇困難:Claude Code、Codex CLI、Cursor、Pi、Hermes、OpenClaw(俗稱「龍蝦」)都號稱能跑量化研究。這些工具背後有一個共通點:它們都支援 Anthropic 的 Agent Skills 標準,而 FinLab 的台股能力就是一份符合該標準的 SKILL.md。換句話說,你只要安裝一次,同一份 skill 就能裝進上面任何一個工具,到處都能叫 AI 幫你抓台股資料、寫程式、跑回測。

這篇先用一張能力對照表幫你選工具,再用一個可以「叫任何一個 agent 幫你建」的代表性策略,把真實回測攤開來看。這個策略是品質、動能、低波三個因子的複合,在本文設定、2018 到 2026 這段期間,它的年化報酬(CAGR) 18.3%,輸給 0050 含息的 24.3%;最大回撤 -26.4%,比 0050 的 -34.0% 淺 7.6 個百分點,年化波動 15.1% 也低於 0050 的 21.5%。日夏普 1.23、月索提諾 1.95 小幅高於 0050 的 1.16 與 1.92,但這兩項的領先只出現在本文採用的前 25 檔,換成前 20、30、40 檔就略低於 0050。它的價值在用較淺的回撤與較低的波動換取較低但仍可觀的長期報酬,並非在絕對報酬上贏過大盤。

指標 三因子複合(本文,前 25 檔) 單因子低股價淨值比 0050 含息
年化報酬(CAGR) 18.3% 13.5% 24.3%
最大回撤(MDD) -26.4% -35.2% -34.0%
年化波動 15.1% 20.1% 21.5%
日夏普比率 1.23 0.75 1.16
月索提諾比率 1.95 1.15 1.92
總報酬 +324% +196% +547%
月底平均持股數 25 檔 25 檔 1 檔 ETF

口徑:2018-01 到 2026-08(資料截至 2026-08-31,2026-10-11 重跑;策略 2018-01-31 首次建倉,0050 同日起算),策略含 finlab 預設交易成本,0050 為還原價含息買進持有,純指數算術不扣成本(詳見文末回測方法,2026-10 的基準更正也寫在那裡)。三因子複合的 CAGR 輸 0050,穩定勝出的是最大回撤(-26.4% 對 -34.0%)與年化波動(15.1% 對 21.5%),這兩項在持股數 20 到 40 檔的四組設定裡都比 0050 好;日夏普(1.23 對 1.16)與月索提諾(1.95 對 1.92)的小幅領先只在前 25 檔成立。與 2026-06 快照(資料截至 2026-06-09)相比,年化由 18.6% 變為 18.3%,日夏普由 1.26 變為 1.23;發佈後的前瞻區間(2026-06-22 到 08-31)策略 -2.9%、0050 -3.8%,樣本太短只作紀錄,逐日數據在文末 data.csv。同時,三因子複合的每一項指標都明顯優於只看一個估值因子的單因子做法。

整個過程你不需要自己寫程式:策略邏輯用中文講給 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(龍蝦) 聊天視窗 部分 部分 高 視底層模型 聊天視窗操作、最適合新手入門

表中 Codex 的產品面深度介紹(雲端 work tree、Automations 排程與一鍵 PR 工作流),另見Codex 如何改變軟體開發流程。

幾個關鍵差異值得展開:

  • 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 是同一份。

三個 agent 實測對照:同一份 skill,各自從 naive 做法迭代到什麼程度

我們實際用其中三個工具,各給一個不同的因子家族題目,從最直覺的 naive 做法開始,讓 agent 迭代改進。三場實驗共用同一份 finlab skill、同樣從 2018-01-31 起算、資料同樣截至 2026-08-31,並以同一天起算的 0050 含息當基準(年化 24.3%、日夏普 1.16、最大回撤 -34.0%、年化波動 21.5%),結果如下:

Agent 題目 naive 起點 迭代後版本 年化 日夏普 最大回撤
OpenClaw 龍蝦 高股息選股 只挑殖利率最高:年化 -4.2%、回撤 -56.9% 高股息+品質+動能+低波四因子(前 15 檔) 18.7% 1.31 -27.6%
Pi(本機跑) 獲利品質 只看營業利益率:年化 14.1%、回撤 -32.5% 獲利品質+動能+低波三因子(前 20 檔) 19.3% 1.31 -25.9%
Codex 多週期動能 等權動能:年化 12.7%、回撤 -53.0% 動能+品質+雙倍低波(限站上 200 日均線、波動率倒數加權,前 20 檔) 17.7% 1.11 -30.2%

(三場與上方的三因子策略在 2026-10-11 同一次執行重跑。龍蝦場與 Codex 場上一版的資料分別截至 2026-07-09 與 2026-06-09,這次延長到 2026-08-31;Codex 場 naive 的年化由上一版的 16.2% 降到 12.7%,主因是它在 2026-06-09 到 08-31 跌了 20.3%(同期 0050 +3.3%),只算到 2026-06-09 的同一段則與上一版完全相同。三場的 strategy.py、data.csv 與互動回測報告都可下載重現,見文末「下載與重現」。)

三場共同的結論:單因子的 naive 做法要嘛賠錢、要嘛風險調整後明顯落後(三場 naive 的日夏普分別是 -0.13、0.79、0.52),agent 加上品質與低波因子後,回撤全數壓到比 0050 淺,年化波動也都低於 0050(14.4%、14.9%、16.5% 對 21.5%),但年化都沒有贏過 0050 含息的 24.3%,日夏普也只有龍蝦與 Pi 兩場高於 0050 的 1.16。這些實驗展示的是 AI Agent 把研究流程跑完的能力(提出假設、跑回測、看到缺陷、迭代修正),而不是保證打敗大盤的聖杯;相對 naive 起點的改善是真的,選 agent 時看的是工作流程合不合手,不是哪家跑出來的數字比較漂亮。

把 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,讓它依流程完成設定並建好本文的策略:

首次取台股資料時,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-08,含手續費 0.1425% 與賣出證交稅 0.3%:

  • 策略年化報酬 18.3%,最大回撤 -26.4%,總報酬 +324%,年化波動 15.1%
  • 日夏普 1.23、日索提諾 1.38、月索提諾 1.95
  • 0050 含息(與策略同一天起算)年化報酬 24.3%,最大回撤 -34.0%,年化波動 21.5%
  • 月底持股穩定在 25 檔,分數平方加權讓排名最高的股票拿到較大權重

策略的年化報酬低於 0050,但最大回撤淺了約 7.6 個百分點、年化波動低了約 6.4 個百分點,日夏普與月索提諾小幅高於 0050,屬於波動較低的版本。

AI 產生的核心程式碼如下,刻意一行一個動作、附上說明,讓非工程背景的讀者也能逐步看懂它在做什麼:

Show Code
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)
weight = weight[weight.index >= "2018-01-01"]  # 與本文同一段起跑
 
report = sim(weight, resample="M", name="品質動能低波三因子")
report.display()

這段程式會用到最新資料,數字會隨行情與資料更新而變動;要逐格重現本文表格,用文末的 strategy.py,它釘住資料截止日 2026-08-31,並印出本文全部版本與同一天起算的 0050。

完整互動式回測報告(月報酬熱力圖、權益曲線、年度績效都在裡面),可以直接在這裡操作:

單因子先試水溫:為什麼只看一個估值因子不夠

在把三個因子合在一起之前,先看一個常見的起手式:只用一個估值因子選股。很多人第一次做量化選股,會直覺地「找便宜的股票」,例如只取股價淨值比最低的前 25 檔。我們把這個單因子做法跑出來當對照組:

指標 單因子低股價淨值比 三因子複合 0050 含息
年化報酬 13.5% 18.3% 24.3%
最大回撤 -35.2% -26.4% -34.0%
年化波動 20.1% 15.1% 21.5%
日夏普 0.75 1.23 1.16
月索提諾 1.15 1.95 1.92
總報酬 +196% +324% +547%

單因子做法在 2018 到 2026 這段期間,年化只有 13.5%,最大回撤卻深達 -35.2%,是三個欄位裡風險調整後最差的。問題在於單一估值因子有明顯的盲點:便宜的股票常常便宜得有理由(成長停滯、產業逆風),只看估值很容易買進一籃子「便宜但走不動」的股票,而且因子一旦失靈就沒有別的訊號補位。

把品質、動能、低波三個訊號用排名相加合成後,情況改善很多:年化從 13.5% 升到 18.3%,最大回撤從 -35.2% 收斂到 -26.4%,年化波動從 20.1% 降到 15.1%,日夏普與月索提諾全面提升。三個因子各自對應不同的報酬來源與風險特性(下一段的學術研究),單一因子失靈時其他因子可以補位,這是多因子複合的核心價值。本文沒有把 ROE、動能、低波三個成分逐一單獨回測,所以無法拆出各自對報酬與回撤的貢獻;這裡的對照組是一個不在複合裡的估值因子,只能說明複合比押注單一估值條件穩健。類似的多因子做法在多因子選股能不能贏 0050 的實測有另一組獨立驗證。

三個組合在年化報酬、日夏普與月索提諾上的相對位置如下(圖中的「naive 基準」就是單因子低股價淨值比):

三因子複合、單因子與 0050 含息的年化報酬、日夏普與月索提諾長條比較,三因子年化 18.3% 低於 0050 的 24.3%,日夏普 1.23 與月索提諾 1.95 小幅高於 0050

三個因子背後的學術研究

這三個因子不是憑空挑的,各自對應行之有年的實證發現:

  • 動能:Jegadeesh & Titman (1993) 在橫斷面上發現過去 3 到 12 個月的贏家股票,後續數月平均持續跑贏輸家,動能因子從此成為實證金融最常被複製的異常報酬之一。本文用 120 個交易日(約半年)報酬當動能指標。
  • 品質(獲利能力):Novy-Marx (2013) 證明獲利能力強的公司即使估值不便宜,長期報酬仍系統性較高。他用的是毛利對資產,本文用 ROE,同屬獲利能力家族但口徑不同,效果不能直接劃等號。
  • 低波動:Ang, Hodrick, Xing & Zhang (2006) 記錄了「低波動異常」,過去報酬波動度較高的股票,後續報酬反而偏低,這違反「高風險高報酬」的直覺。他們的核心發現是用特質波動(扣掉 Fama-French 三因子後的殘差波動)衡量;本文用近 60 日報酬的總標準差衡量波動,口徑較粗,取反向排名,讓波動低的股票拿到高分。

從單一估值因子換成這三個訊號的複合,年化從 13.5% 提升到 18.3%、回撤從 -35.2% 收斂到 -26.4%。想補齊量化交易的整體脈絡,可以先讀量化交易完整指南;想把 AI 產生的策略接到排程與自動化流程,見程式交易完整指南;想看更多現成的台股選股提示詞,可參考 AI 選股提示詞 30 條與真實回測。

回測方法與限制

這些數字是怎麼算出來的,逐項交代:

項目 本文設定
回測區間 2018-01 到 2026-08,約 8.6 年(策略 2018-01-31 首次建倉;資料截至 2026-08-31,2026-10-11 以 finlab 2.2.10 單次完整重跑,本文表格、圖表、互動報告與下載檔都來自這一次執行)
交易成本 finlab sim() 台股預設值:手續費 0.1425%(未打折)、賣出證交稅 0.3%,已內扣
滑價 未另行假設;實際衝擊取決於資金規模與個股成交量,本文未估算策略容量
股票池 全上市櫃,finlab 資料含已下市股票,無生存者偏誤;未刻意排除金融股、KY 股、ETF 與全額交割股
流動性過濾 近 20 日平均成交金額大於 1,000 萬
前視偏差 ROE 季財報以 index_str_to_date 對齊公布時點後補到日頻;動能與波動只用已實現的收盤價報酬
權重 分數平方加權(基準為等權),前 25 檔,每月再平衡;未設單檔上限,資料截止日最大單檔權重約 4.7%
周轉率 每月再平衡,平均月周轉率(單邊換手)53%、單月最高 81%,這些換股成本已內扣在 18.3% 的績效裡;單因子對照組平均 30%
樣本內外 全段樣本內(in-sample);發佈日 2026-06-22 到 2026-08-31 的前瞻區間(未參與任何參數選擇)策略 -2.9%、0050 -3.8%,從 2026-06 版的資料快照日 2026-06-09 起算則為策略 +0.6%、0050 +3.3%,兩個月的樣本太短,只作紀錄不作結論;持股數敏感度是穩健性參考,不是樣本外證據
0050 基準 etl:adj_close 還原價含息買進持有,與策略首次建倉同一天(2018-01-31)起算,純指數算術、不含交易成本;基準不扣成本而策略扣成本,比較口徑對策略偏保守

2026-10 基準更正與重跑: 2026-10-11 以同一個資料截止日(2026-08-31)重跑本文全部數字,處理三件事。第一,0050 基準原本從 2018-01-02 起算,比策略首次建倉的 2018-01-31 早了一個月(0050 在這一個月漲了 5.1%),兩條曲線不在同一個視窗;改為同一天起算後,0050 年化由 24.8% 修正為 24.3%、日夏普由 1.18 修正為 1.16、總報酬由 +580% 修正為 +547%,月索提諾 1.92 與最大回撤 -34.0% 不變。第二,三因子策略同一段重跑的數字與 2026-09-20 版不同:年化由 17.5% 變為 18.3%、日夏普由 1.19 變為 1.23、月索提諾由 1.88 變為 1.95,最大回撤 -26.4% 不變,持股數敏感度另外三組也各自移動 0.1 到 0.5 個百分點。回測引擎的選股邏輯沒有改動,差異出現在用到財報資料(ROE、營業利益率)或股價淨值比、殖利率資料的版本,其中本文的三因子移動最大,只用股價的 Codex 場 naive 則逐日相同,可能來自資料修補或套件版本更新,本文無法逐項拆解。兩項變動合起來,三因子的日夏普與月索提諾由「與 0050 相當、略低」變成「小幅高於 0050」,但持股數敏感度顯示這個領先只在前 25 檔成立,本文因此不把它當成穩定優勢。第三,龍蝦與 Codex 兩場實驗的資料截止日延長到 2026-08-31,與另外兩組同一次執行;四支可下載的 strategy.py 也改成與回測引擎同一套邏輯並釘住資料截止日,執行後逐格對得上本文表格。

把回撤攤在時間軸上看,三因子複合在 2018 到 2026 的最深回撤是 -26.4%,控制在比 0050 的 -34.0% 更淺的範圍:

三因子複合策略與 0050 含息的回撤時間序列,策略最大回撤 -26.4% 淺於 0050 的 -34.0%

持股數敏感度:回撤優勢穩定,夏普領先只在前 25 檔

前 25 檔這個數字是不是剛好挑到漂亮參數?我們把持股數從前 20、前 25、前 30 一路測到前 40,其餘設定不變。結果年化報酬落在 16.5% 到 18.3%,最大回撤落在 -25.3% 到 -27.0%,月索提諾落在 1.69 到 1.95:

三因子策略持股數敏感度:前 20 到前 40 的月索提諾 1.69 到 1.95、年化報酬 16.5% 到 18.3%,兩格各畫一條 0050 含息參考線(月索提諾 1.92、年化 24.3%),四組年化都低於 0050

持股數 年化報酬 最大回撤 年化波動 日夏普 月索提諾
前 20 16.6% -25.3% 15.2% 1.12 1.74
前 25(本文採用) 18.3% -26.4% 15.1% 1.23 1.95
前 30 16.5% -27.0% 15.1% 1.13 1.69
前 40 16.7% -26.8% 15.0% 1.14 1.74
0050 含息(同一天起算) 24.3% -34.0% 21.5% 1.16 1.92

三個觀察。第一,最大回撤在四組設定裡都落在 -25.3% 到 -27.0%,年化波動都在 15.0% 到 15.2%,全部比 0050 的 -34.0% 與 21.5% 好,這是三因子最穩定的優勢,換個持股數仍然成立。第二,前 25 檔是四組裡最好的一格,年化比另外三組高出 1.6 到 1.8 個百分點,日夏普與月索提諾也只有這一格高於 0050(另外三組日夏普 1.12 到 1.14、月索提諾 1.69 到 1.74,都略低於 0050)。前 25 是本文 2026-06 首版就採用的設定,並非這次重跑後才改選,但單一格明顯突出時,比較保守的讀法是把另外三組設定的 16.5% 到 16.7% 當成這個策略的合理預期。第三,四組年化都輸 0050,這個結論與持股數無關。敏感度表的正確用法是確認結論是否依賴特定參數,而不是挑出最漂亮的那一格,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.3% 確實低於 0050 的 24.3%,但它的最大回撤只有 -26.4%(0050 是 -34.0%),年化波動 15.1% 也低於 0050 的 21.5%。日夏普 1.23 雖然小幅高於 0050 的 1.16,這個領先只在前 25 檔成立,較可靠的優勢是回撤與波動。對承受不了大盤深度回撤的人來說,用較淺的回撤與較低的波動換取較低但仍可觀的長期報酬,可能比追求最高年化更實際。

這些 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:三因子複合策略完整原始碼,釘住資料截止日,執行後印出本文全部版本、持股數敏感度與同一天起算的 0050 績效,以及截止日的持股權重
  • data.csv:策略與基準淨值曲線的每日數據
  • metrics.json:全部指標的機器可讀快照
  • 互動式回測報告:三因子複合策略

上方「三個 agent 實測對照」的三場實驗也可完整重現:

延伸閱讀:想看 AI 如何把單一句話的策略想法逐步迭代成有效規格,可參考 AI 提示詞回測策略;想了解讓 AI 自動挖掘有效因子的做法,見 AI 因子探勘 Agent;用 Qlib 搭配 finlab 做 AI 選股的另一條路徑,見 Qlib + FinLab AI 選股。


投資警語:本文僅供教學參考,不構成投資建議。文中全部回測數據(年化 18.3%、最大回撤 -26.4% 等)為 2018-01 至 2026-08 的歷史模擬,已含 finlab 預設交易成本,但未含滑價與容量限制;過去績效不代表未來表現。本策略最大回撤 -26.4%,代表 100 萬可能一度縮水至約 74 萬,請依個人風險承受度審慎評估,僅使用虧損不影響生活的閒置資金。

最後更新:2026-10|回測區間:2018-01 ~ 2026-08(資料快照 2026-08-31,2026-10-11 重跑)|作者:FinLab 量化研究團隊(經量化研究員審閱)

FinLab AI

Want to build your own strategy?

Describe your stock-picking ideas in natural language. AI automatically validates, backtests, and gives you answers

Start Free