
回測平台要解決什麼問題?
回測是把一套交易規則丟進歷史資料,檢查它過去的報酬、風險、最大回撤、交易成本與失效情境。 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 XQ、FinLab vs TradingView、FinLab vs TEJ 與 Python 回測工具比較。
一份回測報告該看哪些指標?
報告的讀法不要只盯年化報酬。至少要同時看四組數字:
| 指標 | 代表什麼 | 判讀重點 |
|---|---|---|
| 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 量化研究團隊(經量化研究員審閱)