Если кратко то это просто писец как они считают, вот чел рассказывает.
vkvideo.ru/video-195406323_456239122
Так вот это нифига не верно, там считается какая-то херь а не Sharpe.
Вы попробуйте возьмите для примера свою самую простую стратегию, перепишите под то чем все пользуются типа Wealh-Lab или под питон и сравните со своими результатами.
Sharpe считается НЕ по сделкам, а по дневным Equity .
Можно считать и не по дневным, НО обычно по умолчанию ВСЕ считают по дневным.
Вот как считается в Pandas-TA
github.com/twopirllc/pandas-ta/blob/b465491f226d9e07fffd4e59cd0affc9284521ca/pandas_ta/utils/_metrics.py#L185
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
Можно даже посчитать к примеру Sharpe для индекса типа MOEX, если взять дневные цены закрытия
НЕТ у вас там Sharpe = 10, на трех дистрофиках. ЭТО САМООБМАН
В целом туда они, очевидно, и идут ;)