你可能正在忽略關鍵的訊息
我們都知道挑選營收年增率超過20%的股票,是一個常見且有效的成長股投資策略。理論上,營收持續成長的公司,未來股價應該有良好的表現。

現在試著想像一下這個場景:早上9點,你打開看盤軟體,發現一檔股票營收成長20%,股價創新高準備漲停。你的心跳開始加速,手指在手機上顫抖,腦中只有一個想法:「趕快買!」
等等,先別急著下單。
如果我告訴你,同樣都是買營收成長20%以上的股票,有人賺了2656%,另一個人卻賺了4244%,你相信嗎?差別只在於一個小細節:就是投資人有沒有確認最新營收已經公布。
這聽起來很瘋狂,但這是我用18年程式交易經驗,加上真實回測數據得出的結論。
台股的遊戲規則:營收公布時間
在開始之前,我們必須了解台股的一個重要規則:
每個月1號到10號,所有上市櫃公司必須公布上個月的營收數據
這是什麼意思呢?舉例來說:
- 7月1日~10日:公司公布6月營收
- 8月1日~10日:公司公布7月營收
- 9月1日~10日:公司公布8月營收
更簡單一點來說,就是每個月的10號(遇假日順延)以前,必須公布上個月的營收。
主力最愛的陷阱
回到一開始的場景。假設現在是7月3日,你看到一檔股票營收成長20%,正準備漲停。
問題來了:這個25%的成長率是哪個月份的數據?
很可能是5月份的營收!因為6月營收還沒公布,你看到的是舊數據。
如果你在7月3日追高買進,萬一7月4日公布的6月營收很糟糕,股價可能立刻從漲停變跌停。你買在最高點,隔天就被套牢。
這就是主力最愛設的陷阱。他們知道散戶會被「營收成長」這四個字沖昏頭,忘記確認數據的時效性。
真實數據說話:回測結果震撼人心
為了證明這個差異有多大,我設計了一個完整的回測實驗:
實驗設定
- 測試期間:2019年1月到2025年5月
- 測試範圍:台股所有股票
- 買進條件:營收成長20%以上 + 創新高 + 漲停
- 賣出條件:跌破5日線
兩種方法對比
方法A:一般做法
不管營收有沒有公布,看到成長就買。

方法B:聰明做法
確認最新營收已公布才買。

結果讓人驚呆了

| 項目 | 方法A | 方法B | 差異 |
|---|---|---|---|
| 總報酬率 | 2,656% | 4,244% | +60% |
| 勝率 | 45.12% | 46.33% | +1.21% |
| 最大虧損 | -63.73% | -55.58% | 少虧8% |
| 交易次數 | 3,788次 | 3,190次 | 少598次無效交易 |
用白話文解釋這個差異

