def annualized_volatility_1d_nb(returns, ann_factor, levy_alpha=2.0): """See `empyrical.annual_volatility`.""" if returns.shape[0] < 2: return np.nan return generic_nb.nanstd_1d_nb(returns, ddof=1) * ann_factor**(1.0 / levy_alpha)
def information_ratio_1d_nb(returns, benchmark_rets): """See `empyrical.excess_sharpe`.""" if returns.shape[0] < 2: return np.nan active_return = returns - benchmark_rets return np.nanmean(active_return) / generic_nb.nanstd_1d_nb(active_return, ddof=1)
def annualized_volatility_1d_nb(returns: tp.Array1d, ann_factor: float, levy_alpha: float = 2.0, ddof: int = 1) -> float: """Annualized volatility of a strategy.""" if returns.shape[0] < 2: return np.nan return generic_nb.nanstd_1d_nb(returns, ddof) * ann_factor ** (1.0 / levy_alpha)
def sharpe_ratio_1d_nb(returns, ann_factor, risk_free=0.): """See `empyrical.sharpe_ratio`.""" if returns.shape[0] < 2: return np.nan returns_risk_adj = returns - risk_free mean = np.nanmean(returns_risk_adj) std = generic_nb.nanstd_1d_nb(returns_risk_adj, ddof=1) if std == 0.: return np.inf return mean / std * np.sqrt(ann_factor)
def information_ratio_1d_nb(returns, benchmark_rets, ddof=1): """See `empyrical.excess_sharpe`.""" if returns.shape[0] < 2: return np.nan active_return = returns - benchmark_rets mean = np.nanmean(active_return) std = generic_nb.nanstd_1d_nb(active_return, ddof) if std == 0.: return np.inf return mean / std
def information_ratio_1d_nb(returns: tp.Array1d, benchmark_rets: tp.Array1d, ddof: int = 1) -> float: """Information ratio of a strategy.""" if returns.shape[0] < 2: return np.nan active_return = returns - benchmark_rets mean = np.nanmean(active_return) std = generic_nb.nanstd_1d_nb(active_return, ddof) if std == 0.: return np.inf return mean / std
def sharpe_ratio_1d_nb(returns: tp.Array1d, ann_factor: float, risk_free: float = 0., ddof: int = 1) -> float: """See `empyrical.sharpe_ratio`.""" if returns.shape[0] < 2: return np.nan returns_risk_adj = returns - risk_free mean = np.nanmean(returns_risk_adj) std = generic_nb.nanstd_1d_nb(returns_risk_adj, ddof) if std == 0.: return np.inf return mean / std * np.sqrt(ann_factor)