diff --git a/zipline/finance/risk/cumulative.py b/zipline/finance/risk/cumulative.py index 6267216f..9cb11dc7 100644 --- a/zipline/finance/risk/cumulative.py +++ b/zipline/finance/risk/cumulative.py @@ -257,6 +257,9 @@ algorithm_returns ({algo_count}) in range {start} : {end} on {dt}" self.excess_returns[dt_loc] = ( self.algorithm_cumulative_returns[dt_loc] - self.treasury_period_return) + + risk_adj_returns = algorithm_returns_series - benchmark_returns_series + self.beta[dt_loc] = beta( algorithm_returns_series, benchmark_returns_series @@ -267,16 +270,13 @@ algorithm_returns ({algo_count}) in range {start} : {end} on {dt}" _beta=self.beta[dt_loc] ) self.sharpe[dt_loc] = sharpe_ratio( - algorithm_returns_series, - benchmark_returns_series + risk_adj_returns ) self.downside_risk[dt_loc] = downside_risk( - algorithm_returns_series, - benchmark_returns_series + risk_adj_returns ) self.sortino[dt_loc] = sortino_ratio( - algorithm_returns_series, - benchmark_returns_series, + risk_adj_returns, _downside_risk=self.downside_risk[dt_loc] ) self.information[dt_loc] = information_ratio( diff --git a/zipline/finance/risk/period.py b/zipline/finance/risk/period.py index 2c1672e4..b2e9bd86 100644 --- a/zipline/finance/risk/period.py +++ b/zipline/finance/risk/period.py @@ -123,13 +123,12 @@ class RiskMetricsPeriod(object): # In the meantime, convert nan values to 0.0 if pd.isnull(self.sharpe): self.sharpe = 0.0 + risk_adj_returns = self.algorithm_returns - self.benchmark_returns self.downside_risk = downside_risk( - self.algorithm_returns, - self.benchmark_returns + risk_adj_returns ) self.sortino = sortino_ratio( - self.algorithm_returns, - self.benchmark_returns, + risk_adj_returns, _downside_risk=self.downside_risk ) self.information = information_ratio(