假設你有100萬:
用方法A(一般做法):
- 最慘的時候會虧到剩36萬
- 需要股價漲175%才能回本
- 最終變成2,756萬
用方法B(聰明做法):
- 最慘的時候還有44萬
- 只需要股價漲125%就回本
- 最終變成4,344萬
- 多賺了1,588萬!
這就是一個小細節的威力。
為什麼會有這麼大的差異?
1. 避開地雷股
確認最新營收已公布,可以避開那些用舊數據包裝的地雷股。
2. 減少無效交易
少了598次無效交易,每次交易都更有品質。
3. 降低風險
最大虧損從63%降到55%,讓你在股災時能保住更多本金。
4. 提高勝率
雖然只提高1.21%,但在複利效應下影響巨大。
XQ程式碼:讓電腦程式幫你把關
既然這個細節這麼重要,我們就用程式來自動化處理,團長已經把這個程式碼,透過AI撰寫出來了:
最新營收年增率成長N%程式碼:
// 腳本名稱: 最新營收年增率超過N%選股策略
// 執行頻率: 月
//========================參數設定區========================
// 設置最大引用歷史資料範圍
SetTotalBar(2); // 設置需要引用的 K 棒數量,根據需求調整
// 宣告參數
input: growthRateThreshold(20, "年增率門檻 (%)");
// 宣告變數
var: announcementDate(0), calcYear(0), calcMonth(0);
var: prevYear(0), prevMonth(0);
var: currentRevenue(0), lastYearRevenue(0), revenueGrowthRate(0);
//========================日期處理區========================
// 取得營收公告日期(格式為 YYYYMMDD)
announcementDate = GetFieldDate("月營收", "M");
// 使用 DateValue 函數提取年份與月份
calcYear = DateValue(announcementDate, "Y"); // 提取年份 (YYYY)
calcMonth = DateValue(announcementDate, "M"); // 提取月份 (MM)
// 計算預期的公告年份與月份
prevYear = Year(Date); // 當前年份
prevMonth = Month(Date) - 1; // 當前月份的前一個月
if prevMonth = 0 then begin
prevMonth = 12; // 如果是 1 月,前一個月應為 12 月
prevYear = prevYear - 1; // 年份減 1
end;
// 判斷是否為最新公告營收
if (calcYear = prevYear) and (calcMonth = prevMonth) then begin
//========================營收處理區========================
// 取得當月營收與去年同期營收
currentRevenue = GetField("月營收", "M");
lastYearRevenue = GetField("月營收", "M")[12];
// 計算年增率
if lastYearRevenue <> 0 then
revenueGrowthRate = (currentRevenue - lastYearRevenue) / lastYearRevenue * 100;
//========================選股計算區========================
// 判斷是否符合年增率門檻
if revenueGrowthRate >= growthRateThreshold then begin
ret = 1; // 符合條件
end else begin
ret = 0; // 不符合條件
end;
end else begin
ret = 0; // 不符合條件
end;
//========================輸出判讀區========================
OutputField(1, currentRevenue, 2, "當月營收");
OutputField(2, lastYearRevenue, 2, "去年同期營收");
OutputField(3, revenueGrowthRate, 2, "營收年增率 (%)");
OutputField(4, announcementDate, 0, "公告日期 (YYYYMMDD)");
總結:細節決定成敗
投資這件事,魔鬼真的藏在細節裡。
同樣是買營收成長股,只是多確認一個小細節:最新營收是否已公布,就能讓報酬率從2656%提升到4244%。
當大部分人都忽略這個細節時,你卻能精準把握,長期下來就會累積巨大的差異。
記住巴菲特說過的話:「風險來自於你不知道自己在做什麼。」
現在你知道了這個關鍵細節,下次看到營收成長股時,記得先確認:「這個數據是最新的嗎?」
相信你的投資報酬會更上一層樓!
常見問題解答
Q1:為什麼要特別注意營收公布的時間?
A1:因為股價反應的是已公布的營收數據,如果你在營收公布前就追高買進,買到的可能是過時的數據,風險很大。正確做法是等待最新營收公布後,再確認數據持續成長才買進。
Q2:營收成長超過20%就一定要買嗎?
A2:營收成長是重要指標,但不是唯一指標。還要考慮公司基本面、產業趨勢、股價技術面等多方因素,就能提高勝率和報酬率。
Q3:程式交易和AI如何幫助投資?
A3:程式交易能自動抓取最新數據,避免人工錯誤,且能嚴格執行交易策略,減少情緒干擾。AI更能快速的幫我們撰寫選股及交易策略,幫助我們快速完成自己的投資策略。
Q4:最大回撤是什麼?為什麼重要?
A4:最大回撤是指投資組合在一段時間內從高點到低點的最大資金損失比例。它反映了投資風險大小,回撤越大,資金恢復難度越高。
Q5:如何避免追高買到陷阱股?
A5:除了等待最新營收公布確認成長外,還要注意成交量、籌碼面、技術指標等,並設定停損點,嚴格執行紀律。
風險提醒:投資一定有風險,過去績效不代表未來表現。這篇文章僅供參考,請根據自己的風險承受度做決定。

















圖2.單一個股查詢範例1



