Time for action – plotting price and volume returns with a scatter plot

We can easily make a scatter plot of the stock price and volume returns. Again, let's download the necessary data from Yahoo Finance.

  1. The quotes data in the previous step is stored in a Python list. Convert this to a NumPy array and extract the close and volume values:
    dates = quotes.T[4]
    volume = quotes.T[5]
  2. Calculate the close price and volume returns:
    ret = np.diff(close)/close[:-1]
    volchange = np.diff(volume)/volume[:-1]
  3. Create a matplotlib figure object:
    fig = plt.figure()
  4. Add a subplot to the figure:
    ax = fig.add_subplot(111)
  5. Create the scatter plot with the color of the data points linked to the close return, and the size linked to the volume change:
    ax.scatter(ret, volchange, c=ret * 100, s=volchange * 100, alpha=0.5)
  6. Set the title of the plot and put a grid on it:
    ax.set_title('Close and volume returns')
    ax.grid(True)
    
    plt.show()

    The scatter plot for DISH appears as follows:

    Time for action – plotting price and volume returns with a scatter plot

What just happened?

We made a scatter plot of the close price and volume returns for DISH (see scatterprice.py):

from matplotlib.finance import quotes_historical_yahoo
import sys
from datetime import date
import matplotlib.pyplot as plt
import numpy as np

today = date.today()
start = (today.year - 1, today.month, today.day)

symbol = 'DISH'

if len(sys.argv) == 2:
   symbol = sys.argv[1]

quotes = quotes_historical_yahoo(symbol, start, today)
quotes = np.array(quotes)
close = quotes.T[4]
volume = quotes.T[5]
ret = np.diff(close)/close[:-1]
volchange = np.diff(volume)/volume[:-1]

fig = plt.figure()
ax = fig.add_subplot(111)
ax.scatter(ret, volchange, c=ret * 100, s=volchange * 100, alpha=0.5)
ax.set_title('Close and volume returns')
ax.grid(True)

plt.show()
..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset