Skip to content

trading.optimizer.analysis.calculate_metrics

trading.optimizer.analysis.calculate_metrics

calculate_metrics

calculate_metrics(data: ExecutionData) -> Metrics

Calculates readable metrics for backtest data.

Parameters:

Name Type Description Default
data ExecutionData

The backtest data to derive metrics from.

required

Returns:

Name Type Description
Metrics Metrics

A metrics object representing returns, drawdown, risks, and trade information about the strategy.

Source code in src\contango\trading\optimizer\analysis\calculate_metrics.py
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
def calculate_metrics(data: ExecutionData) -> Metrics:
    """
    Calculates readable metrics for backtest data.

    Args:
        data: The backtest data to derive metrics from.

    Returns:
        Metrics: A metrics object representing returns, drawdown, risks, and trade information about the strategy.
    """
    analysis_context = build_context(data)
    return_metrics = get_return_metrics(analysis_context)
    drawdown_metrics = get_drawdown_metrics(analysis_context)
    risk_metrics = get_risk_metrics(analysis_context, return_metrics.monthly_returns, drawdown_metrics.max_drawdown)
    trade_metrics = get_trade_metrics(analysis_context)
    return Metrics(
        returns=return_metrics,
        risk=risk_metrics,
        drawdowns=drawdown_metrics,
        trades=trade_metrics
    )