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 certain length window (in this example 8) as follows:N = 8 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 normalized weights: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]
Plot with
matplotlib
using this code:t = np.arange(N - 1, len(bhp_returns)) plt.plot...