[量化投資基本功] 如何利用Rolloing Window計算移動平均線?

這個單元,我們要分享如何在python裡利用rolling window計算簡單移動平均線,有了這個rolling window, 不只是簡單移動平均線,我們還可以有效找到移動最大值、移動最小值以及任何你想的到的計算方式!

(一) 引入模組

這裡除了引入常用的pandas套件外,也同時引入matplotlib繪圖模組。

import pandas as pd
import matplotlib.pyplot as plt
%matplotlib inline

(二) 讀入資料

這裡我們用藍籌30ETF的股價為例,讀入資料後並將index設定為日期格式。

data=pd.read_csv('00690.csv',encoding='big5')
data.set_index(pd.to_datetime(data['Date'],format='%Y/%m/%d'),inplace=True)

(三)用Rolling Window計算簡單移動平均

在這裡,我們最重要的就是採用python裡面的rolling()函數,括號內代表要滾動幾個資料點的參數。要計算平均數,我們後面加mean()。

比方說,我們要計算5日移動平均:
df=data.copy()
MA_5=df.rolling(5).mean()

如果說,我們想要計算滾動20日高點,則可以用:
MA_20=df.rolling(20).max()

簡單來說,有了這個rolling window,我們後面可以接上任何想要計算的函式。

(四) 利用function增進效率

接下來,我們可以把這個rolling window寫成函數,方便未來替換不同的資料,以及設定不同的參數。

比方說,我們想要製作移動平均線的函數:
def MA(price,days):
ma=price.rolling(days).mean()
ma.dropna(inplace=True)
return ma

寫好後,如果我們想要計算10日簡單移動平均,只要透過MA(df,10)的呼叫,就可以得到我們要的結果了!

今天,我們學會了怎麼用rolling window計算簡單移動平均,也學會如何把這個rolling window運用在其他函數如高點及低點等等。同時,我們也學會把這個方法包成函數,方便未來的使用。

程式檔案,歡迎下載Github

Share

發佈留言

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