temp = pd.DataFrame([1,2,3,4,5],columns=["test"])
建立一個測試數據
>>> temp
test
0 1
1 2
2 3
3 4
4 5
pandas計算移動指數挺方便的,用rolling屬性就可以。
>>> temp["test"].rolling(2,min_periods=2).sum()
0 NaN
1 3.0
2 5.0
3 7.0
4 9.0
rolling,第一個參數是你的移動窗口,包括當前值在內,向上取多少個值。
第二個參數min_periods是指最小計算的窗口大小,指定2的話就是窗口中至少要2個值才能去計算。不然就是NaN。
.sum()就是指計算移動窗口中的和,算移動平均就是除以窗口大小即可。
注意:在量化交易中移動平均成交價要用移動加總的成交總價除以成交數量,不能簡單用平均成交價去算。