本益比分析

本文重點概要

  • 文章難度:★☆☆☆☆
  • 利用河流圖觀察股價波動及本益比

前言

本益比是最常用來判斷股價是否合理的指標之一,其公式為本益比=每股股價/每股盈餘。若本益比太高代表目前的股價高估、偏離合理的價格,當前獲利狀況不足以支撐如此高的股價,未來股價修正、下跌的機會高;反之,若本益比太低代表目前股價低估、偏離合理的價格,股價並未充分反映目前獲利狀況,未來股價回升、上漲的機會高。

早在1970及80年代,Ball(1978)及Basu(1983)就證明在美國市場本益比能有效的解釋股票報酬率,而陳俊佑(2011)利用台灣市場資料實證亦顯示本益比的投資績效表現佳。故從理論或實證上,本益比很適合做為投資參考的依據。

在投資的世界中,「買低、賣高」是經典不敗的投資法則,而如何買低、賣高,可以從橫斷面及時間序列兩種面向來操作:

  • 橫斷面操作的方式:買入低本益比的股票組合,賣出(放空)高本益比的投資組合,既可以利用投資組合分散風險又可以獲得良好的投資績效,是最穩妥「買低、賣高」的投資方式,然而對一般投資人而言,建立投資組合有資金是否足夠的問題、放空時會易受到放空的限制(如使用融券放空時,不一定有券可以放空),實務操作上並不容易;
  • 時間序列的操作方式:在個股本益比歷史相對低點的時候買入股票,在本益比相對高的時候將股票賣出,雖然沒有風險分散的效果,但對一般投資人而言,卻是相對好操作「買低、賣高」的方式。在進行此操作時,一般會搭配本益比河流圖來判斷目前股所處的相對位置,以便進行「買低、賣高」的操作。本益比河流圖如下圖所示,將不同倍數本益比在K線圖上繪製出來,即可很輕易的判斷該股票目前的價位處於幾倍本益比附近,相對於過去一段時間是高或是低。

綜合上述,本益比河流圖是一好用的投資工具,本文重點是介紹如何利用TEJ API 和視覺化套件將本益比河流圖繪製出來,作為投資操作的參考依據。

編輯環境與模組需求

本文使用 MacOS 作業系統以及 VScode 作為編輯器

輸入相關參數,透過TEJ API取得計算本益比相關的股價資訊、財務資訊,資料處理步驟如下:

導入需要用到的套件(tejapi、matplotlib)

import tejapi
import matplotlib.pyplot as plt

資料庫使用

資料導入

利用tejapi設定要查詢的證券碼及起(gte)、迄日(lte)參數,還有每股盈餘的欄位。選用欄位包括證券代碼(coid)、財務資料日(mdate)、每股盈餘(ac_3990)。

company = '2330'
price_data = tejapi.get('TWN/EWIFINQ', # tej 財務資料庫
                coid = company,
                mdate={
                    # 起始日期    
                    'gte':'2022-01-01', 
                    # 結束日期
                    'lte':'2022-12-31'}, 
                opts={'columns': ['coid','mdate','ac_3990']}, 
                paginate=True
            )

利用tejapi函數代入3個參數:設定要查詢的證券碼及起日(gte)、迄日(lte)、收盤價(close_d)參數。

company_data = tejapi.get(
        'TWN/EWPRCD',  # 資料庫
        coid=company,  # 股票代碼
        mdate={
                    # 起始日期    
                    'gte':'2018-01-01', 
                    # 結束日期
                    'lte':'2018-12-31'}, 
        paginate=True,  
        opts={'columns': ['mdate', 'close_d']},
    )

建構本益比河流圖與實證分析

計算本益比,利用每天的收盤股價去除以當季每股盈餘,得到當天本益比。前一節已利用tejapi.get()函數取得財務相關資料(df),此節利用matplotlib.pyplot裡面的plot函數來繪製本益比河流圖,並且進一步進行實證分析。以下為操作步驟:

  1. 印出每股盈餘和收盤價資料來觀查資料型態和數量。
print(price_data['ac_3990'])
print(company_data['close_d'])

我們可以看到一年內四季的每股盈餘資料(四筆)和一整年的收盤資料(247筆)。

2. 將每一季開盤天數存入quarter參數當中,在迴圈內做該天收盤價除以對應的每股盈餘。

