七七四十九種PEG本益成長比,找出潛力成長股,製作年報酬率 30% 的選股策略!

前情提要

本益成長比(簡稱:PEG)是本益比(簡稱:PE)的延伸,將公司未來獲利成長因素納入考量,解決PE對成長股反應過慢、估值過高的問題。

進化後的本益成長比這篇文章中我們說明了PEG的概念,並帶大家實作和小幅度更改了PEG的公式獲得更好的回測績效。這次我將詳細的介紹PEG,提出數十種不同方式計算PEG,並找出最適合的那一個!

什麼是PEG?

在開始之前,讓我先帶大家認識一下本益成長比PEG!
1992年,PEG於《祖魯法則》一書被英國傳奇投資人吉姆·史萊特(Jim Slater)所提出,震撼當時的英國金融界。PEG也隨後被美國傳奇基金經理人彼得·林區(Peter Lynch)大力推崇,而後廣為人知。

有PE了,為什麼還需要PEG?

可能大家會想,不是有PE了嗎,為何還需要什麼PEG?
試想,今天你發現了阿榤公司搭上了產業浪潮,獲利將以每年翻5倍的速度急遽成長,而目前的股價8塊,EPS為0.2元。這樣算下來本益比為40倍! 這時你心想:「天啊,40倍的本益比誰買得下去?」

但仔細想想,聰明的你發現阿榤公司明年EPS會成長5倍,那明年的本益比不就剩下8倍嗎? 因此雖然目前40倍的本益比看似昂貴,你還是買了阿榤公司的股票,進而把該公司的本益比進一步往上推。

市場上也是如此,成長幅度越大、前景越看好的那些成長股,當下的本益比往往都是高的嚇人。

投資人漸漸發現PE適合拿來衡量穩健的績優股、景氣循環股等等,卻不適合成長股。為了找出方法來衡量成長股,PEG就此應運而生。

PEG的公式

根據超越祖魯法則一書,PEG公式如下:

本益成長比(PEG) = 預估本益比 / 預估盈餘成長率

預估本益比 = 現在股價 / 未來一年EPS

預估盈餘成長率=未來一年EPS / 過去一年EPS

以下為Jim Slater對PEG的看法:

PEG>1: 不需要關注

1>PEG>0.75: 可以考慮

PEG<0.75: 值得好好下功夫檢驗一番

以阿榤公司為例:

預估本益比是8倍,盈餘成長率為500%,計算出的PEG=8/500=0.016。

阿榤公司的本益比高達40倍,PEG卻只有0.016。在一般投資人眼中非常昂貴的公司,加入了成長性的考量後卻變得十分便宜,這就是PE跟PEG的差異。PEG的出現讓我們得以將公司的成長幅度進行量化,算出更準確的估值。

PEG定義

科普完畢進入正題!

PEG=預估本益比/成長率,而預估本益比=股價/預估EPS。
加上股價是已知資訊,因此廣義上的PEG只有以下部分能進行調整:

  • 明年預估EPS
  • 預估成長率

只要這兩個算出來,PEG就有了。因此當我們用不同的方法去計算預估EPS和預估成長率,就會得到不一樣的PEG,其效度也不同。

上一篇提過的例子,原始的PEG公式中使用稅後盈餘成長率作為預估成長率,雖然直觀卻常帶有一次性獲利的雜訊,因此我們將其改為營業利益成長率,最後也得到了較好的效果。

這次我經由上網查找、看書、發想等方式,蒐集了7種計算預估EPS、預估成長率的方式,總共會得出7×7=49種不同的PEG指標。同時我會藉由回測,告訴大家如何從49種PEG中找出有效的PEG的方式。

實驗開始

切分資料集

首先進行資料及的切分! 我希望讓兩組資料集都經歷過市場的多空循環,這樣挑出來的參數較具有參考性 。

因此這邊將資料集切割如下:

