python, invest,

如何使用Python計算還原股價

Champion Champion Follow Mar 20, 2021 · 1 min read
如何使用Python計算還原股價
Share this

最近在開發量化投資系統,要做量化投資最重要的就是對股票進行回測,而回測計算報酬率的時候,必須計算還原股價 ,估計公司沒有除權息調整時的股價,所以這篇文章就來教大家如何用Python計算還原股價。

資料的方面我們使用FindMind所提供的開源數據集,來做計算~

一. 取得股票各年股利分配情況

首先先取得股票的各年股利分配情況的資料,那我們這邊使用台積電(2330),作為範例,參數中的token需要到FindMind的官網去 申請帳號取得。

二. 取得股票的股價資料

一樣也是從FindMind官網去取得資料,和取得股利資料一樣。

三. 股利資料欄位介紹以及計算調整股價

首先我們計算還原股價會用到的是以下四個欄位:

  1. CashExDividendTradingDate : 除息交易日

  2. StockExDividendTradingDate : 除權交易日

  3. CashEarningsDistribution : 現金股利

  4. StockEarningsDistribution + StockStatutorySurplus : 股票股利

計算調整股價公式:

主要分成兩部分:

a. 計算除權因子: 在發放股票股利那天以前(包含當天)的股價都要乘上除權因子去調整股價。

\[除權因子 = 1 / (1 + 股票股利 / 10)\]

b. 計算除息因子:

這裡有人可能會直接用收盤價扣現金股利,但這樣會導致股價調整前和調整後日收益率改變,但用下面的方法就可以讓日收益率不變, 因為我們是去計算發放現金股利後與原本股價的改變比例,而這裡t-1代表的是昨日的價格,在發放現金股利那天以前的股價 都要乘上除息因子去調整股價。

\[除息因子 = (收盤價_{t-1} - 現金股利) / (收盤價_{t-1})\]

程式計算說明

首先將股利資料分別分成現金股利以及股票股利,並且將這兩個資料合併到股票價格資料上,因為股利資料會有先公布的資料, 也就是未來的資料,所以合併的同時也可以使未來的資料刪掉。

然後在按照公式分別計算除權因子和除息因子

然後將每一期的除息因子都做累積乘積,這樣就可以將每一期調整的程度反映到過去的股價上,算完除息因子後乘上除權因子 就可以得到總因子,再乘上原始股價就可以得到調整股價,因為有些是在除權後的股價,因此就是填充為原始股價。

那以下就是完整的程式碼,如果有什麼問題歡迎在下面留言~

喜歡我的文章可以幫我拍拍手哦~~~

Join Newsletter
Get the latest news right in your inbox. We never spam!
Champion
Written by Champion Follow
Hi, I am Champion, the author of CHAMPION.AI, I will share some AI and investment articles. I hope you like it.