1
2 import cPickle
3 from pylab import *
4 from pandas import *
5 import datetime as dt
6
7
8 import qstkutil.DataAccess as da
9 import qstkutil.dateutil as du
10
12 sum = zeros(len(period.columns))
13 count=0
14 for day in period.index:
15 sum+=period.xs(day)
16 count+=1
17 return(sum/count)
18
20 avg=calcavg(period)
21 devs=zeros(len(period.columns))
22 count=0
23 for day in period.index:
24 devs+=(period.xs(day)-avg*ones(len(period.columns)))*(period.xs(day)-avg*ones(len(period.columns)))
25 count+=1
26 return(sqrt(devs/count))
27
28 -def calcbvals(adjclose, timestamps, stocks, lookback):
29 for i in adjclose.values:
30 if i == 'NaN':
31 adjclose.values[adjclose.values.index(i)]=1;
32 bvals=DataMatrix(index=[timestamps[0]],columns=stocks,data=[zeros(len(stocks))])
33 for i in range(1,len(timestamps)):
34 s=i-lookback
35 if s<0:
36 s=0
37 lookbackperiod=adjclose[s:i]
38 avg = calcavg(lookbackperiod)
39 stddevs = calcdev(lookbackperiod)
40 if not(0 in stddevs):
41 b=(adjclose[i:i+1]-avg*ones(len(lookbackperiod.columns)))/stddevs
42 bvals=bvals.append(DataMatrix(index=[timestamps[i]],columns=stocks,data=b))
43 return(bvals)
44