2014-02-02 4 views
3

Я начал программирование около недели назад, и я закончил учебник по кодовой академии и просмотрел несколько лекций в Интернете. Моя первая цель - создать интерактивную программу оптимизации портфеля.Сценарий Python для расчета бета-версии актива, дающий неверный результат

Я написал сценарий, чтобы найти бета-версию актива (со-дисперсия a и b/дисперсия b), однако мои результаты не там, где рядом с фактической бета-версией для активов, которые я подключаю. Использование «AAPL 'и' SPY 'результат должен быть около 0,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) 

ответ

2

У Вас есть ошибка в строке:

variance = numpy.var(a) 

Оно должно быть:

variance = numpy.var(b) 

Поскольку формула для беты является:

covar(a,b)/var(b) 

В оригинальном виде вы написали свой код, вы получаете бета-версию b не от a до b.

Смежные вопросы