Author Archives: 發財橘子

如何把圖片中的股票編製成一個價格指數

要把圖中的個股編製成一個價格指數,分成以下幾個步驟

第一步: 把該圖貼到Gemini上

 

 

然後打

“請把這個圖檔中的股票名稱整理成一個csv檔,加上股票代碼”

 

Gemini的回答樣本如下:

 

這份表格已將圖檔中的台積電本土供應鏈名單整理完畢,包含股票代碼股票名稱

 

股票代碼,股票名稱,類別
3680,家登,先進製程
8028,昇陽半導體,先進製程
3413,京鼎,先進製程
1560,中砂,先進製程
1785,光洋科,先進製程
6488,環球晶,先進製程
3587,閎康,先進製程
3131,弘塑,先進封裝
6187,萬潤,先進封裝
3583,辛耘,先進封裝
2467,志聖,先進封裝
5443,均豪,先進封裝
6640,均華,先進封裝
6664,群翊,先進封裝
5536,聖暉,廠務工程與機電
6797,銳澤,廠務工程與機電
3402,漢科,廠務工程與機電
4749,新應材,材料
7768,頌勝,材料
4755,三福化工,材料
3313,實聯精密,材料 (圖中標示實聯精密)
2404,漢唐,廠務工程與機電/檢測
7769,鴻勁精密,檢測
7856,漢民測試,檢測
6515,穎崴,檢測
6510,中華精測,檢測
6223,旺矽,檢測
6196,帆宣,廠務工程與機電
6139,亞翔,廠務工程與機電
6691,洋基工程,廠務工程與機電

把它解析出來的股票代碼及股名的表格存成一個txt 或csv檔

接下來切換到Geminixscript的筆記本項下,然後打

“請把附檔中的股票組成一個成份股簡單價格平均指標”

這裡要特別跟Gemini交代兩件事

一,代碼是.TW不是.TT

二,需要示範陣列怎麼寫

array:ValueArray[6](0);

valuearray[1]=GetSymbolField(“LMT.US”,”收盤價”);

valuearray[2]=GetSymbolField(“BA.US”,”收盤價”);

valuearray[3]=GetSymbolField(“RTN.US”,”收盤價”);

valuearray[4]=GetSymbolField(“GD.US”,”收盤價”);

valuearray[5]=GetSymbolField(“NOC.US”,”收盤價”);

valuearray[6]=GetSymbolField(“UTX.US”,”收盤價”);

value2=array_sum(valuearray,1,6);

plot1(value2); 這是SAMPLE CODE你參考一下

 

最終生成的腳本如下

// 1. 宣告數值陣列 (預設值為 0)
Array: priceArray[30](0); 
Var: total_price(0), avg_index(0);

// 2. 直接取價並存入數值陣列 (統一使用 .TW)
priceArray[1] = GetSymbolField("3680.TW", "Close"); // 家登
priceArray[2] = GetSymbolField("8028.TW", "Close"); // 昇陽半導體
priceArray[3] = GetSymbolField("3413.TW", "Close"); // 京鼎
priceArray[4] = GetSymbolField("1560.TW", "Close"); // 中砂
priceArray[5] = GetSymbolField("1785.TW", "Close"); // 光洋科
priceArray[6] = GetSymbolField("6488.TW", "Close"); // 環球晶
priceArray[7] = GetSymbolField("3587.TW", "Close"); // 閎康
priceArray[8] = GetSymbolField("3131.TW", "Close"); // 弘塑
priceArray[9] = GetSymbolField("6187.TW", "Close"); // 萬潤
priceArray[10] = GetSymbolField("3583.TW", "Close"); // 辛耘
priceArray[11] = GetSymbolField("2467.TW", "Close"); // 志聖
priceArray[12] = GetSymbolField("5443.TW", "Close"); // 均豪
priceArray[13] = GetSymbolField("6640.TW", "Close"); // 均華
priceArray[14] = GetSymbolField("6664.TW", "Close"); // 群翊
priceArray[15] = GetSymbolField("5536.TW", "Close"); // 聖暉
priceArray[17] = GetSymbolField("3402.TW", "Close"); // 漢科
priceArray[18] = GetSymbolField("4749.TW", "Close"); // 新應材

priceArray[20] = GetSymbolField("4755.TW", "Close"); // 三福化工
priceArray[21] = GetSymbolField("3313.TW", "Close"); // 實聯精密
priceArray[22] = GetSymbolField("2404.TW", "Close"); // 漢唐
priceArray[23] = GetSymbolField("7769.TW", "Close"); // 鴻勁精密

priceArray[25] = GetSymbolField("6515.TW", "Close"); // 穎崴
priceArray[26] = GetSymbolField("6510.TW", "Close"); // 中華精測
priceArray[27] = GetSymbolField("6223.TW", "Close"); // 旺矽
priceArray[28] = GetSymbolField("6196.TW", "Close"); // 帆宣
priceArray[29] = GetSymbolField("6139.TW", "Close"); // 亞翔
priceArray[30] = GetSymbolField("6691.TW", "Close"); // 洋基工程

// 3. 使用 Array_Sum 將陣列索引 1 到 30 的數值加總
total_price = Array_Sum(priceArray, 1, 30);

// 4. 計算簡單平均 (除以 30 檔)
avg_index = total_price / 27;

// 5. 繪製指標
Plot1(avg_index, "半導體平均指數");

拿這個腳本去畫圖

把這個指標放在副圖,然後主圖選台積電,畫出來的圖如下圖

如果轉成60分鐘線,對照圖如下

史蒂夫·克拉克的交易哲學

史蒂夫·克拉克(Steve Clark)是 Omni Partners 的創辦人,也是傑克·史瓦格(Jack Schwager)在《對沖基金市場巫師》(Hedge Fund Market Wizards)中採訪的頂尖宏觀與事件驅動型避險基金經理人。

與許多執著於「買在最低點」的價值投資者不同,Clark 的交易哲學極度務實且充滿紀律,他的核心名言是:「做更多有效的事,少做無效的事(Do more of what works and less of what doesn’t)。」

以下我將為您整理他的過往經歷、核心投資哲學,並將其轉化為符合 XQ 系統限制與知識庫欄位規範的 XScript 量化選股腳本。

💡 史蒂夫·克拉克 (Steve Clark) 經歷與投資哲學

過往經歷:

Steve Clark 早年從倫敦的自營交易員起家,隨後創立了 Omni Partners 避險基金。他在經歷了無數次的市場多空循環後,意識到預測市場的頂部或底部是徒勞的。他的基金以極低的回撤(Drawdown)和穩定的雙位數年化報酬率著稱,這完全歸功於他鋼鐵般的交易紀律與順勢操作法則。

