從芝加哥中產家庭到動能投資之父
理查·德里豪斯(Richard Herman Driehaus,1942-2021),出生於芝加哥一個中產階級家庭,父親從事機械工程。他從小就展現對金融市場的濃厚興趣——13歲起便開始閱讀報紙財經版,並用零用錢購買人生第一支股票。1965年取得德保羅大學商學學士學位,1970年獲得MBA學位。1960年代起在A.G. Becker等券商擔任機構研究員,累積了深厚的產業研究基礎。他在傳統價值投資思維盛行的年代,獨排眾議地發展出一套以股價動能和盈餘驚喜為核心的成長型投資方法論,最終創立德里豪斯資本管理公司,成為動能投資領域的開山鼻祖。
年化30%報酬率的動能投資傳奇
德里豪斯被《巴倫周刊》評選為過去100年對基金業最具影響力的25位人物之一,這一殊榮足以說明他在投資界的崇高地位。他所創立的德里豪斯資本管理公司,在成立後的前12年創造了年化複合報酬率約30%的驚人績效。到2021年他逝世時,公司管理的資產規模已超過130億美元。除了投資領域的卓越成就,德里豪斯還是一位文化藝術的推動者——他在2003年設立了「德里豪斯建築獎」,專門表彰對古典建築有傑出貢獻的人士,該獎項的地位足以與普立茲克建築獎並駕齊驅。
買高賣更高的逆傳統投資思維
德里豪斯的投資理念與傳統價值投資截然不同。他主張:與其買入股價已經跌至低點的公司,不如買入股價正在創新高、盈餘成長強勁的公司。他的核心投資邏輯建立在三個關鍵要素之上:第一,極度看重「盈餘驚喜」(Earnings Surprise),當公司公布的盈餘大幅超越市場預期時,往往是股價加速上漲的起點;第二,不畏懼高本益比,只要成長速度能夠超越估值水平,高本益比就是合理的;第三,追隨市場心理與股價趨勢,相信價格本身包含了豐富的資訊。他的方法被後世稱為「動能投資」的經典範式。
XScript 台股選股策略:盈餘驚喜動能模型
將德里豪斯的動能投資邏輯轉化為台股選股策略,核心在於捕捉「盈餘超預期且股價動能強勁」的個股:
一、盈餘驚喜:最近一季EPS超越前一季或去年同期20%以上,代表公司營運出現顯著改善。
二、營收動能:近三個月營收年增率持續為正且逐月加速,確認成長趨勢正在強化。
三、股價趨勢:股價站上所有短中長期均線(5日、20日、60日均線多頭排列),且近20日曾創下52週新高。
四、相對強度:近三個月股價漲幅排名市場前20%,確認為市場中的領先者。
五、成交量確認:近5日平均成交量較前20日平均成交量放大50%以上,代表市場資金正在積極追捧。
六、停損紀律:設定買入價格下方8%為停損點,嚴格執行風險控管。根據這些邏輯,我試著寫出一個相對應的選股策略腳本
// 腳本名稱:Driehaus 盈餘驚喜動能模型
// 資料頻率:日 (結合季/月財報)
// ================= 第一階段:全市場相對強度排序 =================
// 條件四:近三個月股價漲幅排名市場前20%
rank RS_Rank begin
// 計算近 60 日 (約三個月) 的價格漲幅
retval = RateOfChange(Close, 60);
end;
// ================= 第二階段:個股條件篩選 =================
// --- 條件一:盈餘驚喜 (EPS超越前一季或去年同期20%以上) ---
var: eps_q0(0), eps_q1(0), eps_q4(0);
eps_q0 = GetField("每股稅後淨利(元)", "Q");
eps_q1 = GetField("每股稅後淨利(元)", "Q")[1];
eps_q4 = GetField("每股稅後淨利(元)", "Q")[4];
condition1 = false;
if eps_q0 > 0 then begin
if (eps_q1 > 0 and (eps_q0 - eps_q1) / eps_q1 >= 0.2) or
(eps_q4 > 0 and (eps_q0 - eps_q4) / eps_q4 >= 0.2) then
condition1 = true;
end;
// --- 條件二:營收動能 (近三個月營收年增率持續為正且逐月加速) ---
var: rev_yoy_0(0), rev_yoy_1(0), rev_yoy_2(0);
rev_yoy_0 = GetField("月營收年增率", "M");
rev_yoy_1 = GetField("月營收年增率", "M")[1];
rev_yoy_2 = GetField("月營收年增率", "M")[2];
condition2 = (rev_yoy_0 > rev_yoy_1) and (rev_yoy_1 > rev_yoy_2) and (rev_yoy_2 > 0);
// --- 條件三:股價趨勢 (均線多頭排列,且近20日曾創下52週新高) ---
var: ma5(0), ma20(0), ma60(0);
var: is_bull_aligned(false), is_new_high(false);
ma5 = Average(Close, 5);
ma20 = Average(Close, 20);
ma60 = Average(Close, 60);
is_bull_aligned = (Close > ma5) and (ma5 > ma20) and (ma20 > ma60);
// 52週新高約等於 250 個交易日最高價
if Highest(High, 20) = Highest(High, 250) then is_new_high = true;
condition3 = is_bull_aligned and is_new_high;
// --- 條件四:相對強度 (市場前20%) ---
// 假設台股具流動性的上市櫃股票約 1700 檔,前 20% 大約是排名前 340 名
condition4 = RS_Rank.pos <= 340;
// --- 條件五:成交量確認 (近5日均量較前20日放大50%以上) ---
var: vol5(0), vol20(0);
vol5 = Average(Volume, 5);
vol20 = Average(Volume, 20);
condition5 = vol5 >= (vol20 * 1.5) and vol20 > 500; // 加入 >500 張避免冷門股雜訊
// ================= 綜合輸出 =================
if condition1 and condition2 and condition3 and condition4 and condition5 then begin
ret = 1;
// 輸出動能與基本面指標供介面排序觀察
outputField1(RS_Rank.pos, "三個月漲幅排名");
outputField2(eps_q0, "最新單季EPS");
outputField3(rev_yoy_0, "近月營收YoY(%)");
outputField4(vol5, "5日均量");
end;
此策略忠實還原德里豪斯「買高賣更高」的動能投資精神,在台股中尋找盈餘成長加速、股價創新高且量能充沛的強勢飆股。把這腳本回測過去12年,持有60天,回測報告如下圖

如果只持有30天,時間加權報酬更高達3031%,顯示追求這種強勢股的報酬率真的是一條可以走的道路

