
AI 選股的問題通常出在提示詞只要求一份股票名單。這次我們把 30 條常見台股 AI 選股提示詞分成兩類:一類是「幫我找便宜好公司、找投信連買、找高殖利率」這種名單型提示詞;另一類是要求 AI 把想法翻成可回測規則、指定股票池、排名方式、換股時間與 0050 對照的研究型提示詞。用 uv run 跑 finlab 回測後,差距很清楚:
| 類型(2018-01 ~ 2026-06) | 代表版本 | CAGR | 日夏普 | 日索提諾 | 最大回撤 | 結論 |
|---|---|---|---|---|---|---|
| 0050 含息基準 | 買進持有 0050 | 25.05% | 1.22 | 1.67 | -33.96% | 強到很難打 |
| 熱門名單型提示詞 | 五條單因子最佳:創 60 日新高 | 12.67% | 0.56 | 0.74 | -48.48% | 報酬與風險都不夠 |
| 天真複合提示詞 | 把五個熱門因子等權加總 | 14.90% | 0.83 | 0.97 | -35.53% | 有改善,但仍輸基準 |
| 有效研究型提示詞 | 精煉四因子:營收+動能+ROE+低波 | 30.90% | 1.51 | 1.82 | -27.73% | 提示詞開始發揮研究價值 |
本文不給股票代號;AI 選股提示詞的價值,是把模糊投資想法變成一套可以重跑、可以和基準比較、可以被推翻的量化規格。30 條提示詞可以直接複製,但真正值得學的是第 25 到 30 條的研究流程,以及後面實測出來的四個有效寫法。
30 條 AI 選股提示詞:先分清楚名單型與研究型
前 24 條可以拿來產生候選名單,但不要停在那裡。後 6 條才是把 AI 變成研究助理的關鍵,因為它們要求 AI 交代規則、基準與回測。
| # | 提示詞 | 類型 | 回測角色 |
|---|---|---|---|
| 1 | 幫我找出台股中本益比低於 12 倍、且最近一季 ROE 高於 15% 的公司,列出代號與名稱 | 價值+品質 | 已回測,名單型 |
| 2 | 找出連續三年 EPS 成長、且毛利率高於產業平均的台股 | 基本面 | 候選因子 |
| 3 | 篩選最近一季營業利益率比去年同期上升超過 3 個百分點的公司 | 獲利改善 | 候選因子 |
| 4 | 找出自由現金流連續五年為正、且負債比低於 40% 的台股 | 財務體質 | 候選因子 |
| 5 | 用杜邦分析拆解一檔公司的 ROE,判斷成長來自利潤率、周轉率還是槓桿 | 個股分析 | 質化輔助 |
| 6 | 找股價淨值比低於 1、但 ROE 仍為正的公司,並逐檔說明風險 | 深度價值 | 候選因子 |
| 7 | 列出最近一季存貨周轉天數明顯下降的電子股 | 營運效率 | 候選因子 |
| 8 | 找出 PEG 低於 1 的成長股,附計算過程 | 成長估值 | 候選因子 |
| 9 | 幫我找股價創 60 日新高、且成交量放大到 20 日均量兩倍以上的台股 | 動能突破 | 已回測,名單型 |
| 10 | 找出最近三個月漲幅領先大盤超過 10 個百分點的股票 | 相對強弱 | 候選因子 |
| 11 | 列出站上季線且季線向上的台股,按 60 日漲幅排序 | 趨勢 | 候選因子 |
| 12 | 找出突破近三個月整理區間、突破當天成交量明顯放大的股票 | 型態突破 | 候選因子 |
| 13 | 找出月營收公布後股價跳空上漲、五天內沒有回補缺口的公司 | 事件動能 | 候選因子 |
| 14 | 比較台股各產業最近一個月的漲幅,找出最強三個族群與代表股 | 產業輪動 | 候選因子 |
| 15 | 幫我找投信連續買超五天以上、累計買超金額排名前 30 的台股 | 籌碼 | 已回測,名單型 |
| 16 | 找出外資與投信同步買超、股價還在 60 日均線附近的股票 | 法人籌碼 | 候選因子 |
| 17 | 列出大股東持股比率最近一季上升的公司 | 股權結構 | 候選因子 |
| 18 | 找出融資餘額下降但股價上漲的台股 | 散戶退場 | 候選因子 |
| 19 | 找出借券賣出餘額快速回補的股票 | 空單回補 | 候選因子 |
| 20 | 列出董監事近三個月沒有申報轉讓、且投信持股增加的公司 | 內外籌碼 | 候選因子 |
| 21 | 幫我找現金殖利率高於 5%、且連續十年都有配息的台股 | 股利 | 已回測,名單型 |
| 22 | 找出盈餘分配率低於 70%、殖利率仍高於 4% 的公司 | 配息續航 | 候選因子 |
| 23 | 列出今年恢復配息的公司,並整理恢復配息的原因 | 股利事件 | 質化輔助 |
| 24 | 比較 0056、00878、00919 的成分股重疊度與產業集中度 | ETF 拆解 | 工具型 |
| 25 | 把低本益比、高 ROE、月營收年增率三個條件各取排名分數,加總後給我前 30 名 | 排名複合 | 有效結構 |
| 26 | 幫我設計一個先用 ROE 篩品質、再用 60 日漲幅排序的兩段式選股流程 | 因子流程 | 有效結構 |
| 27 | 用 0 到 1 的百分位排名,把價值、成長、籌碼、動能、股利五個面向等權加總,列出總分前 30 的台股 | 多因子 | 已回測,天真複合 |
| 28 | 幫我把這個條件寫成 finlab 回測程式:股票池、持股數、權重、再平衡頻率都要明確 | 提示詞轉程式 | 必備 |
| 29 | 幫我檢查這個策略有沒有前視偏差:月營收與財報是在公布後才用嗎? | 回測健檢 | 必備 |
| 30 | 把我的選股規則跑回測,和 0050 含息比較 CAGR、夏普、索提諾、最大回撤與持股數 | 基準對照 | 必備 |
因子(Factor):一個可以橫向比較股票的量化特徵,例如 ROE、月營收年增率、近 60 日漲幅、波動率。名詞不熟可以搭配量化名詞表查定義。
五條熱門提示詞照字面回測:看起來合理,資料不買單
我們先故意用最常見、最直覺的寫法測一次。共同設定:60 日均量大於 100 萬股,每月再平衡,每版最多等權持有前 30 檔,交易成本採 finlab 台股預設值;基準為 0050 含息買進持有。
| 版本 | 提示詞翻譯規則 | CAGR | 日夏普 | 日索提諾 | 最大回撤 | 平均持股 |
|---|---|---|---|---|---|---|
| 0050 含息 | 買進持有 | 25.05% | 1.22 | 1.67 | -33.96% | 1 |
| 低本益比+高ROE | 低 PE 與高 ROE 雙排名 | 7.90% | 0.46 | 0.55 | -44.50% | 30.0 |
| 月營收年增>30% | 取年增率最高 30 檔 | 9.38% | 0.49 | 0.59 | -49.19% | 30.0 |
| 創60日新高 | 新高股中取 60 日漲幅最高 | 12.67% | 0.56 | 0.74 | -48.48% | 24.6 |
| 投信連買5日 | 投信連買且 10 日買超金額最高 | 8.88% | 0.49 | 0.63 | -50.23% | 19.7 |
| 高殖利率 | 殖利率最高 30 檔 | 5.06% | 0.37 | 0.42 | -33.48% | 30.0 |
| 5 因子天真複合 | 上述五類各取排名分數加總 | 14.90% | 0.83 | 0.97 | -35.53% | 30.0 |