以下所有步驟除了最終model測試除外,都使用training dataset,以盡量避免overfitting的狀況發生。

單用PEG回測

篩出PEG值在市場中前10%小的股票持有,並在訓練集中進行回測。

單用PEG的回測結果

可以發現效果差強人意,績效近乎等同大盤,有些年甚至跑輸大盤。做到這裡我也不禁想,難道PEG其實是個水貨,一點用處都沒有嗎?

進一步詳細檢查持股,發現持股有很多是因為業外收入認列導致EPS暴增,而進一步導致PEG極低的情況。這種業外暴增的情形並不符合當初設計PEG的本意,因此需要進一步思考如何過濾掉這種情況。

搭配濾網設計

PEG是為了找出低估的成長股,若單純使用PEG作為選股條件,會把機會財、業外認列等造成的「假性」成長一併列入,導致回測結果失真。

那該如何檢驗業內是否成長呢? 最直觀的就是月營收了。因此我在回測系統中設計了月營收的濾網,藉由月營收確保本業有持續增長。

下列是5種月營收轉強的濾網表現(上半為績效、下半為持股數目):

  • 月營收短MA > 長MA
  • 月營收MA連續上升
  • 月營收YOY短MA > 長MA
  • 月營收YOY連續上升
  • 月營收MOM連續上升

除了最後一個濾網之外,其他的濾網表現都不錯,所以還需要進行下一步篩選。謹記著加入月營收濾網的目的並非提升績效,而只是為了確保本業在增長,因此不篩掉過多的股票才是我們的第一要務。

綜合上述所說,最後決定使用「月營收YOY短MA > 長MA」作為濾網,能在保留大部分股票的同時獲得不錯的績效。

PEG跟月營收配嗎?

我猜大家可能還在想,PEG真的不能單獨回測,一定得搭配月營收嗎?

為了證明我一開始的猜想,我分別用剛提過的五種月營收濾網作為基準,用PEG、月營收、PEG+月營收這三種方式去跑模擬績效。

PEG與月營收濾網搭配效果

可以發現除了「月營收MOM連續上升」該濾網本身效度不足外,其他四種月營收濾網,PEG+MONTH(深藍色)的績效表現都大幅上升,足以證明PEG和月營收的結合具有非常強的化學效應!

PEG 設計

只要有明年預估的EPS、預估成長率,就能算出PEG,因此大家都可以建構出自己的PEG。

以下是我建構其中一種PEG的範例:

from finlab import data

# 讀取股票收盤價、EPS
close = data.get('etl:adj_close')
EPS = data.get('fundamental_features:每股稅後淨利')
# 用最近4季的EPS總合/最近8季~最近四季的EPS總合,來算EPS成長率
EPS成長率 = EPS.rolling(4).sum()/EPS.shift(4).rolling(4).sum()-1
# 用EPS成長率*近四季EPS,推算接下來一年的預估EPS
預估EPS = EPS*EPS成長率
# 將EPS成長率轉成以%為單位,方便計算PEG
EPS成長率 = (EPS成長率-1)*100
#計算PEG
預估本益比 = close/預估EPS
peg = 預估本益比/EPS成長率

因為算法的可能性太多種我就不一一贅述,歡迎大家自行發揮想像空間,發明越多種的PEG算法越好。

註: PEG不適用EPS、成長率為負的股票,在回測前要記得進行處理。

PEG選擇

接下來我會說明如何從一拖拉庫PEG挑出理想的PEG!

假設現在我們已經有了許多種PEG的算法,接下來可以使用不同的PEG算法計算報酬並作圖如下,x軸是用該PEG分類後的策略報酬,y軸則是不同的PEG指標。

PEG分區報酬熱力圖

以綠色方框處舉例,使用了近四季EPS作為明年預估EPS、年複合EPS成長率作為預估成長率來計算PEG。0%~20%的格子代表PEG前20%小的股票搭配月營收濾網的報酬,以此類推。顏色越淺代表報酬越高。

