Time for action – smoothing with the hanning function
We will use the hanning
function to smooth arrays of stock returns, as shown in the following steps:
Call the
hanning
function to compute weights, for a certainN
length window (in this example,N
is8
):N = int(sys.argv[1]) weights = np.hanning(N) print "Weights", weights
The weights are as follows:
Weights [ 0. 0.1882551 0.61126047 0.95048443 0.95048443 0.61126047 0.1882551 0. ]
Calculate the stock returns for the BHP and VALE quotes using
convolve
with normalizedweights
:bhp = np.loadtxt('BHP.csv', delimiter=',', usecols=(6,), unpack=True) bhp_returns = np.diff(bhp) / bhp[ : -1] smooth_bhp = np.convolve(weights/weights.sum(), bhp_returns)[N-1:-N+1] vale = np.loadtxt('VALE.csv', delimiter=',', usecols=(6,), unpack=True) vale_returns = np.diff(vale) / vale[ : -1] smooth_vale = np.convolve(weights/weights.sum(), vale_returns)[N-1:-N+1]
Plotting with
Matplotlib
:t = np.arange(N - 1, len(bhp_returns)) plot(t, bhp_returns...