Блог им. 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
В целом туда они, очевидно, и идут ;)