From e43a3e8b1b8ac82810b102903c4878e2dd19c596 Mon Sep 17 00:00:00 2001 From: Scott Sanderson Date: Thu, 14 Jul 2016 15:29:25 -0400 Subject: [PATCH] MAINT: Use arange instead of rolling_count. It's faster, and rolling_count is deprecated. --- zipline/finance/risk/period.py | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/zipline/finance/risk/period.py b/zipline/finance/risk/period.py index 37edbbc7..796a6610 100644 --- a/zipline/finance/risk/period.py +++ b/zipline/finance/risk/period.py @@ -19,6 +19,7 @@ import logbook from six import iteritems +import numpy as np import pandas as pd from . import risk @@ -95,11 +96,11 @@ class RiskMetricsPeriod(object): raise Exception(message) self.num_trading_days = len(self.benchmark_returns) - self.trading_day_counts = pd.stats.moments.rolling_count( - self.algorithm_returns, self.num_trading_days) - self.mean_algorithm_returns = \ - self.algorithm_returns.cumsum() / self.trading_day_counts + self.mean_algorithm_returns = ( + self.algorithm_returns.cumsum() / + np.arange(1, self.num_trading_days + 1, dtype=np.float64) + ) self.benchmark_volatility = annual_volatility(self.benchmark_returns) self.algorithm_volatility = annual_volatility(self.algorithm_returns)