單因子提示詞大多只是投資常識的白話包裝,不是可直接交易的優勢。把五個常識因子加總確實有改善,從最佳單因子 12.67% 推到 14.90%,回撤也從 -48% 級別壓到 -35.53%;但它仍然打不過 0050。「請 AI 給我股票代號」得到的結果很不可靠,因為它沒有要求 AI 交代股票池、排名、權重、換股日與基準。

動能是五條裡最強的單因子,這和 Jegadeesh & Titman (1993) 記錄的中期動能效應方向一致:過去一段時間的贏家,後續仍可能相對強勢。但本文這個「創 60 日新高」提示詞的最大回撤接近 -48.5%,說明動能不能單獨裸奔。價值與高殖利率在 2018-2026 台股窗口偏弱,也不意外:這段行情由半導體與 AI 成長股主導,純「便宜」常常買到的是成長停滯。Fama & French (1992) 的價值因子研究仍有重要參考價值,但市場、期間、定義不同,不能保證台股這段窗口會贏。
有效提示詞會指定研究規格
接著我們把提示詞改成「請 AI 做研究」,不再只要求 AI 列名單。改法包括四件事:
| 寫法 | 提示詞要求 | 為什麼有效 |
|---|---|---|
| 排名分數取代硬門檻 | 每個因子在股票池內轉成 0~1 百分位排名 | 避免「本益比 12 倍」這類任意門檻造成樣本忽多忽少 |
| 低相關因子複合 | 營收成長、價格動能、ROE 品質、低波動一起打分 | 不同因子輪流發揮,不要把同一個邏輯講四次 |
| 加入風險因子 | 把低波動列入分數,風險控制前移到選股階段 | 本文實測低波動讓回撤明顯收斂 |
| 對齊資料公布日 | 月營收公布後 14 天換股,財報用公布日對齊 | 避免前視偏差,也捕捉公告後的反應期 |
我們沒有做參數最佳化,而是逐步改提示詞結構,看哪些要求真的能改善風險報酬。
| 提示詞結構 | CAGR | 日夏普 | 日索提諾 | 月索提諾 | 最大回撤 | 讀法 |
|---|---|---|---|---|---|---|
| 固定門檻 AND 提示詞 | 26.95% | 0.90 | 1.20 | 1.94 | -43.19% | 報酬高,但波動太大 |
| 排名複合:營收+動能+ROE | 31.04% | 1.11 | 1.43 | 1.80 | -42.43% | 排名有效,仍缺風險控制 |
| 加入低波動:四因子等權 | 28.11% | 1.16 | 1.44 | 1.89 | -40.60% | 報酬降一些,風險效率改善 |
| 分數平方加權:四因子 | 28.62% | 1.17 | 1.47 | 1.92 | -40.99% | 強訊號權重更高 |
| 同四因子但不延後換股 | 25.40% | 1.06 | 1.29 | 1.91 | -37.56% | 少了事件時間優勢 |
| 精煉四因子:低相關+平方 | 30.90% | 1.51 | 1.82 | 2.55 | -27.73% | 本文最有用的提示詞結構 |
| 精煉四因子+成交額>1億 | 27.55% | 1.12 | 1.42 | 1.78 | -41.85% | 容量更嚴,績效變差 |