可以看出綠色方框處的PEG算法效度很差,因為無論PEG值是大是小,報酬都沒有顯著的改變(顏色幾乎完全沒有變化)。相較之下,紅色方框處就是一個十分優秀的PEG算法,隨著PEG越大報酬逐漸縮小,因此顏色也隨著由淺至深。

如果比較細心的同學會發現,以全市場股票分群來說,每個row的顏色平均應該會差不多,但是圖中綠色框中的顏色普遍偏深,而紅色框普遍偏淺,代表分群以外,還有其他的因素在影響績效表現。

這是因為在進行PEG分群之前,會先將負PEG的股票刪除,而負值的原因可能是預估EPS或成長率為負。

若是一個好的PEG算法,就能比較正確的預估成長率和EPS,進而只刪除缺乏成長性的股票,使整體績效進步; 反之若該算法不佳,就容易把高成長性的股票在分群之前就剔除掉,進而導致整個row的績效都不好(顏色偏深)。

定義數學式: PEG_importance

我們雖能透過肉眼大致看出PEG算法的好壞,但要具體分辨哪種PEG算法最好,還是需要經由定義數學式來達成。

首先我對熱力圖中的每一個row(代表一種PEG算法)作圖,x軸是分群rank的上限,y軸則是該分群的平均報酬,以綠色方框處作圖如下。

以圈起來的紅點為例,其坐標為(0.8,1.22),代表PEG數值60%~80%的股票平均報酬為1.22。接下來我對這五個點做linear regression(圖中藍線),這條線的斜率說明了分群後的股票與報酬之間的相關性,當斜率的絕對值越大,代表著分群後的股票與報酬之間有明顯的相關性(正、負相關都有可能)。

以紅框處的圖作對比,可以從紅點分佈發現,隨著PEG Rank越大報酬就越小,因此linear regression所做出來的直線也較為傾斜,斜率達到了-1.92(綠色方框處斜率只有-0.19)。

綜合上述,最後決定以線性迴歸直線的斜率的絕對值,作為排序PEG重要性的因子,因而得出以下式子。

PEG_importance = | Slope(by linear regression) |

對所有的PEG算法計算其PEG_importance,作圖如下:

在49種PEG計算方式裡面,前面幾名的分數遙遙領先,而剩下算法彼此間差異不大。在經過回測後,發現PEG_importance超過1以上的算法,對比大盤才有較明顯的提升效果,這代表設計一個好的PEG並不是那麼容易,因為有一半以上的算法PEG_importance都沒超過1。往後大家撰寫PEG相關策略時,若策略績效不理想也可以優先考慮從PEG計算方式作修改!

註: 雖然沒有公布各種PEG的計算方式,但核心觀念已經藏在PEG的命名中了,去找吧,我把所有的PEG算法都藏在那裡了! XD

策略回測

接下來我們採用PEG_importance最高PEG的計算方式,並取PEG前20%小的股票,搭配月營收濾網進行回測。

近期表現(Test: 2020~2021)

過去表現(Train: 2014~2019)

結論

回測發現,近期績效和過去績效相差不大,年報酬率都在40%左右,但相對近兩年大盤的漲幅而言,近期績效就不算太過亮眼了。

在大盤大漲的時候,PEG相關的策略往往較難發揮; 當大盤走平或下跌時,PEG策略所挑出的個股在隨後卻常有較大幅度的彈升,進而讓整體的績效勝過大盤。

我自己的解釋是當市場恐慌時,所有股票都一起下殺,成長股當然也難以倖免,但只要市場的信心一恢復,投資人又願意給成長股較高的本益比這一來一往的本益比評價調整,讓成長股的績效表現更為出色。

這次的研究就到這裡結束了,希望有幫助大家更瞭解PEG!

窩4阿榤,下次見,掰!

阿榤

我是阿榤,不務正業的電機仔,一個願意接受幸運的人。 很高興認識大家,請多指教!