核心投資哲學:

  1. 順勢而為:做更多有效的事 (Trend Following)
    他絕對不向下攤平,也不喜歡「接刀子」。他認為,如果一檔股票的趨勢是向上的,這代表市場的資金正在認同它,這就是「有效的事」,應該順勢參與;反之,跌破關鍵支撐就該立刻停損。
  2. 等待屬於你的好球 (Wait for the Right Pitch)
    他將交易比喻為棒球,強調交易員沒有被三振的壓力。他只在「技術面趨勢強烈」且同時具備「基本面催化劑(如營收大增、獲利轉好)」的共振點時才揮棒重倉。
  3. 部位規模與流動性控管 (Sizing & Liquidity)
    他非常看重資金的靈活性,一旦發現自己看錯,他會毫不猶豫地砍倉。因此,他只參與流動性極佳的市場或標的,確保進出不會產生龐大的滑價成本。

 

XScript 程式碼

// 腳本類型:Type A 選股腳本 (Screener)
// 策略名稱:Steve Clark 順勢動能與基本面共振策略
// 策略邏輯:只做「有效的事」,尋找技術面呈現強勢多頭排列,且具備營收成長催化劑的高流動性標的

// 確保長天期歷史資料讀取足夠 (計算 60 日均線需要)
SetTotalBar(60);

// 變數宣告鐵律:無底線、無系統保留字 daily、預設給定初始值
var: revYoy(0), epsNum(0), volToday(0);
var: isTrendUp(false);

// 嚴格依照 Data Dictionary 與知識庫規範讀取資料
revYoy = GetField("月營收年增率", "M"); // 基本面催化劑:營收成長動能
epsNum = GetField("每股稅後淨利(元)", "Q"); // 基本面防呆:必須包含(元)
volToday = GetField("成交量", "D"); // 流動性控管

// 條件一:技術面順勢 (確保股價、月線、季線呈現多頭排列)
if Close > Average(Close, 20) and Average(Close, 20) > Average(Close, 60) then 
isTrendUp = true 
else 
isTrendUp = false;

// 核心量化綜合判斷:單一等號、完整邏輯包覆
// 條件說明:
// 1. isTrendUp = true (技術面順勢,市場資金已認同)
// 2. revYoy > 10.0 (營收雙位數成長,提供強勁的基本面好球)
// 3. epsNum > 0.0 (公司具備實質獲利)
// 4. volToday > 2000 (確保極佳的流動性,符合避險基金進出標準)
if isTrendUp = true and revYoy > 10.0 and epsNum > 0.0 and volToday > 2000 then begin

// 觸發條件成立
ret = 1;

// Type A 選股腳本專屬:輸出九宮格檢驗欄位 (警示腳本絕對禁用)
OutputField1(revYoy, "月營收年增率(%)");
OutputField2(epsNum, "每股稅後淨利(元)");
OutputField3(volToday, "今日成交量");
end;

持有22天,過去12年,所有台股的回測報告

Michael Sivy的投資哲學

 

麥可·席威(Michael Sivy)並非那種在避險基金裡殺進殺出的神祕怪傑,他是美國《Money》雜誌極具影響力的專欄作家與編輯,也是《Michael Sivy’s Rules of Investing》(麥可席威的投資法則)一書的作者。

他被譽為「美國散戶的守護神」。他最偉大的貢獻,是將華爾街那些艱澀難懂的估值模型,簡化為一般投資人也能輕鬆執行的 「GARP(合理價格成長)與總報酬法則」 。

以下為您整理他的過往經歷、核心投資哲學,並將他最著名的「12% 總報酬法則」,轉化為符合 XQ 系統限制與知識庫欄位規範的 XScript 量化選股腳本。

💡 麥可·席威 (Michael Sivy) 經歷與投資哲學

過往經歷:

Michael Sivy 在《Money》雜誌撰寫了數十年的專欄。他深知散戶沒有龐大的研究團隊,也沒有時間每天盯盤。因此,他致力於尋找那些「你買了之後可以安心睡覺、長期持有,且能穩定打敗定存與通膨」的優質大型企業。他極度排斥那些沒有盈餘支撐的熱門投機股。

核心投資哲學:

  1. 核心靈魂:總報酬率法則 (The Total Return Rule)
    這是 Sivy 最經典的發明!他認為投資的預期報酬來自兩個地方:「股息殖利率」加上「企業成長率」。他要求投資人買進的股票,其 「殖利率 + 長期盈餘/營收成長率」必須大於或等於 12% 。這意味著,如果一家公司成長較慢(例如每年成長 7%),那它就必須配發較高的股息(例如 5%)來補足;反之亦然。
  2. 成長以合理價格為前提 (GARP – Growth At a Reasonable Price)
    他不買本益比超過 20 倍以上的股票,即使它成長得再快。他認為過高的估值會透支未來的報酬,一旦成長不如預期,股價就會面臨毀滅性的修正。
  3. 穩定獲利與大型護城河 (Stability & Large-Caps)
    他建議散戶將核心資金放在中大型股上,因為這些公司擁有成熟的商業模式,能夠抵禦經濟衰退。他要求公司必須有實質且持續成長的稅後淨利。
  4. 股息是真實的護城河 (Dividends Don’t Lie)
    他非常看重股息,因為這代表公司的現金流是真實的,且管理層願意與股東分享利潤。

⚙️ XScript 邏輯解構 (Type A: 選股腳本 – 席威 12% 總報酬法則)

為了在 XScript 中完美重現 Michael Sivy 的哲學,我們將建立一個**「中大型市值 + 合理估值 + (殖利率 + 營收成長率 > 12%)」**的完美 GARP 模型:

  1. 中大型穩健護城河 (Mid/Large-Cap Focus)
    • 限制 總市值(億) > 100.0 億(避開波動過大的小型股)。
  2. 合理的估值 (Reasonable Valuation)
    • 本益比 大於 0 且 < 20.0 倍(貫徹 GARP 精神,拒絕昂貴的股票)。
  3. 強健的獲利底氣 (Earnings Stability)
    • 當季 每股稅後淨利(元) > 0,且必須大於去年同期的 EPS(確認獲利正在穩健成長)。
  4. 核心靈魂:12% 總報酬率 (Total Return >= 12%)
    • 我們將 殖利率月營收年增率(作為成長動能的代理指標)相加。
    • 創造一個名為 totalReturn 的自訂變數,要求 totalReturn > 12.0。這完美詮釋了 Sivy 「要嘛高配息、要嘛高成長,或者兩者兼具」的動態平衡法則。
    • 同時要求 殖利率 > 2.0%(確保公司確實有配息的習慣)。
  5. 流動性防呆 (Liquidity)
    • 限制 成交量 > 1000 張。

腳本

// 腳本類型:Type A 選股腳本 (Screener)
// 策略名稱:Michael Sivy GARP與12%總報酬策略
// 策略邏輯:尋找本益比低於20、具備配息能力,且「殖利率加上營收成長率大於 12%」的中大型穩健成長股

// 確保長天期歷史資料讀取足夠 (讀取去年同期 EPS 需要)
SetTotalBar(60);