對照同口徑的 0050 含息:日索提諾 1.67、月索提諾 1.92。階梯前幾級的索提諾與 0050 互有勝負,真正在日、月索提諾同時超車的只有精煉四因子(日 1.82 對 1.67、月 2.55 對 1.92);前面幾級的改善主要來自壓波動,真正在風險調整後全面領先的是最後一級。
30.90% 不是重點,重點是這條提示詞問得夠具體。有效提示詞不會只說「找好股票」,它會指定:用月營收年增 10% 到 150%、連續三個月正成長當基礎池;把月營收、60 日動能、ROE、低波動都轉成百分位排名;總分前 40 檔,依分數平方加權;月營收公布後 14 天換股;和 0050 含息比較 CAGR、夏普、索提諾、最大回撤。
這組因子和多因子選股策略教學屬於同一個家族(營收、動能、ROE、低波動,同樣的股票池與平方加權),兩篇的分工不同:那篇是因子研究,把每個因子拆開單測、做成本敏感度;本文示範的是把一句提示詞逐步加嚴成完整規格的過程。數字略有出入(30.90% 對 29.45%),來自四個實作細節:本文把因子先彙整成月頻再排名、排名缺值補零、資料快照日釘在 2026-06-09,以及績效統計採與全站 0050 基準相同的純算術公式。同一族因子,規格細節不同,結果就會不同,這正是提示詞必須把規格寫清楚的理由。
精煉四因子的互動式回測報告包含權益曲線、月報酬與持股變化:
另一個限制來自流動性:「精煉四因子+成交額>1億」表現變差,不代表實單不用管流動性。它代表容量限制會改變股票池,有時會拿掉一部分高報酬小型股。比較實用的做法,是把 60 日均量 >100 萬股、成交額 >1 億、成交額 >3 億三組版本並排回測,把報酬與可交易性一起列出來。

