The information_ratio function computes excess return using arithmetic mean:
active_return = returns.mean() - benchmark.mean()
For longer backtests this overstates the ratio compared to using geometric (compounded) returns. The geometric version would be:
active_return = (1 + returns).prod() ** (1/len(returns)) - (1 + benchmark).prod() ** (1/len(benchmark))
This matters for crypto strategies where daily returns can be large enough that the arithmetic/geometric gap is meaningful over multi-year backtests.
Would a compounded flag similar to the one added for calmar() and rar() in #512 be welcome here?
The information_ratio function computes excess return using arithmetic mean:
For longer backtests this overstates the ratio compared to using geometric (compounded) returns. The geometric version would be:
This matters for crypto strategies where daily returns can be large enough that the arithmetic/geometric gap is meaningful over multi-year backtests.
Would a
compoundedflag similar to the one added forcalmar()andrar()in #512 be welcome here?