// 變數宣告鐵律:無底線、無系統保留字 daily、預設給定初始值
var: marketCap(0), peRatio(0), divYield(0), revYoy(0);
var: epsCurrent(0), epsLastYear(0), volToday(0), totalReturn(0);

// 嚴格依照 Data Dictionary 與知識庫規範讀取資料
marketCap = GetField("總市值(億)", "D"); // 規模指標:鎖定百億以上中大型股
peRatio = GetField("本益比", "D"); // 估值指標:合理價格 (P/E < 20)
divYield = GetField("殖利率", "D"); // 收益指標:股息防護墊
revYoy = GetField("月營收年增率", "M"); // 成長指標:營收動能
epsCurrent = GetField("每股稅後淨利(元)", "Q"); // 獲利指標:當季 EPS
epsLastYear = GetField("每股稅後淨利(元)", "Q")[4]; // 獲利指標:去年同期 EPS
volToday = GetField("成交量", "D"); // 流動性指標

// 計算 Michael Sivy 最核心的「總報酬率 (Total Return)」
// 將股息殖利率與營收成長率相加,動態衡量這檔股票的預期綜合回報
totalReturn = divYield + revYoy;

// 核心量化綜合判斷:單一等號、完整邏輯包覆
// 條件說明:
// 1. marketCap > 100.0 (鎖定中大型企業,追求長線安穩)
// 2. peRatio > 0.0 且 peRatio < 20.0 (拒絕昂貴的投機股,落實 GARP 精神)
// 3. divYield > 2.0 (要求公司具備基本的配息誠意)
// 4. epsCurrent > 0.0 且 epsCurrent > epsLastYear (獲利持續成長,非衰退股)
// 5. totalReturn > 12.0 (Sivy 靈魂法則:股息加成長必須提供超過 12% 的回報潛力)
// 6. volToday > 1000 (確保基本流動性)
if marketCap > 100.0 
and peRatio > 0.0 and peRatio < 20.0 
and divYield > 2.0 
and epsCurrent > 0.0 
and epsCurrent > epsLastYear 
and totalReturn > 12.0 
and volToday > 1000 then begin

// 觸發條件成立
ret = 1;

// Type A 選股腳本專屬:輸出九宮格檢驗欄位 (警示腳本絕對禁用)
OutputField1(totalReturn, "Sivy總回報率");
OutputField2(divYield, "殖利率(%)");
OutputField3(revYoy, "月營收年增率(%)");
OutputField4(peRatio, "本益比");
OutputField5(epsCurrent, "當季EPS(元)");
end;

 

回測報告

Robert L. Renck Jr.的投資哲學

【財報照妖鏡與真實盈餘的捍衛者:Robert L. Renck Jr.】

一、 生平與市場定位 (Background & Market Positioning)

  • 獨立研究機構的掌舵者:Renck 是紐約精品投資銀行與研究顧問公司 R.L. Renck & Co. 的創辦人兼執行長。他的公司專門為機構投資人(如避險基金與大型共同基金)提供深度的企業財報拆解與盡職調查(Due Diligence)。
  • 戳破華爾街幻象的「吹哨人」角色:在 1990 年代末期,美國企業界盛行透過極度複雜的併購案與會計魔術(如大舉認列重組費用)來粉飾太平。Renck 憑藉著對數字的極度敏感,經常在華爾街投行分析師集體看好某家公司時,出具直指核心的看空或示警報告,成為市場上少數能提前揪出財報地雷的專家。

二、 實戰戰績與經典案例 (Track Record & Case Study)

  • Cendant 假帳風暴中的清醒者:1998 年,當時華爾街的明星企業 Cendant 爆發了震驚全美的巨大財務造假醜聞。當許多大型機構因為相信了管理層宣稱的「併購協同效應」而深陷其中時,Renck 卻直指會計審計的核心漏洞。
  • 他曾留下一句投資界的經典名言: 「現金就是現金(Cash is cash)。會計師要嘛有向金融機構核實了真實的現金餘額,要嘛就是沒有。」 這句話精準道破了所有複雜財報造假的死穴——利潤可以憑空捏造,但銀行戶頭裡的現金無法無中生有。

三、 投資哲學與策略核心 (Investment Philosophy & Strategy)

Renck 的選股邏輯與分析框架,完全建立在「戳破會計操弄」的基礎上。他的核心策略可拆解為以下三個維度,非常適合直接轉化為量化選股的過濾條件(Filters)與儀表板的警示燈號:

  1. 核心指標:剩餘現金流分析(Surplus Cashflow Analysis)

Renck 是「現金流至上」的極度推崇者。他不輕信華爾街最愛的 EPS(每股盈餘),而是發展出一套被稱為「剩餘現金流」的實戰模型。

  • 底層邏輯:他將企業的「稅前淨利(Pretax Income)」與「折舊(Depreciation)」相加,並嚴格扣除維持企業營運必須的「資本支出(CapEx)」。
  • 數據穿透力:稅後淨利容易受到一次性稅務優惠或遞延所得稅的扭曲,而折舊往往是管理層用來平滑利潤的會計工具。透過這套公式,能直接透視企業「到底從核心本業中擠出了多少能自由支配的真金白銀」。
  1. 損益表是「意見」,現金流量表才是「事實」

他極度不信任損益表(Income Statement)。在 Renck 的眼中,損益表上充滿了管理層的「預估」、「攤提假設」與「主觀意見」;只有現金流量表與資產負債表上的現金科目,才是「不容反駁的事實」。當一家公司的 EPS 連年成長,但「營業現金流」卻持續停滯甚至為負值時,這在系統中必須立刻觸發最高級別的紅色背離警報。

  1. 警惕「一次性費用」與「無形資產」的膨脹

Renck 特別警告投資人必須防範企業濫用「一次性重組費用(One-time restructuring charges)」。許多高層會把日常營運的虧損打包成一次性費用,讓投資人誤以為這只是短暫的陣痛。同時,他也極度關注資產負債表上的「商譽(Goodwill)」與無形資產,一旦這些虛擬資產的比例過高,企業真實的資產淨值(Book Value)與防禦力就會大打折扣。

總結

Robert L. Renck Jr. 的存在,提醒了所有進行基本面分析的從業人員: 不要看公司「說」了什麼賺錢故事,去查帳戶裡「留」了多少現金。 將他的「剩餘現金流」概念以及「盈餘與現金流背離」的偵測邏輯,深度整合到企業診斷儀表板中,將能賦予系統極強的防禦與避雷能力。

 

AI根據這樣的想法,用XScript寫的腳本如下

// 策略:Renck 財報照妖鏡 – 真實盈餘捍衛者 (Type A 選股腳本)
// 執行環境:選股中心 (日線頻率,呼叫季報欄位)

// 確保有足夠的 K 棒來讀取去年同期(往前推4季)的財報數據
SetTotalBar(20);

// 嚴格遵守變數命名鐵律:無底線、無系統保留字、採用駝峰式命名
var: epsCurrent(0), epsLastYear(0), ocfCurrent(0), pretaxInc(0);
var: totalAsset(0), intangibleAsset(0), intangibleRatio(0);
var: isEpsGrowing(false), isCashFlowHealthy(false), isAssetSolid(false);

