我大约一周前开始编程,我完成了代码学院教程并在线观看了一些讲座。我的第一个目标是构建一个交互式投资组合优化计划。
我编写了一个脚本来查找资产的beta(a和b的方差的共同方差b)但是我的结果并没有接近我插入的资产的实际beta值。使用'AAPL'并且'SPY'的结果应该是.75左右,并且它会产生〜.16。
如果可能的话,我也想返回r ^ 2,并在更长的时间内使用月度数据。
这是我的代码:
from pandas.io.data import DataReader
from datetime import datetime
from datetime import date
import numpy
### Enter the stocks to be analyzed
s1 = input('Input the first ticker in quotations: ')
s2 = input('Input the second ticker in quotations: ')
### Pulling stock data from yahoo finance
today = date.today()
stock_one = DataReader((s1),'yahoo', datetime(2013,1,1), today)
stock_two = DataReader((s2),'yahoo', datetime(2013,1,1), today)
a = stock_one['Adj Close']
b = stock_two['Adj Close']
### Calculating the beta for the stock
covariance = numpy.cov(a,b)[0][1]
variance = numpy.var(a)
beta = covariance / variance
print 'The beta for your stock is ' + str(beta)
答案 0 :(得分:2)
你在这一行上有一个错误:
variance = numpy.var(a)
应该是:
variance = numpy.var(b)
由于beta的公式为:
covar(a,b)/var(b)
按照您编写代码的原始方式,您将获得b的beta而不是a到b。