馬克·米奈爾維尼(Mark Minervini)是美國最著名的傳奇交易員之一,曾贏得 1997 年美國投資大賽冠軍,並在《對沖基金市場巫師》(Hedge Fund Market Wizards)中接受傑克·史瓦格(Jack Schwager)的專訪。他將數千美元的本金在幾年內滾成了數百萬美元,年化報酬率高達驚人的 220%。
以下為您整理他的過往經歷、核心投資哲學,並將其著名的「趨勢模板(Trend Template)」轉化為符合 XQ 系統限制與知識庫欄位規範的 XScript 量化選股腳本。
💡 馬克·米奈爾維尼 (Mark Minervini) 經歷與投資哲學
過往經歷:
Mark Minervini 是一位自學成才的交易大師,著有《超級績效》(Trade Like a Stock Market Wizard)等暢銷經典。他的交易風格融合了理查·丹尼斯(Richard Dennis)的順勢交易與威廉·歐尼爾(William O’Neil)的 CAN SLIM 基本面法則,創造出極具爆發力且風險嚴控的 SEPA(具體進場點分析)策略。
核心投資哲學:
- 絕對的第二階段多頭趨勢 (Stage 2 Uptrend):
他**「絕對不會」**買進處於下跌趨勢(第四階段)或底部盤整(第一階段)的股票。他要求股價必須已經進入「第二階段的飆升期」。為此,他訂立了嚴格的「趨勢模板」,要求均線呈現完美的多頭排列,且股價必須靠近 52 週新高,並遠離 52 週新低。 - 超級成長動能 (Superperformance Fundamentals):
趨勢推升的背後必須有強大的基本面火力。他專注於尋找當季盈餘(EPS)與營收出現跳躍式成長的企業。 - 波動率收縮型態 (Volatility Contraction Pattern, VCP):
在趨勢成型後,他不會盲目追高,而是等待股票進入橫盤整理。隨著整理進入尾聲,價格的波動幅度會越來越小,成交量也會極度萎縮(籌碼沉澱),這就是他最愛的 VCP 突破前夕進場點。 - 截斷虧損,讓利潤奔跑 (Risk-First Approach):
他對停損毫不妥協,通常設定在買進價的 5% 到 8% 之間,絕不向下攤平。
⚙️ XScript 邏輯解構 (Type A: 選股腳本)
為了將 Minervini 著名的「趨勢模板(Trend Template)」與基本面要求程式化,我們建立一個**「完美的 Stage 2 多頭排列 + 52週位階確認 + 營收獲利雙成長」**的超級績效模型:
- Minervini 趨勢模板 (Stage 2 Trend):
- 短中長均線多頭排列:收盤價 > 50日均線 > 150日均線 > 200日均線。
- 價格位階印證:目前的股價必須比「52週(約250個交易日)最低點」高出至少 30%。
- 靠近歷史高點:目前的股價必須距離「52週最高點」不到 25%(即 收盤價 > 52週最高價 * 0.75)。
- 超級成長基本面 (Fundamental Firepower):
- 營收爆發:精確使用 月營收年增率 > 20.0%。
- 盈餘動能:每股稅後淨利(元) > 0,且必須大於去年同期(獲利加速中)。
- 流動性防禦 (Liquidity Filter):
- 飆股必須有大資金參與,限制 成交量 > 1500 張。
XScript 程式碼
// 腳本類型:Type A 選股腳本 (Screener)
// 策略名稱:Mark Minervini 超級績效趨勢模板與成長策略
// 策略邏輯:嚴格要求 Stage 2 多頭趨勢、股價靠近 52 週新高,並具備強大的營收與盈餘成長動能
// 確保長天期歷史資料讀取足夠 (計算 200 日均線及 250 日 52 週新高低需要)
SetTotalBar(260);
// 變數宣告鐵律:無底線、無系統保留字 daily、預設給定初始值
var: ma50(0), ma150(0), ma200(0), high52W(0), low52W(0);
var: revYoy(0), epsCurrent(0), epsLastYear(0), volToday(0);
var: isStageTwo(false), isAboveLow(false), isNearHigh(false);
// 嚴格依照 Data Dictionary 與知識庫規範讀取資料
revYoy = GetField("月營收年增率", "M"); // 基本面:營收成長動能
epsCurrent = GetField("每股稅後淨利(元)", "Q"); // 基本面:當季 EPS
epsLastYear = GetField("每股稅後淨利(元)", "Q")[4]; // 基本面:去年同期 EPS
volToday = GetField("成交量", "D"); // 流動性指標
// 計算 Minervini 趨勢模板所需的長短天期均線
ma50 = Average(Close, 50);
ma150 = Average(Close, 150);
ma200 = Average(Close, 200);
// 計算 52 週 (約 250 個交易日) 的最高價與最低價
high52W = Highest(High, 250);
low52W = Lowest(Low, 250);
// 條件一:Stage 2 趨勢確認 (收盤價 > 50MA > 150MA > 200MA)
if Close > ma50 and ma50 > ma150 and ma150 > ma200 then
isStageTwo = true
else
isStageTwo = false;
// 條件二:股價至少比 52 週最低點高出 30% (加上防呆,避免除息等極端情況導致的 0 值)
if low52W <> 0 and Close > (low52W * 1.30) then
isAboveLow = true
else
isAboveLow = false;
// 條件三:股價距離 52 週最高點在 25% 以內 (代表正在高檔強勢整理,隨時準備突破)
if high52W <> 0 and Close > (high52W * 0.75) then
isNearHigh = true
else
isNearHigh = false;
// 核心量化綜合判斷:單一等號、完整邏輯包覆
// 條件說明:
// 1. isStageTwo = true (進入第二階段飆升期)
// 2. isAboveLow = true 且 isNearHigh = true (價格位階符合強勢股特徵)
// 3. revYoy > 20.0 (營收強勁成長)
// 4. epsCurrent > 0 且 epsCurrent > epsLastYear (獲利具備實質基本面支撐且超越去年同期)
// 5. volToday > 1500 (確保流動性)
if isStageTwo = true
and isAboveLow = true
and isNearHigh = true
and revYoy > 20.0
and epsCurrent > 0.0
and epsCurrent > epsLastYear
and volToday > 1500 then begin
// 觸發條件成立
ret = 1;
// Type A 選股腳本專屬:輸出九宮格檢驗欄位 (警示腳本絕對禁用)
OutputField1(revYoy, "月營收年增率(%)");
OutputField2(epsCurrent, "當季EPS(元)");
OutputField3(Close, "今日收盤價");
OutputField4(high52W, "52週最高價");
end;
回測報告如下圖