// 1. 取得財報數據 (修正營業現金流的正確呼叫字串)
epsCurrent = GetField(“每股稅後淨利(元)”, “Q”);
epsLastYear = GetField(“每股稅後淨利(元)”, “Q”)[4]; // 取得去年同期的 EPS
ocfCurrent = GetField(“來自營運之現金流量”, “Q”); // 【修正此行】改為官方正確欄位名稱
pretaxInc = GetField(“稅前淨利”, “Q”);
totalAsset = GetField(“資產總額”, “Q”);
intangibleAsset = GetField(“無形資產”, “Q”);

// 2. 關卡一:檢驗 EPS 是否為正且具備年成長
// 注意:XScript 的邏輯等於必須使用單一等號 “=”
if epsCurrent > epsLastYear and epsCurrent > 0 then begin
isEpsGrowing = true;
end else begin
isEpsGrowing = false;
end;

// 3. 關卡二:盈餘與現金流背離偵測 (Renck 核心精神:現金才是事實)
// 營業現金流必須為正,且至少能涵蓋 80% 的稅前淨利,避免虛報利潤
if ocfCurrent > 0 and ocfCurrent > (pretaxInc * 0.8) then begin
isCashFlowHealthy = true;
end else begin
isCashFlowHealthy = false;
end;

// 4. 關卡三:防範無形資產與商譽膨脹
// 嚴格防呆:進行除法運算前,必須確保分母不為零
if totalAsset <> 0 then begin
intangibleRatio = intangibleAsset / totalAsset;
end else begin
intangibleRatio = 0;
end;

// 無形資產佔總資產比例不得超過 15% (0.15)
if intangibleRatio < 0.15 then begin
isAssetSolid = true;
end else begin
isAssetSolid = false;
end;

// 5. 綜合判斷:所有條件皆吻合才觸發選股
if isEpsGrowing = true and isCashFlowHealthy = true and isAssetSolid = true then begin
ret = 1;
// Type A 專屬:使用 OutputField 輸出九宮格資訊,方便盤後肉眼複查
OutputField1(epsCurrent, “本季EPS(元)”);
OutputField2(ocfCurrent, “營業現金流(百萬)”);
OutputField3(intangibleRatio * 100, “無形資產佔比(%)”);
end;

 

持有九十天的回測報告如下

詹姆斯·奧爾施拉格的投資哲學

詹姆斯·奧爾施拉格(James D. Oelschlager,通常被稱為 Jim Oelschlager)是橡樹資本管理公司(Oak Associates)的創辦人。

在 1990 年代到 2000 年代初期,他所管理的白橡樹精選成長基金(White Oak Select Growth Fund)名震華爾街。與我們前面提到的許多喜歡頻繁進出、緊設停損的短線或宏觀交易員完全相反,Oelschlager 是一位**「極度集中持股、極低周轉率的長期成長股信仰者」**。

以下為您整理他的過往經歷、核心投資哲學,並將他這套「無視雜音、抱緊處理」的優質大型成長股哲學,轉化為符合 XQ 系統限制與知識庫欄位規範的 XScript 量化選股腳本。

💡 詹姆斯·奧爾施拉格 (James D. Oelschlager) 經歷與投資哲學

過往經歷:

Jim Oelschlager 原本是凡士通輪胎(Firestone Tire & Rubber)的退休金操盤手,後來獨立創辦 Oak Associates。他患有多發性硬化症,大半生都坐在輪椅上,但這絲毫沒有阻礙他成為華爾街最頂尖的選股大師。他的基金周轉率極低(常常不到 20%,意味著平均持股長達 5 年以上),且持股極度集中(通常只持有 20 檔左右的股票)。

核心投資哲學:

  1. 擁抱長期長期大趨勢 (Secular Trends)
    他完全不看短期的總體經濟預測(如聯準會下個月升息幾碼),他認為那些都是「雜音」。他專注於未來 5 到 10 年不可逆的大趨勢,例如科技創新、人口結構老化等。
  2. 優質的大型成長股 (Large-Cap Quality Growth)
    他喜歡買進那些在產業中佔據統治地位、擁有極寬廣護城河的大型企業。這些公司必須具備極高的「股東權益報酬率(ROE)」與強大的「營業利益率」。
  3. 無情的盈餘驅動 (Earnings-Driven)
    他深信「長期來看,股價100%跟著盈餘走」。只要公司的營收與盈餘持續以雙位數成長,就算短期遇到市場崩盤,他也絕對不賣。
  4. 買對,然後抱緊 (Buy Right and Hold Tight)
    這是他最著名的座右銘。他認為多數投資人之所以賺不到大錢,是因為他們在好公司身上賺了一點點就跑。他要求在長期多頭趨勢不變的情況下,必須死抱著金雞母。

⚙️ XScript 邏輯解構 (Type A: 選股腳本 – 集中持股與長期成長策略)

為了在 XScript 中完美重現 Jim Oelschlager 的哲學,我們建立一個**「大型權值 + 高利潤護城河 + 雙位數成長 + 長線多頭保護」**的長線抱緊模型:

  1. 鎖定大型護城河 (Large-Cap Focus)
    • 限制 總市值(億) > 300.0 億(鎖定各產業的龍頭或大型企業,確保它們具備長期生存的能力)。
  2. 頂級的本業品質 (Top-Tier Quality)
    • 資本運用效率:股東權益報酬率 (ROE) > 15.0%(Oelschlager 極度看重的優質指標)。
    • 本業護城河:營業利益率 > 10.0%(確保公司不僅營收大,而且賣出的產品利潤豐厚,不怕價格戰)。
  3. 推動股價的成長引擎 (Earnings Engine)
    • 營收雙位數成長:精確使用 月營收年增率 > 15.0%。
    • 實質獲利防呆:每股稅後淨利(元) > 0。
  4. 無視雜音的長線大趨勢 (Secular Uptrend)
    • 既然是抱長線,我們不看短期的 5 日線或 20 日線。我們要求今日 收盤價 必須穩穩站上 200 日均線(年線)。只要在年線之上,中間的回檔對他來說都是市場雜音。
  5. 流動性防呆 (Liquidity)
    • 限制 成交量 > 1000 張。

XScript 程式碼 (Golden Example 架構)

// 腳本類型:Type A 選股腳本 (Screener)
// 策略名稱:Jim Oelschlager 集中持股與長期優質成長策略
// 策略邏輯:尋找市值龐大、具備極高 ROE 與營業利益率,且營收維持雙位數成長,股價穩居年線之上的長線金雞母

// 確保長天期歷史資料讀取足夠 (計算 200 日均線需要)
SetTotalBar(260);

// 變數宣告鐵律:無底線、無系統保留字 daily、預設給定初始值
var: marketCap(0), roeNum(0), opMargin(0), revYoy(0), epsCurrent(0), volToday(0);
var: ma200(0), isSecularUptrend(false);

