跳至主要內容
量化工具 台股回測

回測平台:用 FinLab 把台股策略變成可驗證報告

FinLab 量化回測平台支援台股價量、月營收、籌碼、財報與還原股價資料,用 AI 對話或 Python 建立策略,內扣手續費與證交稅,輸出年化報酬、最大回撤、夏普值與可重現回測報告。

回測工具 台股資料 成本內扣 AI / Python 可重現報告

FinLab 回測平台示範:三套法人跟單規則比較,逆向外資、純投信買超與投信加營收動能用同一個回測引擎驗證

回測平台要解決什麼問題?

回測是把一套交易規則丟進歷史資料,檢查它過去的報酬、風險、最大回撤、交易成本與失效情境。 FinLab 的定位是台股與美股量化研究工作台:你可以用 AI 對話描述策略,也可以用 Python 寫規則,最後由同一套資料與回測引擎產生可檢查的報告。

對台股投資人來說,回測平台真正要處理的是五個細節:

判準 為什麼重要 FinLab 怎麼處理
還原股價 長期報酬若漏掉除權息,基準會失真 長期比較使用 etl:adj_close 或含息報酬序列
公布日對齊 財報與月營收若提前使用,會產生前視偏差 月營收、財報資料可對齊實際可取得時間
成本內扣 台股賣出證交稅與手續費會吃掉高週轉策略 sim() 預設內扣手續費與賣出證交稅
可重現 三個月後重跑要能得到同一套規則下的結果 策略可下載成 strategy.py,報告可另存 HTML
風險揭露 年化報酬不足以判斷策略能不能抱住 報告同時看最大回撤、夏普值、年度報酬與交易明細

補概念可讀回測是什麼;正在比較工具,則看台股回測工具比較。本頁承接「我要開始做回測」的需求。

{{setup|幫我設定 FinLab,跑第一個台股回測:用月營收、價格趨勢與流動性條件建立策略,並輸出 report_strategy.html}}

用 FinLab 做回測的流程

FinLab 的回測流程可以拆成四步:取得資料、定義規則、執行回測、讀報告。新手可用 AI 完成環境設定,再把條件改成自己的版本。

顯示程式碼
from finlab import data
from finlab.backtest import sim
 
# 載入台股資料:首次使用時,finlab 會依套件流程引導登入
close = data.get('price:收盤價')
volume = data.get('price:成交股數')
revenue_growth = data.get('monthly_revenue:去年同月增減(%)')
 
# 範例規則:營收年增率前段班、價格站上 120 日均線、成交量足夠
trend = close > close.average(120)
liquid = volume.average(20) > 300 * 1000
growth = revenue_growth.index_str_to_date().reindex(close.index, method='ffill')
 
position = (growth > 20) & trend & liquid
position = growth[position].is_largest(20)
 
# 月頻換股,sim() 預設已內扣台股手續費與賣出證交稅
report = sim(position, resample='M', position_limit=0.1)
report.to_html('report_strategy.html')

這段程式是流程骨架,績效要以你實際執行的資料區間與條件為準。完整入門範例可看量化交易 Python 教學,那篇用營收動能、價格動能與低波動三因子跑出台股策略,並附可下載程式碼。

三個真實回測示範

FinLab 的強項是把抽象觀念變成可重跑的台股資料。以下三組數字都來自站內已公開文章,並連回原文供你檢查方法。

示範 回測問題 關鍵結果 來源
法人籌碼 外資賣超要不要反著買? 逆向外資年化 8.8%、日夏普 0.48;投信買超加營收動能年化 33.9%、日夏普 1.11 法人策略回測
Python 入門 三因子策略能不能壓低回撤? 2020~2026 Sharpe 1.48、CAGR 20.9%、最大回撤 -13.3%;全期 2007~2026 Sharpe 0.99 量化交易 Python 教學
工具選擇 回測成本不扣會差多少? 台股單次來回牌價成本 0.585%,月頻全換手一年上界約 7.0% 台股回測工具比較

這些例子故意不只挑漂亮策略。回測最有價值的用途之一,是讓聽起來合理的直覺接受數據檢查:逆向外資這類說法攤開後報酬有限,單純投信買超也不夠,必須加上營收動能等基本面條件才有可討論的策略品質。

FinLab 回測和一般看盤工具差在哪?

很多工具都能畫圖或產生交易紀錄,但「回測研究」和「看盤下單」處理的是不同任務。挑平台時可從自己的主要問題出發。

需求 較適合的工具型態 取捨
台股全市場選股回測 FinLab、TQuant Lab、自寫 Python 能處理橫斷面因子、月營收、籌碼與財報資料
技術面圖表與跨市場腳本 TradingView、MultiCharts 圖表與社群腳本完整,但台股基本面資料較有限
看盤、訊號、下單整合 XQ、券商看盤平台 執行介面完整,研究可重現性要依平台設定檢查
完全自訂資料工程 自寫 Python、backtrader 彈性最高,但資料清理、公布日對齊與成本模型都要自己負責

