The following are the actions that we will take:
import numpy as np c,v=np.loadtxt('data.csv', delimiter=',', usecols=(6,7), unpack=True) vwap = np.average(c, weights=v) print "VWAP =", vwap The output is VWAP = 350.589549353
That wasn't very hard, was it? We just called the average
function and set its weights
parameter to use the v
array for weights. By the way, NumPy also has a function to calculate the arithmetic mean.
The mean
function is quite friendly and not so mean. This function calculates the arithmetic mean of an array. Let's see it in action:
print "mean =", np.mean(c) mean = 351.037666667
In finance, TWAP is another "average" price measure. Now that we are at it, let's compute the time-weighted average price, too. It is just a variation on a theme really. The idea is that recent price quotes are more important, so we should give recent prices higher weights. The easiest way is to create an array with the arange
function of increasing values from zero to the number of elements in the close price array. This is not necessarily the correct way. In fact, most of the examples concerning stock price analysis in this book are only illustrative. The following is the TWAP code:
t = np.arange(len(c)) print "twap =", np.average(c, weights=t)
It produces the following output:
twap = 352.428321839
The TWAP is even higher than the mean.
Q1. Which function returns the weighted average of an array?
weighted average
waverage
average
avg