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

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

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

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

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

  • 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

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

Calmar Ratio (Compound Annual growth rate / Maximum drawdown) оценивает доходность стратегии относительно её наихудшего исторического падения. Это особенно важная метрика для трейдеров, для которых максимальный drawdown является ключевым ограничением.

Формула: Calmar = CAGR / |Max Drawdown|

import numpy as np

def calculate_calmar_ratio(equity_curve, periods_per_year=365):
    """
    equity_curve: временной ряд стоимости портфеля
    """
    # CAGR
    total_days = len(equity_curve)
    total_return = equity_curve[-1] / equity_curve[0]
    cagr = total_return ** (periods_per_year / total_days) - 1
    
    # Maximum Drawdown
    peaks = np.maximum.accumulate(equity_curve)
    drawdowns = (equity_curve - peaks) / peaks
    max_drawdown = abs(drawdowns.min())
    
    if max_drawdown == 0:
        return float('inf')
    
    calmar = cagr / max_drawdown
    return calmar

def rolling_calmar(equity_curve, window=252, periods_per_year=365):
    """Rolling Calmar за скользящий год"""
    results = []
    for i in range(window, len(equity_curve) + 1):
        window_equity = equity_curve[i-window:i]
        calmar = calculate_calmar_ratio(window_equity, periods_per_year)
        results.append(calmar)
    return results

Интерпретация: Calmar > 1.0 — стратегия зарабатывает больше в год, чем её максимальный drawdown. > 3.0 — отличный результат. Calmar < 0.5 — drawdown слишком велик относительно доходности.

Сравнение метрик:

Метрика Что измеряет Когда использовать
Sharpe Доходность / все риски Универсально
Sortino Доходность / нисходящий риск Асимметричные стратегии
Calmar Доходность / max drawdown При жёстком drawdown лимите

MAR Ratio — близкая метрика: Compound Return / Max Drawdown (без CAGR нормировки). Используется для сравнения стратегий с разными горизонтами.

Sterling Ratio: CAGR / среднее из топ-N drawdown (обычно топ-3). Более устойчива чем Calmar, который зависит от одного экстремального события.

Разрабатываем систему расчёта Calmar, MAR и Sterling Ratio с rolling window анализом, бенчмаркингом против BTC buy-and-hold и визуализацией в portfolio dashboard.