// 嚴格依照 Data Dictionary 與知識庫規範讀取資料
marketCap = GetField(“總市值(億)”, “D”); // 規模過濾:鎖定大型龍頭股
roeNum = GetField(“股東權益報酬率”, “Q”); // 品質過濾:頂級的資本運用效率
opMargin = GetField(“營業利益率”, “Q”); // 品質過濾:強大的本業獲利護城河
revYoy = GetField(“月營收年增率”, “M”); // 成長引擎:雙位數營收成長
epsCurrent = GetField(“每股稅後淨利(元)”, “Q”); // 獲利防呆:當季實質獲利
volToday = GetField(“成交量”, “D”); // 流動性指標

// 計算 200 日均線 (年線,代表長期的世俗大趨勢)
ma200 = Average(Close, 200);

// 條件一:長期大趨勢保護 (股價大於 200 日均線,無視短期震盪雜音)
if Close > ma200 then
isSecularUptrend = true
else
isSecularUptrend = false;

// 核心量化綜合判斷:單一等號、完整邏輯包覆
// 條件說明:
// 1. marketCap > 100.0 (市值大於 100 億的大型股,提供長線抱緊的安心感)
// 2. roeNum > 10.0 且 opMargin > 10.0 (同時具備高 ROE 與高營業利益率,這是強大護城河的鐵證)
// 3. revYoy > 10.0 (營收維持 10% 以上的高速成長,盈餘驅動股價)
// 4. epsCurrent > 0.0 (本業確實有賺錢)
// 5. isSecularUptrend = true (長線格局依然是牛市)
// 6. volToday > 1000 (確保基本進出流動性)
if marketCap > 100.0
and roeNum > 10.0
and opMargin > 10.0
and revYoy > 10.0
and epsCurrent > 0.0
and isSecularUptrend = true
and volToday > 1000 then begin

// 觸發條件成立
ret = 1;

// Type A 選股腳本專屬:輸出九宮格檢驗欄位 (警示腳本絕對禁用)
OutputField1(marketCap, “總市值(億)”);
OutputField2(roeNum, “股東權益報酬率(%)”);
OutputField3(opMargin, “營業利益率(%)”);
OutputField4(revYoy, “月營收年增率(%)”);
OutputField5(ma200, “200日均線(年線)”);
end;

台股持有九十天的回測報告

加雷特·范瓦格納(Garrett Van Wagoner)的投資哲學

加雷特·范瓦格納(Garrett Van Wagoner),絕對是華爾街歷史上將「極致成長股(Hyper-Growth)」發揮到最瘋狂境界的傳奇基金經理人。

在 1990 年代末期,他所管理的 Van Wagoner Emerging Growth Fund 曾經創造了令人咋舌的績效(1999 年單年報酬率高達 291%!)。與那些追求穩健、要求本益比合理的 GARP 大師不同,Van Wagoner 是一位徹頭徹尾的 「微型/小型超成長股(Micro/Small-Cap Hyper-Growth)」 狂熱分子。

以下為您整理他的過往經歷、極端的核心投資哲學,並將這套「無視估值、只求爆發」的狂熱哲學,轉化為符合 XQ 系統限制與知識庫欄位規範的 XScript 量化選股腳本。

💡 加雷特·范瓦格納 (Garrett Van Wagoner) 經歷與投資哲學

過往經歷:

Garrett Van Wagoner 喜歡在新興科技、醫療生技等充滿顛覆性創新的領域中尋寶。他深知,要創造倍數級的暴利,就不能買那些已經長大的大象。 這種極端策略在大多頭時期能創造神話,但在 2000 年網路泡沫破裂時,他的基金也遭遇了毀滅性的重挫。這是一套「高報酬伴隨極端高風險」的雙面刃策略。

核心投資哲學:

  1. 極端的超成長 (Hyper-Growth)
    他對傳統的 15% 或 20% 成長率嗤之以鼻。他尋找的是營收與盈餘成長率高達 40%、50% 甚至三位數的超級動能股。只要成長速度夠快,他完全不在乎本益比(P/E)是 50 倍還是 100 倍。
  2. 微型與小型股 (Micro & Small-Caps)
    只有基期極低的小型企業,才有可能維持這種不可思議的成長率。他專攻那些華爾街大型機構根本還沒注意到、或者因為市值太小而無法買進的標的。
  3. 無情的動能與趨勢 (Ruthless Momentum)
    他的周轉率極高。只要公司發布的財報稍有不如預期,或者股價的強勢動能遭到破壞,他會毫不猶豫地立刻清倉。他只和「正在瘋狂上漲」的股票做朋友。
  4. 尋找顛覆性題材 (Disruptive Themes)
    他偏好那些擁有全新商業模式或革命性產品的公司,因為這些公司的潛在市場(TAM)難以估量,容易引發市場的無限想像與追捧。

⚙️ XScript 邏輯解構 (Type A: 選股腳本 – 狂熱微型超成長策略)

為了在 XScript 中完美重現 Van Wagoner 的極致瘋狂,我們將拋棄所有的估值防護墊(不看 PE、不看 PB),純粹建立一個 「極小市值 + 營收與盈餘極端爆發 + 強勢多頭」 的超級動能模型:

  1. 鎖定微型與小型甜蜜點 (Micro/Small-Cap)
    • 限制 總市值(億) 大於 0 且 < 100.0 億(專攻體態最輕盈、最具爆發力的族群)。
  2. 狂熱的雙引擎爆發 (Hyper-Growth Engine)
    • 營收極端爆發:精確使用 月營收年增率 > 40.0%(這是極度嚴苛的成長門檻)。
    • 盈餘極端爆發:當季 每股稅後淨利(元) 必須大於去年同期,且透過程式碼精算,要求其 EPS 年成長率 > 40.0%
  3. 強勢多頭排列 (Strong Momentum)
    • 既然是超成長股,股價勢必已經反映。要求今日 收盤價 > 20 日均線(月線),且 20 日均線 > 60 日均線(季線),確認處於飆股標準的上升軌道。
  4. 流動性防呆 (Liquidity)
    • 限制 成交量 > 1000 張(確保在這場狂熱的派對中,您隨時有門可以逃生)。

💻 XScript 程式碼 (Golden Example 架構)

// 腳本類型:Type A 選股腳本 (Screener)
// 策略名稱:Garrett Van Wagoner 狂熱微型超成長策略
// 策略邏輯:徹底拋棄估值,專攻市值小於百億,且營收與盈餘同步出現 40% 以上極端爆發性成長的強勢多頭飆股

// 確保長天期歷史資料讀取足夠 (計算 60 日均線與去年同期 EPS 需要)
SetTotalBar(60);

// 變數宣告鐵律:無底線、無系統保留字 daily、預設給定初始值
var: marketCap(0), revYoy(0), epsCurrent(0), epsLastYear(0), volToday(0);
var: epsGrowthRate(0), ma20(0), ma60(0);
var: isHyperGrowth(false), isTrendUp(false);

