def test_to_excess_returns(): rf = 0.05 r = df.to_returns() np.allclose(r.to_excess_returns(0), r) np.allclose(r.to_excess_returns(rf, nperiods=252), r.to_excess_returns(ffn.deannualize(rf, 252))) np.allclose(r.to_excess_returns(rf), r - rf)
def test_to_excess_returns(): rf = 0.05 r = df.to_returns() np.allclose(r.to_excess_returns(0), r) np.allclose(r.to_excess_returns(rf, nperiods=252), r.to_excess_returns(ffn.deannualize(rf, 252))) np.allclose(r.to_excess_returns(rf), r - rf)
def test_calc_sharpe(): x = pd.Series() assert np.isnan(x.calc_sharpe()) r = df.to_returns() res = r.calc_sharpe() assert np.allclose(res, r.mean() / r.std()) res = r.calc_sharpe(rf=0.05, nperiods=252) drf = ffn.deannualize(0.05, 252) ar = r - drf assert np.allclose(res, ar.mean() / ar.std() * np.sqrt(252))
def test_calc_sharpe(): x = pd.Series() assert np.isnan(x.calc_sharpe()) r = df.to_returns() res = r.calc_sharpe() assert np.allclose(res, r.mean() / r.std()) res = r.calc_sharpe(rf=0.05, nperiods=252) drf = ffn.deannualize(0.05, 252) ar = r - drf assert np.allclose(res, ar.mean() / ar.std() * np.sqrt(252))
def test_deannualize(): res = ffn.deannualize(0.05, 252) assert np.allclose(res, np.power(1.05, 1 / 252.) - 1)
def test_deannualize(): res = ffn.deannualize(0.05, 252) assert np.allclose(res, np.power(1.05, 1 / 252.) - 1)