簡單移動平均基本上可以想成是對一連串價格做一個權數相同的加權平均。假定我們要計算[1,2,3,4,5,6]這個陣列的SME4,可以透過以下的程式碼做計算
In [1]:numpy.convolve([1,2,3,4,5,6],[0.25,0.25,0.25,0.25])
第一個陣列可以想像是價格的陣列,第二個陣列則是對要做移動平均的時間長度,對各個時點的權數。
如果是簡單移動平均,則各時間點的權數相同。若是SMA(4),則各時間點的權數之陣列即為[0.25,00.25,0.25,0.25] 結果會呈現如下:
Out[1]: array([ 0.25, 0.75, 1.5 , 2.5 , 3.5 , 4.5 , 3.75, 2.75, 1.5 ])
第一個值0.25是第一個陣列內的第一個值1 乘上 第二個陣列的第一個值0.25
第二個值0.75是第一個陣列內的第一個值1 乘上 第二個陣列的第一個值0.25再加上第一個陣列內的第二個值2 乘上 第二個陣列的第二個值0.25,依此類推。
如此一來,在產出陣列的第4,5,6個值,即為價格陣列的SME,再處理這個陣列後,就可以使用。
沒有留言:
張貼留言