Let's smooth the close prices from the small AAPL stock prices data file:
blackman()
function to form a window, and then use this window to smooth the price signal:closes=np.loadtxt('AAPL.csv', delimiter=',', usecols=(6,), converters={1:datestr2num}, unpack=True) N = 5 window = np.blackman(N) smoothed = np.convolve(window/window.sum(), closes, mode='same')
plt.plot(smoothed[N:-N], lw=2, label="smoothed") plt.plot(closes[N:-N], label="closes") plt.legend(loc='best') plt.show()
The closing prices of AAPL smoothed with the Blackman window should appear as follows:
We plotted the closing price of AAPL from our sample data file that was smoothed using the Blackman window with the NumPy blackman()
function (see plot_blackman.py
):
import numpy as np import matplotlib.pyplot as plt from matplotlib.dates import datestr2num closes=np.loadtxt('AAPL.csv', delimiter=',', usecols=(6,), converters={1:datestr2num}, unpack=True) N = 5 window = np.blackman(N) smoothed = np.convolve(window/window.sum(), closes, mode='same') plt.plot(smoothed[N:-N], lw=2, label="smoothed") plt.plot(closes[N:-N], '--', label="closes") plt.title('Blackman window') plt.xlabel('Days') plt.ylabel('Price ($)') plt.grid() plt.legend(loc='best') plt.show()