Ejemplo n.º 1
0
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)
Ejemplo n.º 2
0
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)
Ejemplo n.º 3
0
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)
Ejemplo n.º 4
0
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)
Ejemplo n.º 5
0
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
Ejemplo n.º 6
0
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
Ejemplo n.º 7
0
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)