大衛·萊恩(David Ryan)是華爾街歷史上最傳奇的成長股交易員之一,他完美傳承並發揚了威廉·歐尼爾(William O’Neil)的 CAN SLIM 投資法則
David Ryan 是威廉·歐尼爾(《笑傲股市》作者)的得意門生。他曾在歐尼爾的公司擔任投資組合經理,並在 1985 年至 1987 年間,連續三年贏得全美投資大賽(U.S. Investing Championship)的冠軍,這三年的總報酬率高達驚人的 1379%。他用實戰成績證明了 CAN SLIM 法則在美股市場的強大威力。
核心投資哲學:
- 極致的盈餘與營收動能 (Earnings & Sales Momentum):
這是 CAN SLIM 法則的核心。Ryan 不買平庸的公司,他要求標的必須具備「爆炸性的當季獲利成長」,通常要求 EPS 年增率達 25% 以上;同時,營收也必須同步出現雙位數以上的強勁擴張。 - 強勢股與價格位階 (Relative Strength & Price Action):
他**「永遠不買」處於下跌趨勢或破底的股票。他只買那些已經處於明確多頭排列,並且價格非常靠近 52 週新高**(歷史高點或波段高點)的強勢股。他認為,真正的超級大飆股在發動前,價格一定會先創下或接近新高。 - 底部型態與突破 (Bases and Breakouts):
他擅長在股票經歷一段時間的橫盤整理(如杯柄型態、平底型態),籌碼沉澱且成交量萎縮後,於帶量突破頸線的那一刻進場。
為了將 David Ryan 的「CAN SLIM 高成長 + 52週高點強勢動能」哲學程式化,我們建立一個 「營收盈餘雙飆升 + 長期多頭排列 + 逼近 52 週新高 的強勢成長股模型:
- 基本面強大火力 (CAN SLIM 的 C 與 A):
- 營收爆發:精確使用 月營收年增率 > 25.0%。
- 盈餘動能加速:每股稅後淨利(元) > 0,且當季 EPS 必須大於去年同期 EPS(確保獲利具備實質成長動能)。
- 強勢的價格位階與多頭排列 (CAN SLIM 的 M 與 RS):
- 多頭趨勢護航:股價必須大於 50 日均線(中期),且 50 日均線大於 200 日均線(長期),確認為真正的多頭。
- 逼近歷史高點:目前的股價必須距離「52 週最高點」不到 20% 以內(即 收盤價 >= 52週最高價 * 0.80),準備伺機突破。
- 流動性防呆 (Liquidity):
- 大資金點火需要流動性:限制 成交量 > 1500 張。
我請Gemini根據他的投資邏輯寫了一個腳本如下
// 腳本類型:Type A 選股腳本 (Screener)
// 策略名稱:David Ryan CAN SLIM 強勢成長股策略
// 策略邏輯:尋找營收與獲利爆發,且均線呈現多頭排列、股價正逼近 52 週新高的超級成長股
// 確保長天期歷史資料讀取足夠 (計算 200 日均線及 250 日 52 週新高需要)
SetTotalBar(260);
// 變數宣告鐵律:無底線、無系統保留字 daily、預設給定初始值
var: revYoy(0), epsCurrent(0), epsLastYear(0), volToday(0);
var: ma50(0), ma200(0), high52W(0);
var: isTrendUp(false), isNearHigh(false);
// 嚴格依照 Data Dictionary 與前次校正規範讀取資料
revYoy = GetField("月營收年增率", "M"); // 基本面火力:營收爆發成長
epsCurrent = GetField("每股稅後淨利(元)", "Q"); // 基本面火力:當季 EPS
epsLastYear = GetField("每股稅後淨利(元)", "Q")[4]; // 基本面火力:去年同期 EPS (往前推 4 季)
volToday = GetField("成交量", "D"); // 流動性指標
// 運算均線與 52 週高點 (約 250 個交易日)
ma50 = Average(Close, 50);
ma200 = Average(Close, 200);
high52W = Highest(High, 250);
// 條件一:中期與長期多頭排列 (股價 > 50MA 且 50MA > 200MA)
if Close > ma50 and ma50 > ma200 then
isTrendUp = true
else
isTrendUp = false;
// 條件二:股價逼近 52 週新高,距離高點不到 20% (加上分母防呆確保 high52W 不為 0)
if high52W <> 0 and Close >= (high52W * 0.80) then
isNearHigh = true
else
isNearHigh = false;
// 核心量化綜合判斷:單一等號、完整邏輯包覆
// 條件說明:
// 1. 月營收年增率 > 25.0 (符合 Ryan 對強勢擴張的要求)
// 2. epsCurrent > 0 且 epsCurrent > epsLastYear (獲利大於零且超過去年同期)
// 3. isTrendUp = true (技術面多頭排列護航)
// 4. isNearHigh = true (價格位階逼近 52 週新高,具備強勢股特徵)
// 5. volToday > 1500 (確保流動性充足)
if revYoy > 25.0
and epsCurrent > 0.0
and epsCurrent > epsLastYear
and isTrendUp = true
and isNearHigh = true
and volToday > 1500 then begin
// 觸發條件成立
ret = 1;
// Type A 選股腳本專屬:輸出九宮格檢驗欄位 (警示腳本絕對禁用)
OutputField1(revYoy, "月營收年增率(%)");
OutputField2(epsCurrent, "當季EPS(元)");
OutputField3(Close, "今日收盤價");
OutputField4(high52W, "52週最高價");
end;
回測的結果是少數近期還能打敗指數的達人策略

