馬克·米奈爾維尼 Mark Minervini 的投資哲學

By | 2026-04-14

馬克·米奈爾維尼(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(具體進場點分析)策略

核心投資哲學:

  1. 絕對的第二階段多頭趨勢 (Stage 2 Uptrend)
    他**「絕對不會」**買進處於下跌趨勢(第四階段)或底部盤整(第一階段)的股票。他要求股價必須已經進入「第二階段的飆升期」。為此,他訂立了嚴格的「趨勢模板」,要求均線呈現完美的多頭排列,且股價必須靠近 52 週新高,並遠離 52 週新低。
  2. 超級成長動能 (Superperformance Fundamentals)
    趨勢推升的背後必須有強大的基本面火力。他專注於尋找當季盈餘(EPS)與營收出現跳躍式成長的企業。
  3. 波動率收縮型態 (Volatility Contraction Pattern, VCP)
    在趨勢成型後,他不會盲目追高,而是等待股票進入橫盤整理。隨著整理進入尾聲,價格的波動幅度會越來越小,成交量也會極度萎縮(籌碼沉澱),這就是他最愛的 VCP 突破前夕進場點。
  4. 截斷虧損,讓利潤奔跑 (Risk-First Approach)
    他對停損毫不妥協,通常設定在買進價的 5% 到 8% 之間,絕不向下攤平。

⚙️ XScript 邏輯解構 (Type A: 選股腳本)

為了將 Minervini 著名的「趨勢模板(Trend Template)」與基本面要求程式化,我們建立一個**「完美的 Stage 2 多頭排列 + 52週位階確認 + 營收獲利雙成長」**的超級績效模型:

  1. Minervini 趨勢模板 (Stage 2 Trend)
    • 短中長均線多頭排列:收盤價 > 50日均線 > 150日均線 > 200日均線
    • 價格位階印證:目前的股價必須比「52週(約250個交易日)最低點」高出至少 30%。
    • 靠近歷史高點:目前的股價必須距離「52週最高點」不到 25%(即 收盤價 > 52週最高價 * 0.75)。
  2. 超級成長基本面 (Fundamental Firepower)
    • 營收爆發:精確使用 月營收年增率 > 20.0%。
    • 盈餘動能:每股稅後淨利(元) > 0,且必須大於去年同期(獲利加速中)。
  3. 流動性防禦 (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;

回測報告如下圖