TEJ API 財金筆記—公司財報與股價的合併觀察
收藏文章
很開心您喜歡 台灣經濟新報(TEJ) 的文章, 追蹤此作者獲得第一手的好文吧!
台灣經濟新報(TEJ)
字體放大


分享至 Line

分享至 Facebook

分享至 Twitter


TEJ API 財金筆記—公司財報與股價的合併觀察

2019 年 3 月 28 日

 
展開

不管是在做學術研究或個人投資時,股價變動與公司財報揭露的關係,都是大家考慮的一個重點,例如當公司發布超出市場預期的每股盈餘時,股價隔天往往會有上漲的反應。因此為了研究兩者之間的關係,就需要一組時間序列資料,也就是當時間軸日期變動時,要能同時紀錄股價與財務資料的變化。

這邊就會有一些值得注意的地方,財報的編製必定需要時間,因此我們不會在當下就看到即時的數據,證交所會公告不同季度的財報發佈期限,目前台灣一般公司(金融業較特殊)的規範是每年的 5/15、8/14、11/14 前要發布第一、二、三季的財報,而隔年的 3/31 前則要發布整年的年度財報。

因此如果我們想比對每天的股價變化,是否有受到財報揭露的影響,就要正確地把以「日」為頻率的股價,跟以「季」為頻率的財報做結合,以鴻海(2317-TW)為例,2018 年 Q3 的財報是等到 11/14 時才公布,此時我們才能取得鴻海 Q3 的財務資料。

而這件事可以利用 TEJ 的以下三個資料表結合完成。

  • 上市(櫃)未調整股價(日)
  • IFRS 以合併為主簡表(累計)— 全產業
  • IFRS 以合併為主簡表(累計)— 全產業 報表封面資料

首先我們可以用下列語法查詢這三個資料表的資料。

在財報資料庫「IFRS 以合併為主簡表(累計)-全產業」中雖然有 mdate 這個日期欄位,但 mdate 代表的是財報的「季」別,如 2018/9/1 代表的是 Q3 的財報、2018/12/1 代表的是 Q4 的,如果直接用財報的 mdate 來跟股價資料合併,就會出現 2018/9/1 可以觀察到 Q3 財報數據的不合理現象,正確的作法是應該先將各季的財報資料給予額外欄位,用來記錄揭露日的資訊,如下面的程式碼處理。

如此一來,就可以在股價資料中併入財務資料了,只要依序根據不同的財報揭露日,把財務資料換成最新的數據即可,像下圖這樣。

執行的程式碼就如同下面的範例。

註:’a0003’就是財報揭露日的資料欄位

由於 TEJ 的財務資料庫中,欄位的值是用代碼 acc_code 來查詢,而不是名稱。

如上圖一般,欄位名稱會是代碼而不是一般熟知的會計科目,用 pandas 指令查詢欄位名稱果然都是代碼如下。

因此我們可以用「財務科目代碼名稱對照表」,來把原本的 acc_code 都替換為中文名稱 cname,也可以把下面語法中標示說明可以替換的地方更換成 ename,換成英文名稱。

再看一次 price_data 中的欄位名稱,果然都換成中文了。

最後我們來畫圖看看合併後的結果,當我們把鴻海股價跟 EPS 放在一起時,看 EPS 是不是真的隨著公告日出現變化。

果然 EPS 在 8/14、11/13 這兩個日期出現變化,財報資料跟股價正確地按照時間結合了。

註:此地方之 EPS 是 TEJ 所計算之近四季常續性 EPS

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

台灣經濟新報》授權轉載 程式連結

【延伸閱讀】

 
週餘
 
 
分享文章
分享至 Line
分享至 Facebook
分享至 Twitter
收藏 已收藏
很開心您喜歡 台灣經濟新報(TEJ) 的文章, 追蹤此作者獲得第一手的好文吧!
台灣經濟新報(TEJ)
分享至 Line
分享至 Facebook
分享至 Twitter
地圖推薦
 
推薦您和本文相關的多維知識內容
什麼是地圖推薦?
推薦您和本文相關的多維知識內容