close = company_data['close_d']
Price_to_Earnings_Ratio = []
quarter = [60,63,63,61]
quarter_count = 0
season_days = 0
init_day = 0


while quarter_count<4:
    season_days = quarter[quarter_count] # 每季有幾天
    print(init_day+season_days)
    for i in range(init_day, int(init_day+season_days)):
        Price_to_Earnings_Ratio.append(round(company_data['close_d'][i]/price_data['ac_3990'][quarter_count]))
    init_day = init_day + season_days
    quarter_count += 1

3. 設定要畫出本益比的倍數。

x = [x for x in range(0, len(close))]
Price_to_Earnings_Ratio_30 = [ratio * 30 for ratio in Price_to_Earnings_Ratio]
Price_to_Earnings_Ratio_35 = [ratio * 35 for ratio in Price_to_Earnings_Ratio]
Price_to_Earnings_Ratio_40 = [ratio * 40 for ratio in Price_to_Earnings_Ratio]
Price_to_Earnings_Ratio_45 = [ratio * 35 for ratio in Price_to_Earnings_Ratio]
Price_to_Earnings_Ratio_50 = [ratio * 50 for ratio in Price_to_Earnings_Ratio]

4. 畫出本益比河流圖。

plt.plot(x, Price_to_Earnings_Ratio_30, label='Ratio=30', color='blue') 
plt.plot(x, Price_to_Earnings_Ratio_35, label='Ratio=35', color='blue') 
plt.plot(x, Price_to_Earnings_Ratio_40, label='Ratio=40', color='yellow')
plt.plot(x, Price_to_Earnings_Ratio_45, label='Ratio=45', color='brown')
plt.plot(x, Price_to_Earnings_Ratio_50, label='Ratio=50', color='purple')


plt.plot(x, close.tolist(), label='K line', color='red') # 畫出收盤價曲線
plt.title('Price_to_Earnings_Ratio')  # 設定圖形標題
plt.xlabel('Days')  # 設定X軸標籤

plt.ylabel('Ratio')  # 設定Y軸標籤
plt.legend()  # 添加圖例
plt.show()
本益比河流圖
本益比河流圖
  • 如圖上圖台積電(2330)本益比河流圖所示:2018年Q3本益比超過40倍後,台積電大部分時間本益比都維持在40倍以上,資料顯示40倍以上本益比已是近期市場投資人給台積電合理股價的評價基準。Q3後上漲到到250元附近,便維持在40倍以上。基於這些資訊,我們可以得出市場投資者對於台積電的股價給予了相對較高的估值,認為其具有較高的盈利潛力和投資價值。這也反映了市場對台積電作為一家知名晶片製造商的信心和看好態度。
  • 由台積電的例子可看出,本益比河流圖是判斷目前股價所處的相對位置,進行「買低、賣高」操作很好用的投資工具。需特別注意的是本益比計算上有其限制,股價反映投資人對未來的預期,但本益比最常被取用的是公司最新的盈餘(已經發生),導致有時候本益比高估並非股價偏離合理價格,而是目前股價反應公司未來盈餘成長的預期。因此投資人使用本益比河流圖作為工具時,需把對公司未來的預期考慮進去或改用預期的每股盈餘計算本益比,才能更合理的評估目前股價是否有偏離合理價格。

結論

本篇介紹如何利用TEJ API將本益比河流圖利用視覺化套件呈現,投資人就可藉由觀察個股的本益比河流圖,判斷目前該股所處的相對位置、進行「買低、賣高」操作。以本文台積電的本益比河流圖為例,使用者可以輕易的觀察市場投資人給台積電合理的本益比大約在那個區間,判斷目前台積電股價是否合理。若想要更精確的利用本益比河流圖判斷合理股價,則需要把對公司未來的預期考慮進來或改用預期的每股盈餘計算本益比。

溫馨提醒,本次介紹與標的僅供參考,不代表任何商品或投資上的建議。之後也會介紹使用TEJ資料庫來建構各式選擇權模型,所以歡迎對選擇權交易有興趣的讀者,選購TEJ E-Shop的相關方案,用高品質的資料庫,建構出適合自己的訂價模型。

原始碼

延伸閱讀

相關連結

返回總覽頁
Procesing