Блог им. BackLaN
def sharpe_ratio(close: Series, benchmark_rate: float = 0.0, log: bool = False, use_cagr: bool = False, period: int = RATE["TRADING_DAYS_PER_YEAR"]) -> float:
"""Sharpe Ratio of a series.
Args:
close (pd.Series): Series of 'close's
benchmark_rate (float): Benchmark Rate to use. Default: 0.0
log (bool): If True, calculates log_return. <a name="cut"></a> Otherwise it returns
percent_return. Default: False
use_cagr (bool): Use cagr - benchmark_rate instead. Default: False
period (int, float): Period to use to calculate Mean Annual Return and
Annual Standard Deviation.
Default: RATE["TRADING_DAYS_PER_YEAR"] (currently 252)
>>> result = ta.sharpe_ratio(close, benchmark_rate=0.0, log=False)
"""
close = verify_series(close)
returns = percent_return(close=close) if not log else log_return(close=close)
if use_cagr:
return cagr(close) / volatility(close, returns, log=log)
else:
period_mu = period * returns.mean()
period_std = npSqrt(period) * returns.std()
return (period_mu - benchmark_rate) / period_std
В целом туда они, очевидно, и идут ;)