From 201e72aee1c78b045815bcc716ff330f131cf0bf Mon Sep 17 00:00:00 2001 From: John Ricklefs Date: Fri, 26 Aug 2016 14:44:41 -0400 Subject: [PATCH] PERF: Pass known calculations into empyrical methods For example, to prevent `alpha` from internally calling `beta` a second time, pass the previously-calculated `beta` value in. Requires empyrical 0.1.10 from pypi --- etc/requirements.txt | 2 +- zipline/finance/risk/cumulative.py | 6 ++++-- zipline/finance/risk/period.py | 6 ++++-- 3 files changed, 9 insertions(+), 5 deletions(-) diff --git a/etc/requirements.txt b/etc/requirements.txt index 6e672d39..a39eb475 100644 --- a/etc/requirements.txt +++ b/etc/requirements.txt @@ -66,4 +66,4 @@ intervaltree==2.1.0 cachetools==1.1.5 # For financial risk calculations -empyrical==0.1.9 +empyrical==0.1.10 diff --git a/zipline/finance/risk/cumulative.py b/zipline/finance/risk/cumulative.py index 20b5e320..6267216f 100644 --- a/zipline/finance/risk/cumulative.py +++ b/zipline/finance/risk/cumulative.py @@ -263,7 +263,8 @@ algorithm_returns ({algo_count}) in range {start} : {end} on {dt}" ) self.alpha[dt_loc] = alpha( algorithm_returns_series, - benchmark_returns_series + benchmark_returns_series, + _beta=self.beta[dt_loc] ) self.sharpe[dt_loc] = sharpe_ratio( algorithm_returns_series, @@ -275,7 +276,8 @@ algorithm_returns ({algo_count}) in range {start} : {end} on {dt}" ) self.sortino[dt_loc] = sortino_ratio( algorithm_returns_series, - benchmark_returns_series + benchmark_returns_series, + _downside_risk=self.downside_risk[dt_loc] ) self.information[dt_loc] = information_ratio( algorithm_returns_series, diff --git a/zipline/finance/risk/period.py b/zipline/finance/risk/period.py index a308db2a..2c1672e4 100644 --- a/zipline/finance/risk/period.py +++ b/zipline/finance/risk/period.py @@ -129,7 +129,8 @@ class RiskMetricsPeriod(object): ) self.sortino = sortino_ratio( self.algorithm_returns, - self.benchmark_returns + self.benchmark_returns, + _downside_risk=self.downside_risk ) self.information = information_ratio( self.algorithm_returns, @@ -141,7 +142,8 @@ class RiskMetricsPeriod(object): ) self.alpha = alpha( self.algorithm_returns, - self.benchmark_returns + self.benchmark_returns, + _beta=self.beta ) self.excess_return = self.algorithm_period_returns - \ self.treasury_period_return