Calmar Node

Calmar Ratio — Annualised Return to Max Drawdown

StatisticalRisk-Adjusted Return

Overview

The Calmar Ratio measures risk-adjusted performance as annualised return divided by the absolute maximum drawdown. A Calmar above 1 means the strategy earns more than its worst historical drawdown each year.

Unlike the base Calmar node which reads from a stock source, this node accepts any wired returns series. It outputs a scalar (a single aggregate value rather than a per-bar series), along with the components that make it up.

Scalar Output: This node computes a single aggregate value from the entire input window, not a rolling per-bar series.

Formula

annualizedReturn = mean(returns) × periodsPerYear
maxDrawdown = max[(peak − trough) / peak] over all valid returns
Calmar = annualizedReturn / |maxDrawdown|
Returns must be period returns (e.g. daily log or simple returns). maxDrawdown is computed on the cumulative equity curve.

Parameters

ParameterDefaultDescription
periodsPerYear252Trading periods per year: 252 (daily), 52 (weekly), 12 (monthly)

Inputs & Outputs

SlotDirectionTypeDescription
inputInput{ values, timestamps }Returns series (per-period returns)
valueOutputnumber | nullCalmar ratio (scalar)
annualizedReturnOutputnumber | nullAnnualised mean return (scalar)
maxDrawdownOutputnumber | nullMaximum drawdown as a negative fraction (scalar)

Use Cases

Strategy Ranking

Compare strategies on the same instrument using Calmar to identify which delivers the best return per unit of drawdown risk.

Parameter Optimisation

Use Calmar as the optimisation objective when searching for strategy parameters with the best risk-adjusted return.

Drawdown-Sensitive Investors

Calmar penalises deep drawdowns more directly than Sharpe ratio, making it preferred by investors who cannot tolerate large equity declines.

Tips & Best Practices

Calmar > 1 Is Good

A Calmar above 1 means annualised return exceeds the absolute maximum drawdown. Elite strategies often exceed 2.

Match periodsPerYear to Data

Use 252 for daily, 52 for weekly, 12 for monthly. Mismatched values will produce misleading annualisation.

Scalar Node

Calmar outputs a single value, not a time series. It is best used in a display or decision node rather than piped to another indicator.

Related Indicators