目標是今天把台股策略跑起來,FinLab 的路徑通常比較短:資料、回測與報告在同一套 Python 流程裡,AI 可以協助把白話條件翻成程式,研究者再檢查規則是否合理。想逐一比較,可延伸看 FinLab vs XQFinLab vs TradingViewFinLab vs TEJPython 回測工具比較

一份回測報告該看哪些指標?

報告的讀法不要只盯年化報酬。至少要同時看四組數字:

指標 代表什麼 判讀重點
CAGR 平均每年複利成長速度 單一強勢年份會拉高數字,要看分年報酬
最大回撤 歷史上從高點跌到低點的最深跌幅 決定策略實際能不能抱住
夏普值 每承擔一份波動換到多少報酬 風險調整後比較比單看 CAGR 公允
交易明細與週轉 策略多久換股、買賣是否集中 週轉愈高,成本與滑價愈容易侵蝕績效

最大回撤、夏普比率、滑價、前視偏差等名詞可查量化詞彙表。如果想單獨計算夏普值,使用夏普比率計算器;如果要比較多個選股條件,使用台股選股器

回測常見錯誤

回測失真的常見原因,多半是研究口徑一開始就錯。

錯誤 會造成什麼後果 檢查方式
使用未還原股價 ETF 或配息股長期報酬被低估 長期基準用含息或還原價格
財報資料提前使用 策略像偷看未來,績效虛高 明確對齊公布日與可取得日
忘記交易成本 高週轉策略報酬被高估 逐一確認手續費、證交稅、滑價設定
反覆調參到好看 找到的是歷史噪音 記錄試過多少組參數,做樣本外或分段測試
只看單一期間 可能剛好撞上多頭 拉長到不同市場階段,檢查穩定度

Bailey、Borwein、López de Prado 與 Zhu(2014) 討論了反覆測試如何提高漂亮回測只是運氣的機率;Harvey、Liu 與 Zhu(2016) 則提醒,金融研究裡被測過的因子很多,顯著性門檻要更嚴。這也是為什麼一個回測平台除了要能跑,還要能讓你檢查資料、成本與參數選擇。

適合誰使用?

使用者 FinLab 回測能幫上什麼
想驗證選股條件的台股投資人 把營收、籌碼、價量、財報條件變成可重跑策略
不想從爬蟲與資料清理開始的新手 用 AI 輔助安裝與策略生成,取得第一份報告
會 Python 的研究者 用 DataFrame 做因子、排名、權重、回測與圖表
想比較工具的人 以同一套成本、資料與可重現判準評估平台

如果你的主要工作是看盤下單,仍可搭配券商或看盤軟體;如果你的主要工作是研究策略,建立回測流程後再決定下單工具會更穩。

常見問題

回測平台和回測工具有差嗎?

日常用語差不多,但平台通常包含資料庫、回測引擎、報告與研究流程;工具可能只是一個計算器或腳本環境。FinLab 的定位是研究平台,包含台股資料、AI 輔助、Python 套件與回測報告。

不會 Python 可以做回測嗎?

可以。你可以用 AI 對話描述條件,讓系統產生初版程式,再逐步學會讀懂規則。長期來看,懂一點 Python 會提高研究自由度,但第一步不必從語法課開始。

回測結果好就能上實單嗎?

不建議。回測只是研究階段,後面還要檢查滑價、流動性、資金容量、實單落差與心理承受度。比較健康的做法是先小額或模擬單驗證,再逐步放大。

台股回測一定要扣哪些成本?

至少要扣買進手續費、賣出手續費與賣出證交稅,並視策略頻率加入滑價。台股牌價單次來回成本約 0.585%,高週轉策略尤其敏感。

回測期間要多長?

至少要涵蓋不同市場階段。只測近兩三年多頭,很難判斷策略本身有效,還是剛好吃到行情。入門策略可先跑近年,正式評估要拉長並做分段檢查。

FinLab 和 TradingView 怎麼選?

TradingView 適合跨市場圖表、技術指標與 Pine Script 社群;FinLab 適合台股全市場選股、月營收、籌碼、財報與可重現 Python 回測。兩者可以互補,重點是你的主要研究資料在哪裡。


投資有風險,過去績效不代表未來表現。本文引用之回測數字皆來自站內已公開文章與可重現策略,僅供教學參考,不構成投資建議,請依個人風險承受度審慎評估。

最後更新:2026-06|作者:FinLab 量化研究團隊(經量化研究員審閱)