vwap是经济学上的一个重要量,代表了金融资产的平均价格。某个价格的成交量越高,该价格所占的权重就越大
示例:
import numpy as np
c,v = np.loadtxt("000875.csv",delimiter=',',usecols=(3,5),unpack=True)
vwap = np.average(c,weights=v)
print vwap
在代码中,我们首先通过loadtxt函数获取股票的收盘价和成交量,分别存储在c和v两个数组中,然后通过average函数进行加权平均价格的计算,计算的主体是c也就是收盘价,并且通过参数weights设定参考的权重为v,也就是成交量
输出结果:
6.37752357307
计算算数平均值我们可以有两种方法,第一种是利用刚刚的average函数,只需要将传入的weights参数去掉就可以了,第二种是利用numpy的mean函数:
import numpy as np
c,v = np.loadtxt("000875.csv",delimiter=',',usecols=(3,5),unpack=True)
print np.average(c)
print np.mean(c)
输出结果为:
6.31413793103
6.31413793103
这也是一种重要的经济学量。基本的思想就是最近的价格影响较大,对于近期的价格给予一个更大的权重,为了演示,我们使用一个自然增长序列表示权重,但是这并不是正确计算时间加权平均价格的一种好的方式,例:
import numpy as np
c,v = np.loadtxt("000875.csv",delimiter=',',usecols=(3,5),unpack=True)
t = np.arange(len(c))//获取c的长度,依次建立自然增长数列
print np.average(c,weights=t)
print np.average(c,weights=v)
print np.mean(c)
在这里分别计算了000875这只股票的算术平均值、成交量加权平均值(vwap)和时间加权平均值(twap)
输出结果:
6.36517241379//时间加权平均值
6.37752357307//成交量加权平均值
6.31413793103//算数平均值
可以看出,时间加权平均值要小于成交量加权平均值,结合这只股票最近的走势:
可以看出时间加权平均值,在一定程度上反映了该股票最近一段时间的走势
min函数和max函数,分别可以求取数组中的最大值和最小值。
import numpy as np
c,v = np.loadtxt("000875.csv",delimiter=',',usecols=(2,4),unpack=True)
high = np.max(c)
low = np.min(v)
print low
print high
该例中,修改读取的为股票每天的最高价放在c中,最低价放在v中,分别使用max函数求取c中的最高价,用min求取v 中最低价。
输出结果:
6.85
5.84
要求取值范围,可以使用ptp函数,返回的是数组中最大值和最小值之间的差值;
寻找中位数比较方便,可以使用median函数,该函数会将数组进行排序,并且找到中位数,当数组总数为单数时,中位数即为处于数组中间的数,总数为双数时,即为位于中间的两个数的平方。
import numpy as np
c,v = np.loadtxt("000875.csv",delimiter=',',usecols=(2,4),unpack=True)
mid = np.median(c)
print mid
数组排序使用msort函数会方便地实现
import numpy as np
c,v = np.loadtxt("000875.csv",delimiter=',',usecols=(2,4),unpack=True)
msort = np.msort(c)
print msort
也就是数组中各数值的波动情况,可以使用var函数实现:
import numpy as np
c,v = np.loadtxt("000875.csv",delimiter=',',usecols=(2,4),unpack=True)
var = np.var(c)
print var