財報附註的重要性:EPS 與常續性 EPS


EPS 與常續性 EPS

每股盈餘(Earnings Per Share, EPS)是從事基本面投資最重要的財務指標,每股盈餘能每年穩定成長的公司,才會因為值得長期持有,股價容易穩定上漲。但是 EPS 卻有許多計算上的陷阱,存在於未經進一步處理過的財務報表上,例如一次性的業外收益、一次性的認列虧損等,因此投資人應該關注的是與本業營運較相關的「常續性 EPS」。

 

這邊就以宏達電(2498-TW)為例,說明未經調整後的 EPS 與常續性 EPS 的差別。宏達電近年經營績效逐漸惡化,2017 年每季的 EPS 都是負值,但卻在 2018 年 Q1 突然轉正,而且還是高達 25 元的離譜數字。

 

 

如果我們依照先前提到合併財報與股價的方法,觀察季 EPS 公布後對於宏達電股價的影響。

 

TEJ API Python程式碼:

%load merge_finance_price.py

TEJ API Python程式碼:

import pandas as pd
import tejapi  
tejapi.ApiConfig.api_key = "Your Key"
table_kind = 'TWN'                          #資料國別名稱,輸入TRIAL則為試用資料庫
sampledates = ['2017-01-01','2019-01-01']   #要查詢的資料日期區間,必填
check_coid = ['2498']                       #要查詢的股票代碼 ,可以輸入空值[],則自動查詢全部代碼   
account_kind = ['損益表','指標']             #要查詢的財務指標類型關鍵字,可輸入多個,會自動去除重覆 
#執行此function即可取得合併結果
mf = merge_finance_price_all()
data = mf.do_merge(table_kind,check_coid,sampledates,account_kind)

接下來我們觀察近四季 EPS 與股價走勢的關係。由於查詢的是季報表的資料,為了計算近四季 EPS,要另外新增一個欄位計算並記錄,也就是程式碼中的「每股盈餘(移動四季)」。

TEJ API Python程式碼:

eps = data['每股盈餘'].unique().tolist()
eps

TEJ API Python程式碼輸出結果:

[-2.47, -2.37, -3.8, -11.93, 25.7, -2.53, -3.18]

TEJ API Python程式碼:

moving_eps = [ eps[i]+eps[i+1]+eps[i+2]+eps[i+3]   for i in range(0,len(eps)-3)]
for i in range(0,4):
    data.loc[data['每股盈餘']==eps[i],'每股盈餘(移動四季)'] = moving_eps[i]   

TEJ API Python程式碼:

eps = data['每股盈餘(移動四季)'].unique().tolist()
eps

TEJ API Python程式碼輸出結果:

[-20.57, 7.599999999999998, 7.4399999999999995, 8.06, nan]

計算完成後,將股價、近四季 EPS 化成走勢圖,就發現了奇妙的狀況。

TEJ API Python程式碼:

import matplotlib.pyplot as plt
data = data[data['每股盈餘(移動四季)'].isnull()==False]
xy = data[(data['mdate']>'2017-11-01')].reindex(columns=['mdate','close_d','每股盈餘(移動四季)']).values

fig, ax1 = plt.subplots(figsize=(10,8))
ax2 = ax1.twinx()
xy = xy[xy[:,0].argsort()]
ax1.plot(xy[:, 0], xy[:, 1], linewidth=5,color='green')
ax2.plot(xy[:, 0], xy[:, 2], linewidth=5,color='red' )
ax1.set_xlabel('Date')
yx1 = ax1.set_ylabel('close_price', color='green')
yx1.set_rotation(0)
yx2 = ax2.set_ylabel('EPS', color='red')
yx2.set_rotation(0)
plt.show()

 

從上圖可以看到,紅色線代表近四季每股盈餘,綠色線代表股價走勢,在 2018 年 5 月公佈第一季財報後,近四季盈餘馬上飆升,但股價卻未因單季盈餘的飆高而有所上漲,反而一路下滑,難道是市場錯了嗎?其實不然,原來,會造成宏達電的 EPS 在 2018 年 Q1 爆增,靠的是出售製作 pixel 手機的部門給 Google,產生了巨額的處分資產利益,紀錄在損益表中營業外收入及支出底下。

 

但是把部門賣掉並不是宏達電的核心業務,也不見得會改善公司的未來營運,因此雖然每股盈餘突然提高到過去幾年未有的水準,其股價也是欲振乏力。況且此消息其實早在 2017 年 9 月 21 日就宣布了,當初宣布隔天股價雖有漲停慶祝,但後續仍一路下探,代表我們還是應該專注在宏達電的本業營運上。總之,我們可以發現直接使用未經調整後的 EPS 對比是有失公允的。

但如果我們看的不是損益表上揭露的每股盈餘,而是 TEJ 調整過,只計算公司本業持續性收支的「常續性 EPS」,繪製出來的圖就不太一樣了(常續性 EPS 在 TEJ 計算時,已經自動轉換為近四季資料)。

 

TEJ API Python程式碼:

import matplotlib.pyplot as plt

xy = data[(data['mdate']>'2017-11-01')].reindex(columns=['mdate','close_d','常續性EPS']).values

fig, ax1 = plt.subplots(figsize=(10,8))
ax2 = ax1.twinx()
xy = xy[xy[:,0].argsort()]
ax1.plot(xy[:, 0], xy[:, 1], linewidth=5,color='green')
ax2.plot(xy[:, 0], xy[:, 2], linewidth=5,color='red' )
ax1.set_xlabel('Date')
yx1 = ax1.set_ylabel('close_price', color='green')
yx1.set_rotation(0)
yx2 = ax2.set_ylabel('EPS', color='red')
yx2.set_rotation(0)
plt.show()  

 

從上圖可以看到,宏達電近四季的常續性 EPS 確實與股價走勢一致,持續下跌。雖說 EPS 不是影響股價的唯一因素,但從這個案例可以了解到,在進行基本面投資時,務必要以該公司本業核心、持續性獲利能力來考量其盈餘,而非誤判曇花一現的短期獲利結果,造成投資上的損失。

 

本篇文章所展示之內容係由 TEJ API 工具撈取。

完整程式碼請透過連結下載:完整程式連結

如果對於使用上有任何問題,歡迎透過連結進一步連絡我們,我們將有專人進一步為您服務,謝謝