可以直接貼給 AI 的有效提示詞模板
這段比「幫我找 AI 概念股」長很多,也因此比較容易重現。把它貼給 ChatGPT、Claude 或 FinLab AI,再要求它輸出 finlab 程式碼與回測表。
輸入給 AI:
請幫我設計一個台股選股回測,不要只列股票名單。股票池使用月營收年增率介於 10% 到 150%,且連續 3 個月年增率為正的公司。因子包含:月營收年增率、近 60 個交易日股價動能、ROE、近 60 日報酬波動率。每個因子都在股票池內轉成 0 到 1 的百分位排名,低波動因子要反向排名。四個分數加總後取前 40 檔,依分數平方加權,月營收公布後 14 天換股。請用 finlab 回測 2018-01 到最新資料,扣除台股預設交易成本,並和 0050 含息比較 CAGR、日夏普、日索提諾、月索提諾、最大回撤、平均持股數。最後檢查是否有前視偏差,並輸出可重跑的 Python 程式碼。
期望輸出:
顯示程式碼
from finlab import data
from finlab.backtest import sim
import numpy as np
close = data.get('price:收盤價')
rev = data.get('monthly_revenue:去年同月增減(%)')
roe = data.get('fundamental_features:ROE稅後').index_str_to_date()
def monthly(df):
return df.reindex(close.index, method='ffill').resample('ME').last()
revm = monthly(rev)
momm = monthly(close.pct_change(60))
roem = monthly(roe)
lowvolm = monthly(close.pct_change().rolling(60).std())
pool = (revm > 10) & (revm < 150) & ((revm > 0).rolling(3).sum() == 3)
def rk(df, asc=True):
return df.where(pool).rank(axis=1, pct=True, ascending=asc).fillna(0)
score = rk(revm) + rk(momm) + rk(roem) + rk(lowvolm, asc=False)
top = score.where(pool).rank(axis=1, ascending=False) <= 40
weight = (score.where(top, 0) ** 2)
weight = weight.div(weight.sum(axis=1).replace(0, np.nan), axis=0).fillna(0)
report = sim(weight[weight.index >= '2018-01-01'],
resample='M',
resample_offset='14D',
upload=False)
print(report.get_stats())完整可重跑版本在文末 prompt_strategies.py,已包含五條熱門提示詞、天真複合、精煉四因子、成交額版本與本機圖表輸出。這段程式的目的不是教讀者背 Python;它把提示詞規格寫到足夠清楚,讓 AI 不能隨便腦補。
有效 AI 選股提示詞的四條規則
| 規則 | 弱提示詞 | 有效提示詞 |
|---|---|---|
| 1. 問研究規格 | 幫我找便宜好公司 | 把「便宜好公司」翻成本益比、ROE、排名、持股數、換股頻率,並回測 |
| 2. 用排名,少用固定門檻 | 本益比低於 12、ROE 高於 15% | 在股票池內取百分位排名,讓每期都能比較相對強弱 |
| 3. 因子要低相關 | 同時放 PE、PB、殖利率,其實都在押價值 | 結合營收、動能、品質、低波動,每個因子賺不同邏輯的錢 |
| 4. 必須要求反證 | 幫我找最強策略 | 和 0050 比,列最大回撤,加成交額版本,檢查公布日與樣本內外 |
Asness, Moskowitz & Pedersen (2013) 在價值與動能研究中強調,低相關因子合成可以改善風險調整報酬;本文的精煉提示詞採用同一個精神,把不同來源的訊號組在一起。DeMiguel, Garlappi & Uppal (2009) 也提醒,簡單的 1/N 或等權規則常常不輸複雜最佳化;所以本文先用排名與平方加權這種透明規則,沒有讓 AI 直接最佳化一堆參數。
回測方法與限制
| 項目 | 設定 |
|---|---|
| 執行方式 | uv run --with finlab --with pandas --with numpy --with matplotlib python static/blog/ai-stock-picking-prompts-backtest/prompt_strategies.py |
| 資料截止 | 2026-06-09(腳本以 DATA_END 環境變數釘日,與全站 0050 基準同一快照) |
| 回測區間 | 2018-01-01 到資料最新日,全段 in-sample,未做樣本外切分 |
| 交易成本 | 策略使用 finlab sim() 台股預設成本;0050 基準為含息買進持有 |
| 基準 | 0050 含息,採 etl:adj_close 還原價的純指數算術買進持有(不經回測引擎、不含交易成本),與全站統一基準口徑相同 |
| 熱門提示詞股票池 | 60 日均量 > 100 萬股 |
| 精煉提示詞股票池 | 月營收年增 10% 到 150%,且連續 3 個月年增為正 |
| 換股 | 熱門提示詞為每月換股;精煉提示詞使用 resample_offset='14D' 對齊月營收公布後 |
| 權重 | 熱門提示詞等權前 30 檔;精煉提示詞前 40 檔,分數平方加權 |
| 前視處理 | ROE 使用 index_str_to_date() 對齊財報公布日;月營收以公布後換股降低偷看未來風險 |
| 排除類別 | 未另外排除金融股、KY 股與全額交割股;精煉策略因需要月營收與 ROE 資料,ETF 與無月營收公司自然不在池內;熱門提示詞池僅做流動性過濾 |
| 周轉率 | 未逐月統計;兩類策略皆為每月再平衡,交易成本已由 sim() 預設值內扣 |
| 滑價與容量 | 未另估滑價;成交額 >1 億版本列為敏感度,但完整容量評估仍未做 |
這組結果有兩個限制。第一,精煉四因子的結果仍是同一段歷史的樣本內(in-sample)檢驗,不能當作未來保證;下一步應該做滾動樣本外與季度刷新。第二,2018-2026 台股由 AI、半導體與權值股帶動,0050 本身非常強,不同市場窗口可能改變價值、股利、籌碼因子的排名。對回測過度自信的風險,可以延伸看回測過擬合機率。
AI 選股常見問題
AI 選股提示詞真的有用嗎?
有用,但用途不是直接問股票代號。本文實測顯示,名單型提示詞幾乎都不夠好;研究型提示詞能把想法變成可重跑規則,讓你快速知道哪些直覺該丟掉、哪些結構值得深入。
為什麼熱門提示詞全輸 0050?
因為那些提示詞多半只描述單一公開常識,例如便宜、成長、高殖利率、法人買超。公開常識不等於超額報酬,尤其在 2018-2026 這段由權值成長股主導的台股。Harvey, Liu & Zhu (2016) 檢視大量發表過的因子後指出,提高統計門檻後許多因子站不住;一行提示詞更需要被真資料檢驗。
精煉四因子可以直接實單嗎?
不建議直接照抄。它通過本文的日索提諾品質門檻,但仍是全段 in-sample,也沒有完整容量與滑價估算。它的用途是示範有效提示詞結構:低相關因子、排名分數、公布日對齊、基準比較。要實單前,至少要做成交額版本、樣本外追蹤與不同持股數敏感度。
為什麼成交額 >1 億版本反而變差?
流動性濾網會改變股票池,拿掉一些小型高成長股,所以報酬可能下降。這不代表流動性不重要;提示詞應該要求 AI 列出容量取捨。小資金與大資金看到的可交易策略本來就不同。
可以只請 ChatGPT 給我股票代號嗎?
不建議。通用聊天模型沒有穩定的即時台股行情、籌碼與財報資料,也不會自動幫你處理除權息、公布日與交易成本。比較好的流程是讓 AI 寫規則與 finlab 程式,資料與回測交給資料庫與回測引擎。
和 FinLab AI 的差別在哪?
一般聊天模型適合幫你把想法翻成規則;FinLab 的優勢是台股資料、回測、策略管理與後續實作都在同一個工作流。完整 AI 量化流程可以看AI 量化交易完整指南,如果想從 Python 入門,看量化交易 Python 教學會比較順。
相關研究
- 多因子選股策略教學:把營收、動能、ROE、低波動做成更完整的台股多因子研究。
- 台股選股方法總整理:基本面、技術面、籌碼面與複合策略的地圖。
- 用 Claude/GPT 寫出台股回測策略:從提示詞到績效報告的實作流程。
- 月營收公布後漂移:為什麼台股月營收值得單獨研究。
- 動能投資 18 年實測:動能因子的長期檢驗。
- 投信跟盤法:籌碼類提示詞為什麼需要更細的持有與出場設計。
- 本益比選股回測:低本益比因子的長期表現。
- 0056 vs 00878 vs 00919:高股息提示詞背後的 ETF 與股利邏輯。
- 量化交易完整指南:資料、回測、策略與實單的完整入口。
想自己驗證這 30 條提示詞?FinLab 讓你用 AI 對話描述策略,底層接真實台股資料實跑回測,免費註冊開始。先把文末腳本重跑一遍,再改股票池、因子、持股數與成交額門檻,看結論怎麼變。
下載資源
| 檔案 | 說明 |
|---|---|
| prompt_strategies.py | 30 條提示詞的回測研究腳本,含五條熱門提示詞、天真複合、精煉四因子與成交額敏感度 |
| report_strategy.html | 精煉四因子提示詞的互動式回測報告 |
| report_baseline.html | 天真 5 因子複合提示詞的互動式回測報告 |
投資有風險,過去績效不代表未來表現。本內容僅供教學參考,不構成投資建議,請依個人風險承受度審慎評估。本文所有策略為歷史資料的 in-sample 檢驗,實際交易成本、滑價、資金規模與市場狀況可能使結果與回測不同。
最後更新:2026-06|回測區間:2018-01 ~ 2026-06|作者:FinLab 量化研究團隊(經量化研究員審閱)。文中數據由 uv run 執行 finlab 套件產出,腳本見下載資源。
FinLab AI
想建立自己的策略?
用自然語言描述你的選股想法,AI 自動驗證、回測、給你答案
免費開始