def __init__(self, P): self.R_f = historical.risk_free_return() self.R_m = historical.LogReturns('^GSPC') self.P = P self.R = P.variation() self.first_year = max(2005, self.R.TimeWindow.begin.year) self.__sharpe_ratio() self.__alpha_beta()
def alpha_beta(self, N = 260, market_return = None, risk_free_return = None): import historical if market_return is None: market_return = historical.LogReturns('^GSPC') if risk_free_return is None: risk_free_return = historical.risk_free_return() self_excess = self - risk_free_return market_excess = market_return - risk_free_return b = self_excess.MultLinearRegr(N, market_excess, constant = True, coef = True)[1] W = b.TimeWindow alpha = [] beta = [] for i in xrange(len(b)): alpha.append(b[i][0]) beta.append(b[i][1]) return TimeSerie(alpha, W), TimeSerie(beta, W)
def alpha_beta(self, N=260, market_return=None, risk_free_return=None): import historical if market_return is None: market_return = historical.LogReturns('^GSPC') if risk_free_return is None: risk_free_return = historical.risk_free_return() self_excess = self - risk_free_return market_excess = market_return - risk_free_return b = self_excess.MultLinearRegr(N, market_excess, constant=True, coef=True)[1] W = b.TimeWindow alpha = [] beta = [] for i in xrange(len(b)): alpha.append(b[i][0]) beta.append(b[i][1]) return TimeSerie(alpha, W), TimeSerie(beta, W)