Разработка системы расчета Sharpe Ratio

Проектируем и разрабатываем блокчейн-решения полного цикла: от архитектуры смарт-контрактов до запуска DeFi-протоколов, NFT-маркетплейсов и криптобирж. Аудит безопасности, токеномика, интеграция с существующей инфраструктурой.
Показано 1 из 1Все 1306 услуг
Разработка системы расчета Sharpe Ratio
Простой
от 1 дня до 3 дней
Часто задаваемые вопросы

Направления блокчейн-разработки

Этапы блокчейн-разработки

Последние работы

  • image_website-b2b-advance_0.webp
    Разработка сайта компании B2B ADVANCE
    1288
  • image_web-applications_feedme_466_0.webp
    Разработка веб-приложения для компании FEEDME
    1198
  • image_websites_belfingroup_462_0.webp
    Разработка веб-сайта для компании БЕЛФИНГРУПП
    902
  • image_ecommerce_furnoro_435_0.webp
    Разработка интернет магазина для компании FURNORO
    1122
  • image_logo-advance_0.webp
    Разработка логотипа компании B2B Advance
    589
  • image_crm_enviok_479_0.webp
    Разработка веб-приложения для компании Enviok
    859

Разработка системы расчета Sharpe Ratio

Sharpe Ratio — наиболее распространённая метрика качества торговой стратегии, измеряющая доходность относительно принятого риска.

Формула: Sharpe = (Rp − Rf) / σp

где Rp — доходность портфеля, Rf — безрисковая ставка, σp — стандартное отклонение доходности.

Для криптоторговли безрисковую ставку часто принимают равной 0 (или доходности стейблкоин стейкинга ~5% годовых). Результат аннуализируется умножением на √252 (торговые дни) или √365 (для крипты работающей круглосуточно).

import numpy as np

def calculate_sharpe_ratio(returns, risk_free_rate=0.0, periods_per_year=365):
    """
    returns: series of daily returns
    """
    excess_returns = returns - risk_free_rate / periods_per_year
    
    if excess_returns.std() == 0:
        return 0
    
    sharpe = excess_returns.mean() / excess_returns.std()
    annualized_sharpe = sharpe * np.sqrt(periods_per_year)
    return annualized_sharpe

def rolling_sharpe(returns, window=90, risk_free_rate=0.0, periods_per_year=365):
    """Rolling Sharpe для отслеживания деградации стратегии"""
    rolling = returns.rolling(window)
    sharpe_series = (
        rolling.mean() - risk_free_rate / periods_per_year
    ) / rolling.std() * np.sqrt(periods_per_year)
    return sharpe_series

Интерпретация: Sharpe > 1.0 — приемлемо. > 2.0 — хорошо. > 3.0 — отлично (и часто означает overfitting при backtesting). < 0 — стратегия хуже безрисковой ставки.

Проблема с Sharpe для крипты: симметричное стандартное отклонение наказывает как за убытки, так и за прибыль. Это нелогично — высокая доходность не является риском. Для асимметричных стратегий лучше использовать Sortino Ratio.

Rolling Sharpe показывает деградацию стратегии во времени — если он снижается, стратегия теряет edge. Система включает расчёт текущего, rolling 90-day и годового Sharpe с визуализацией в Grafana dashboard.