在學投資學時,經常會聽到log return。然而,我們已經學會了如何計算日報酬、區間報酬及總報酬等各種報酬計算方式,為什麼還要多出一個log return呢? 原因就在於log return 良好的可加性這個特質,能夠讓我們在做量化時,能夠非常直覺的透過相加的方式處理時間序列資料,進而算出總報酬!本支影片主要分享在計算投組報酬率中常用的log return,簡單推導log return的可加性,並分享如何在python裡實作。
什麼是log return?
log return的公式如下,其實就是把一般的報酬率取log。
$$Y=ln(1+r)$$
log return 的可加性
從對數運算原理中,我們可以推得,log return具有良好的可加性。要計算一段時間的報酬,我們可以透過把每天的log return 相加求得。對於詳細推導過程有興趣的讀者,歡迎參考影片內容。
$$ln(\frac{P_T}{P_0})=ln(\frac{P_T}{P_{T-1}})+ln(\frac{P_{T-1}}{P_{T-2}})+…+ln(\frac{P_1}{P_0})$$
在Python中計算daily log return
透過上式,我們知道,我們只要將股價先取log再相減,就可以得到每天log return的日報酬了。
lr=np.log(df).diff(1)
其中,df為價格資料。
如何透過log return 計算累積酬率?
透過上式,再加上指對數的運算原理,我們可以得到累積報酬率率的計算公式。同樣的,詳細推導過程歡迎參考影片內容。
$$TR=\frac{P_T}{P_0}-1$$
$$=e^{ln(\frac{P_T}{P_0})}-1$$
在Python中計算累積報酬率
透過上式,我們可以把這樣的運算過程寫進python裡,並且利用numpy裡面的cumsum函數,就可以計算每天的累積報酬率了。
tr=np.exp(np.cumsum(lr))-1
今天,我們認識了log return 在量化投資領域中的重要性及方便性,並且學會了如何利用log return 計算累積報酬率。拿起你的資料,試試看吧!
程式檔案,歡迎下載Github