// 嚴格依照 Data Dictionary 與知識庫規範讀取資料
marketCap = GetField("總市值(億)", "D"); // 規模指標:微型與小型股
revYoy = GetField("月營收年增率", "M"); // 成長指標:營收極端爆發
epsCurrent = GetField("每股稅後淨利(元)", "Q"); // 成長指標:當季 EPS
epsLastYear = GetField("每股稅後淨利(元)", "Q")[4]; // 成長指標:去年同期 EPS
volToday = GetField("成交量", "D"); // 流動性指標

// 計算均線 (動能與趨勢確認)
ma20 = Average(Close, 20);
ma60 = Average(Close, 60);

// 計算 EPS 年成長率 (%),加入防呆機制避免去年 EPS 為 0 或負數導致計算失真
if epsLastYear > 0.0 then 
epsGrowthRate = ((epsCurrent - epsLastYear) / epsLastYear) * 100.0 
else 
epsGrowthRate = 0.0;

// 條件一:極端超成長 (營收與 EPS 的年增率雙雙突破 40%)
if revYoy > 40.0 and epsGrowthRate > 40.0 then 
isHyperGrowth = true 
else 
isHyperGrowth = false;

// 條件二:強勢多頭排列 (股價在月線之上,且月線大於季線,動能強勁)
if Close > ma20 and ma20 > ma60 then 
isTrendUp = true 
else 
isTrendUp = false;

// 核心量化綜合判斷:單一等號、完整邏輯包覆
// 條件說明:
// 1. marketCap > 0.0 且 marketCap < 100.0 (鎖定百億以下的微型/小型飆股)
// 2. isHyperGrowth = true (符合 Van Wagoner 對於「超成長」的狂熱標準)
// 3. isTrendUp = true (市場資金已經點火,趨勢確認向上)
// 4. volToday > 1000 (確保基本流動性,以便在動能反轉時能迅速撤退)
if marketCap > 0.0 and marketCap < 100.0 
and isHyperGrowth = true 
and isTrendUp = true 
and volToday > 1000 then begin

// 觸發條件成立
ret = 1;

// Type A 選股腳本專屬:輸出九宮格檢驗欄位 (警示腳本絕對禁用)
OutputField1(epsGrowthRate, "EPS年增率(%)");
OutputField2(revYoy, "月營收年增率(%)");
OutputField3(marketCap, "總市值(億)");
OutputField4(Close, "今日收盤價");
end;

 

應用在台股,持有20天後出場的回測報告如下

威廉·達頓 (William M. Dutton) 的投資哲學

William Dutton 在 1992 年被晨星(Morningstar)選為「年度最佳基金經理人」。他操盤的 Skyline Special Equities Fund 是一檔非常經典的「小型價值股(Small-Cap Value)」基金,但他又比傳統價值投資人多了幾分對「成長與動能」的渴望。

以下為您整理他的核心投資哲學,並將他這套精緻的「低估值 + 毛利改善 + 小型成長」法則,轉化為符合 XQ 系統限制與知識庫欄位規範的 XScript 量化選股腳本。

💡 威廉·達頓 (William M. Dutton) 經歷與投資哲學

過往經歷:

William Dutton 從 1980 年代就開始在市場中打滾。他的投資風格被定義為「買進具備成長潛力、但目前股價表現不佳的公司(Buy Under-performing Companies with Growth Potential)」。他最特別的一點是「賣出紀律」:傳統價值派喜歡買進後死抱不放,但 Dutton 一旦發現股價達到「公平估值(Fair Valuation)」,他會立刻獲利了結,因此他的平均持股時間通常不到兩年。

核心投資哲學(選股六大法則):

  1. 鎖定小型股池 (Small-Cap Universe)
    他專注於總市值介於 1 億至 20 億美元之間的小型股,因為這裡最容易產生無效率的定價錯誤。
  2. 絕對的便宜 (Deep Discount on P/E)
    他要求股票的「過去四季本益比」與「預估本益比」,都必須低於市場平均值至少 20% 以上。
  3. 成長潛力 (Growth Potential)
    他不是買垃圾,他要求公司未來的盈餘成長率至少達 10% 以上,或者營收成長率必須擊敗市場平均。
  4. 毛利率的實質改善 (Improving Gross Margins)
    這是他非常犀利的一把濾網!他要求公司的「毛利率必須正在提升」。這證明公司不僅僅是營收在成長,其產品在市場上的競爭力與定價權也在增強。
  5. 強健的償債能力 (Strong Interest Coverage)
    他要求公司的「營業利益」必須遠大於「利息支出」(利息支出除以營業利益低於 50%)。這代表公司的債務壓力極低,財務體質非常強悍。

⚙️ XScript 邏輯解構 (Type A: 選股腳本 – 達頓小型價值與毛利改善策略)

為了在 XQ 中完美還原 William Dutton 的選股六大法則,我們建立一個**「低市值 + 低本益比 + 營收高成長 + 毛利率年增 + 低負債」**的模型:

  1. 小型股甜蜜點 (Small-Cap)
    • 限制 總市值(億) 大於 0 且 < 200.0 億。
  2. 打折的估值 (Discounted P/E)
    • 為了模擬「低於市場平均 20%」,我們嚴格要求 本益比 大於 0 且 < 15.0 倍。
  3. 雙位數成長動能 (Double-Digit Growth)
    • 營收動能:月營收年增率 > 10.0%。
    • 獲利防呆:每股稅後淨利(元) > 0。
  4. 核心亮點:毛利率提升 (Margin Expansion)
    • 我們讀取當季的 營業毛利率,並要求它必須大於去年同期(即 grossMargin > grossMarginLast),證明產品競爭力正在增強。
  5. 強健的財務體質 (Financial Health)
    • 負債比率 < 40.0% 作為低利息負擔與財務健康的代理指標。
  6. 流動性防呆 (Liquidity)
    • 限制 成交量 > 1000 張。

XScript 程式碼  

// 腳本類型:Type A 選股腳本 (Screener)
// 策略名稱:William Dutton 小型價值與毛利改善策略
// 策略邏輯:專注中小型股,尋找本益比偏低、營收雙位數成長,且「毛利率較去年同期提升」的優質潛力股

// 確保長天期歷史資料讀取足夠 (讀取去年同期毛利率需要)
SetTotalBar(60);

// 變數宣告鐵律:無底線、無系統保留字 daily、預設給定初始值
var: marketCap(0), peRatio(0), revYoy(0), epsCurrent(0);
var: grossMargin(0), grossMarginLast(0), debtRatio(0), volToday(0);

