[量化投資基本功] 如何調整資料頻率? 輕鬆計算年報酬、月報酬及周報酬!

在看盤軟體中我們可以很簡單地透過按鈕將K線圖轉換成各種頻率的K線圖,如分K、周K、月K等等。在Python裡,我們也可以很輕鬆的轉換各種資料頻率,甚至像是3秒,3天這種少見的參數,通通沒問題,讓頻率的選擇具有更大的彈性。

resample

在Python裡,我們可以透過resample(‘資料頻率’)來決定任何欲調整的資料頻率。在後面我們可以加上”.運算函數()”來決定這段區間的運算方法。

例如,當日報酬的價格資料讀取好,並將indeex設定為datetime格式後,我們要選取每月的最後一天:

df_M=df.resample('M').last()

其中,M代表的就是資料頻率為”月”,last()代表我們要選取每月的”最後一天”。

資料頻率:

Y: 年
M: 月
Q: 季
w: 周
d: 日
H: 小時
min: 分鐘
s: 秒

另外,我們可以在這些資料頻率前加入數字,比方說”3s”代表3秒、”5d”代表5天,”2M”代表2個月等等。 另一方面,在頻率前加入”B”代表營業日,比方說”BM”指的就是每個月的營業日。

運算函數:

last(): 最後一天
first(): 第一天
mean(): 平均數
median(): 中位數
std():標準差

這邊就是各式各樣你想的到的函數都可以放進來,接在指定頻率後面,程式就會根據我們所指定的資料頻率進行區間切割並計算。

區間報酬

有了這個resample函數以後,我們就可以很方便的在python裡計算各個區間的報酬。比方說我們要算一個標的的每年報酬率,我們可以先把資料頻率指定為每年,並取出年底的資料值。

df_Y=df.resample('Y').last()

接著,我們可以透過之前學會的日報酬計算方式,套用過來。
所以每年的報酬就可以透過pct_change(1)計算出來。

AR=df_Y.pct_change(1)

同樣道理,要計算每個月的報酬我們也可以如法炮製,只要把資料頻率更改為每月即可。因此,不難發現,現在不論是哪種頻率的資料,我們都可以透過resample重新指定頻率,最後再透過pct_change(1)即可算出該頻率每個區間的報酬。

今天,我們學會了如何將資料轉換成我們所需要的頻率。拿起你手邊的資料,算算看標的的月報酬吧!

延伸閱讀

[量化投資基本功] 如何將日期設定為index?

[量化投資基本功] 如何一個指令計算日報酬與區間報酬?

Share

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *