在看盤軟體中我們可以很簡單地透過按鈕將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)即可算出該頻率每個區間的報酬。
今天,我們學會了如何將資料轉換成我們所需要的頻率。拿起你手邊的資料,算算看標的的月報酬吧!