// 嚴格依照 Data Dictionary 與知識庫規範讀取資料
marketCap = GetField("總市值(億)", "D"); // 規模指標:鎖定小型股
peRatio = GetField("本益比", "D"); // 估值指標:低於市場平均的便宜價格
revYoy = GetField("月營收年增率", "M"); // 成長指標:10% 以上的營收成長
epsCurrent = GetField("每股稅後淨利(元)", "Q"); // 獲利防呆:實質獲利
grossMargin = GetField("營業毛利率", "Q"); // 品質指標:當季毛利率
grossMarginLast = GetField("營業毛利率", "Q")[4]; // 品質指標:去年同期毛利率 (Dutton 的核心濾網)
debtRatio = GetField("負債比率", "Q"); // 財務指標:低負債,確保利息覆蓋率高
volToday = GetField("成交量", "D"); // 流動性指標

// 核心量化綜合判斷:單一等號、完整邏輯包覆
// 條件說明:
// 1. marketCap > 0.0 and marketCap < 200.0 (鎖定具備錯誤定價潛力的小型股)
// 2. peRatio > 0.0 and peRatio < 15.0 (價值投資精神,拒絕昂貴估值)
// 3. revYoy > 10.0 (具備雙位數的實質成長潛力)
// 4. grossMargin > grossMarginLast (核心靈魂:毛利率較去年同期提升,證明產品競爭力增強)
// 5. debtRatio < 40.0 (財務體質強健,不怕升息循環)
// 6. epsCurrent > 0.0 (本業有實質獲利)
// 7. volToday > 1000 (確保進出流動性)
if marketCap > 0.0 and marketCap < 200.0 
and peRatio > 0.0 and peRatio < 15.0 
and revYoy > 10.0 
and grossMargin > grossMarginLast 
and debtRatio < 40.0 
and epsCurrent > 0.0 
and volToday > 1000 then begin

// 觸發條件成立
ret = 1;

// Type A 選股腳本專屬:輸出九宮格檢驗欄位 (警示腳本絕對禁用)
OutputField1(grossMargin, "當季毛利率(%)");
OutputField2(grossMarginLast, "去年同期毛利率(%)");
OutputField3(peRatio, "本益比");
OutputField4(revYoy, "月營收年增率(%)");
OutputField5(marketCap, "總市值(億)");
end;

持有90天的回測報告

Dan Sullivan 的投資哲學

Dan Sullivan 是美國歷史最悠久、最受尊崇的投資通訊《圖表派》(The Chartist)的創辦人與發行人。如果說前面我們見識了各種基本面與動能的混血,那麼 Sullivan 就是一位**「純粹到不能再純粹的相對強度(Relative Strength)與趨勢跟隨者」**。

他曾公開表示:「當你把時間花在研究盈餘、本益比或總體經濟時,你只是在浪費時間。市場上唯一真實的,只有價格的相對表現。」

以下為您整理這位「圖表派宗師」的核心投資哲學,並將他這套「絕對強勢與趨勢跟隨法則」,轉化為符合 XQ 系統限制與知識庫欄位規範的 XScript 量化選股腳本,作為我們 Type A 博物館的終極館藏!

💡 丹.蘇利文 (Dan Sullivan) 經歷與投資哲學

核心投資哲學:

  1. 相對強度是一切 (Relative Strength is King)
    Sullivan 不買跌深反彈的股票,也不買大盤漲 10% 它只漲 5% 的溫吞股。他只買那些「漲幅遠遠超越大盤與其他多數股票」的超級領頭羊。
  2. 52 週新高的魔法 (The Magic of 52-Week Highs)
    他最喜歡的買進訊號,就是股價突破或逼近 52 週(一年)新高。他深信,會創下一年新高的股票,代表上方已經沒有套牢賣壓,前方是萬里無雲的飆漲天空。
  3. 長線趨勢的保護 (The Long-Term Trend)
    即使股票短期很強勢,但如果它跌破了長期的 200 日移動平均線(年線),在 Sullivan 眼裡,這檔股票就已經「死亡」了。他要求股票必須穩穩站在中長期均線之上。
  4. 徹底無視基本面 (Zero Fundamentals)
    他不在乎這家公司是賣半導體還是賣衛生紙,他完全不看 EPS、營收或 P/E。只要資金在推升它的價格,它就是好股票。

⚙️ XScript 邏輯解構 (Type A: 選股腳本 – 蘇利文絕對相對強度策略)

為了在台股的 XQ 系統中完美還原 Dan Sullivan 的哲學,我們將徹底拔除所有基本面條件,建立一個**「長線多頭 + 半年內極端強勢 + 逼近一年新高」**的純技術動能模型:

  1. 大趨勢的生命線 (Long-Term Trend)
    • 多頭排列:今日 收盤價 必須大於 50 日均線(季線),且 50 日均線必須大於 200 日均線(年線)。
  2. 相對強度的量化 (Relative Strength Proxy)
    • 既然是市場最強的領頭羊,我們計算過去半年(約 120 個交易日)的「價格變動率(Rate of Change, ROC)」。要求 roc120 > 30.0%(代表這檔股票在過去半年內已經漲了超過 30%,展現出極強的相對強度)。
  3. 萬里無雲的創新高 (Near 52-Week High)
    • 今日 收盤價 距離過去 250 天的最高價不到 5%(即 Close >= high250 * 0.95),隨時準備突破天際。
  4. 動能交易的血液 (High Liquidity)
    • 純技術派最重視流動性,限制 成交量 > 2000 張

XScript 程式碼

// 腳本類型:Type A 選股腳本 (Screener)
// 策略名稱:Dan Sullivan (圖表派) 絕對相對強度策略
// 策略邏輯:徹底無視基本面!尋找均線長線多頭、半年內漲幅超過 30%,且股價距離 52 週新高不到 5% 的超級領頭羊

// 確保長天期歷史資料讀取足夠 (計算 200 日年線與 250 日最高價需要)
SetTotalBar(260);

// 變數宣告鐵律:無底線、無系統保留字 daily、預設給定初始值
var: ma50(0), ma200(0), high250(0), roc120(0), volToday(0);
var: isTrendUp(false), isRelativeStrong(false);

// 嚴格依照 Data Dictionary 讀取技術與價量資料
volToday = GetField("成交量", "D"); // 流動性指標

// 計算中長線均線與 52 週最高價
ma50 = Average(Close, 50);
ma200 = Average(Close, 200);
high250 = Highest(High, 250);

// 計算 120 日 (約半年) 的變動率 (Rate of Change),作為相對強度的代理指標
// 防呆機制:確保 120 天前的收盤價大於 0
if Close[120] > 0.0 then 
roc120 = ((Close - Close[120]) / Close[120]) * 100.0 
else 
roc120 = 0.0;

// 條件一:長線大趨勢保護 (股價大於 50 日線,且 50 日線大於 200 日線)
if Close > ma50 and ma50 > ma200 then 
isTrendUp = true 
else 
isTrendUp = false;

// 條件二:絕對相對強度與創新高 (半年內漲幅超過 30%,且逼近 52 週新高 5% 以內)
if roc120 > 30.0 and Close >= (high250 * 0.95) then 
isRelativeStrong = true 
else 
isRelativeStrong = false;

