Time for action – using a legend and annotations
In Chapter 3, Getting Familiar with Commonly Used Functions, we learned how to calculate the EMA of stock prices. We will plot the close price of a stock and three of its EMA. To clarify the plot, we will add a legend. We will also indicate crossovers of two of the averages with annotations. Some steps are again omitted to avoid repetition.
- Go back to Chapter 3, Getting Familiar with Commonly Used Functions, if needed, and review the EMA algorithm. Calculate and plot the EMAs of
9
,12
, and15
periods:emas = [] for i in range(9, 18, 3): weights = np.exp(np.linspace(-1., 0., i)) weights /= weights.sum() ema = np.convolve(weights, close)[i-1:-i+1] idx = (i - 6)/3 ax.plot(dates[i-1:], ema, lw=idx, label="EMA(%s)" % (i)) data = np.column_stack((dates[i-1:], ema)) emas.append(np.rec.fromrecords( data, names=["dates", "ema"]))
Notice that the
plot()
function call needs a label for the...