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
This commit is contained in:
John Ricklefs
2016-08-26 14:44:41 -04:00
parent 339417d27f
commit 201e72aee1
3 changed files with 9 additions and 5 deletions
+1 -1
View File
@@ -66,4 +66,4 @@ intervaltree==2.1.0
cachetools==1.1.5
# For financial risk calculations
empyrical==0.1.9
empyrical==0.1.10
+4 -2
View File
@@ -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,
+4 -2
View File
@@ -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