// 核心量化綜合判斷:單一等號、完整邏輯包覆
// 條件說明:
// 1. isTrendUp = true (大趨勢確認無誤)
// 2. isRelativeStrong = true (完美符合 Sullivan 對「相對強度」與「創新高」的狂熱追求)
// 3. volToday > 2000 (確保進出流動性極佳,隨時可以停損撤退)
if isTrendUp = true 
and isRelativeStrong = true 
and volToday > 2000 then begin

// 觸發條件成立
ret = 1;

// Type A 選股腳本專屬:輸出九宮格檢驗欄位 (警示腳本絕對禁用)
OutputField1(roc120, "半年漲幅ROC(%)");
OutputField2(high250, "52週最高價");
OutputField3(Close, "今日強勢收盤價");
OutputField4(ma200, "200日均線(年線)");
OutputField5(volToday, "今日成交量");
end;

 

 

回測報告如下

 

 

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

馬克·米奈爾維尼(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;

回測報告如下圖

 

阿姆里特·薩爾(Amrit Sall)的投資哲學

 阿姆里特·薩爾(Amrit Sall)是傑克·史瓦格(Jack Schwager)在《無名金融怪傑》(Unknown Market Wizards)中挖掘出的一顆核彈級新星,他在書中被冠以 「獨角獸狙擊手(The Unicorn Sniper)」 的稱號。

為什麼叫他獨角獸?因為他身為一名完全用自己錢交易的散戶,卻在長達 13 年的職業生涯中,創造了年化報酬率 337% 的非人類奇蹟,而且這 13 年間,他的最大資金回撤從未超過 10%!

以下為您整理他的過往經歷、核心投資哲學,並將他極具爆發力的「極端事件驅動(Event-Driven)」哲學,轉化為符合 XQ 系統限制與知識庫欄位規範的 XScript 量化選股腳本。

💡 阿姆里特·薩爾 (Amrit Sall) 經歷與投資哲學

過往經歷:

Amrit Sall 來自英國,他並非典型的技術分析師或價值投資者。他把自己定義為「事件交易員(Event Trader)」。他為了每一次的重大財經事件(例如央行利率決策、非農就業數據、或是企業極端財報),會準備高達數千頁的歷史推演筆記。他極度保護自己的「心理資本(Mental Capital)」,平時絕不輕易出手,只為等待那個千年一遇的完美錯價瞬間。

核心投資哲學:

  1. 只交易「事件」與「驚喜」 (Event-Driven & Surprises)
    他不看 RSI、不畫趨勢線、也不在乎長線基本面。他認為現代市場效率極高,平時根本沒有超額利潤。他只在市場發生「預期外的巨大驚喜(或驚嚇)」時出手。例如市場預期極度悲觀,結果財報公布卻好到跌破眾人眼鏡。
  2. 極致的耐心與重倉狙擊 (The Unicorn Sniper)
    他一年可能只交易 12 到 15 次。但只要他苦等的「高勝率事件」一發生,他會毫不猶豫地押上極大的部位(重倉狙擊),這也是他報酬率能衝破天際的原因。
  3. 極短線持有,絕不留倉 (Minutes to Hours)
    他深知事件發布後的波動極大,因此他只賺取事件發生當下,市場因為恐慌或狂熱而「重新定價(Repricing)」的那一段利潤。部位通常只持有幾分鐘到幾個小時,當天絕對平倉,不承擔任何隔夜風險。
  4. 絕對的流動性 (Liquidity is Life)
    由於他部位極大且需要瞬間平倉,他只交易那些在事件當下會爆出「極端天量」的標的。

⚙️ XScript 邏輯解構 (Type A: 選股腳本 – 獨角獸事件狙擊策略)

為了在日線選股腳本中重現 Sall 的「事件衝擊與重新定價」,我們建立一個 「基本面極端驚喜 + 價格巨大跳空 + 歷史級爆量」 的極端錯價狙擊模型:

// 腳本類型:Type A 選股腳本 (Screener)
// 策略名稱:Amrit Sall 獨角獸狙擊手與極端事件驅動策略
// 策略邏輯:尋找基本面出現極端爆發,且今日盤面發生「巨大跳空與極端爆量」的突發事件錯價股

// 確保長天期歷史資料讀取足夠 (計算 20 日均量需要)
SetTotalBar(60);

// 變數宣告鐵律:無底線、無系統保留字 daily、預設給定初始值
var: revYoy(0), epsCurrent(0), volToday(0), volMa(0);
var: isEventShock(false), isSniperVolume(false), isIntraStrong(false);

// 嚴格依照 Data Dictionary 與知識庫規範讀取資料
revYoy = GetField("月營收年增率", "M"); // 事件催化劑:極端的營收爆發
epsCurrent = GetField("每股稅後淨利(元)", "Q"); // 獲利防呆:排除無基之彈
volToday = GetField("成交量", "D"); // 動能指標:今日成交量

// 取得「昨日」的 20 日均量作為平時的流動性基準
volMa = Average(volToday, 20)[1];

// 條件一:市場錯價與突發事件 (今日開盤價直接跳空大於昨日收盤價 4% 以上,代表市場發生重大預期外的 Repricing)
if Open > (Close[1] * 1.04) then 
isEventShock = true 
else 
isEventShock = false;

// 條件二:獨角獸級別的極端爆量 (今日成交量大於過去均量的 3 倍,大資金瘋狂湧入)
// 加上防呆機制確保 volMa 不為 0
if volMa <> 0 and volToday > (volMa * 3.0) then 
isSniperVolume = true 
else 
isSniperVolume = false;

// 條件三:盤中動能延續 (收盤大於開盤,實體收紅,適合當沖客狙擊)
if Close > Open then 
isIntraStrong = true 
else 
isIntraStrong = false;

// 核心量化綜合判斷:單一等號、完整邏輯包覆
// 條件說明:
// 1. revYoy > 30.0 (基本面出現超過 30% 的強烈成長,提供事件爆發的底氣)
// 2. epsCurrent > 0.0 (公司具備實質獲利)
// 3. isEventShock = true (價格出現巨大的跳空錯價)
// 4. isSniperVolume = true (爆發極端天量,確認這是一個「市場級別」的事件)
// 5. isIntraStrong = true (盤中買盤強勢,沒有因為跳空而遭到出貨)
// 6. volToday > 3000 (Sall 強調的絕對流動性,方便大部位進出)
if revYoy > 30.0 
and epsCurrent > 0.0 
and isEventShock = true 
and isSniperVolume = true 
and isIntraStrong = true 
and volToday > 3000 then begin

// 觸發條件成立
ret = 1;

// Type A 選股腳本專屬:輸出九宮格檢驗欄位 (警示腳本絕對禁用)
OutputField1(revYoy, "月營收年增率(%)");
OutputField2(Open, "今日跳空開盤價");
OutputField3(volToday, "今日極端爆量");
OutputField4(volMa, "過去20日均量");
end;

 

 

以下是回測報告