Performance Metrics¶
Comprehensive metrics for evaluating strategy performance.
Return Metrics¶
Total Return¶
Cumulative return over the backtest period:
CAGR (Compound Annual Growth Rate)¶
Annualized return accounting for compounding:
Monthly Returns¶
Returns by calendar month:
Monthly Returns:
Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec Year
2020 -1.2% 2.3% -4.1% 5.2% 3.1% 1.8% -0.5% 4.2% -1.3% 2.1% 5.3% 2.8% 21.2%
2021 2.1% 1.8% 3.2% 2.1% -1.5% 2.3% 1.8% 2.5% -2.1% 3.2% 1.5% 2.3% 21.5%
2022 -3.2% -2.1% 1.5% -4.2% -1.8% -3.5% 2.1% -1.5% -4.3% 3.2% 2.8% -1.5% -12.8%
2023 3.2% 1.5% 2.1% 1.8% 2.3% 3.1% 2.5% 1.2% -0.8% -1.2% 4.2% 3.5% 25.8%
2024 1.8% 2.3% 2.1% 3.2% 1.5% 2.8% ...
Rolling Returns¶
Returns over rolling windows:
| Period | 1M | 3M | 6M | 1Y | 3Y |
|---|---|---|---|---|---|
| Return | 2.8% | 7.2% | 12.1% | 18.5% | 52.3% |
Risk Metrics¶
Volatility¶
Annualized standard deviation of returns:
Downside Volatility¶
Standard deviation of negative returns only:
Maximum Drawdown¶
Largest peak-to-trough decline:
Max Drawdown: -18.5%
Max Drawdown Duration: 145 days
Max Drawdown Start: 2022-01-03
Max Drawdown End: 2022-10-12
Recovery Date: 2023-02-15
Value at Risk (VaR)¶
Maximum expected loss at confidence level:
Interpretation: 95% of days, losses won't exceed 2.1%.
Conditional VaR (CVaR / Expected Shortfall)¶
Average loss beyond VaR:
Interpretation: When losses exceed VaR, average loss is 3.2%.
Risk-Adjusted Metrics¶
Sharpe Ratio¶
Return per unit of risk:
Interpretation:
| Sharpe | Quality |
|---|---|
| < 0.5 | Poor |
| 0.5-1.0 | Average |
| 1.0-1.5 | Good |
| > 1.5 | Excellent |
Sortino Ratio¶
Return per unit of downside risk:
Calmar Ratio¶
CAGR relative to maximum drawdown:
Information Ratio¶
Excess return per unit of tracking error:
Omega Ratio¶
Probability-weighted gains vs losses:
Benchmark Comparison¶
Alpha and Beta¶
CAPM regression coefficients:
Tracking Error¶
Volatility of excess returns:
Up/Down Capture¶
Performance in up vs down markets:
Up Capture: 85% (captures 85% of benchmark gains)
Down Capture: 62% (captures 62% of benchmark losses)
Capture Ratio: 1.37 (85/62)
Correlation¶
Distribution Metrics¶
Skewness¶
Asymmetry of returns:
- Negative: More extreme losses than gains
- Positive: More extreme gains than losses
Kurtosis¶
Tail heaviness:
- 3.0: Normal distribution
- >3.0: Fat tails (more extreme events)
- <3.0: Thin tails
Win Rate¶
Percentage of positive return periods:
Profit Factor¶
Gross profits / Gross losses:
Trading Metrics¶
Turnover¶
Portfolio turnover rate:
Trade Count¶
Position Count¶
Concentration¶
Period Analysis¶
Best/Worst Periods¶
Best Day: +4.2% (2020-11-09)
Worst Day: -3.8% (2020-03-16)
Best Month: +8.5% (2020-11)
Worst Month: -8.2% (2020-03)
Best Year: +25.8% (2023)
Worst Year: -12.8% (2022)
Drawdown Table¶
Top 5 Drawdowns:
Rank | Start | End | Recovery | Depth | Duration
-----+------------+------------+------------+----------+---------
1 | 2022-01-03 | 2022-10-12 | 2023-02-15 | -18.5% | 282 days
2 | 2020-02-19 | 2020-03-23 | 2020-06-08 | -12.3% | 110 days
3 | 2023-07-31 | 2023-10-27 | 2023-12-08 | -8.7% | 130 days
4 | 2021-09-02 | 2021-10-04 | 2021-11-08 | -6.2% | 67 days
5 | 2024-04-01 | 2024-04-19 | 2024-05-15 | -5.1% | 44 days
Accessing Metrics in Code¶
CLI Output¶
JSON Export¶
{
"total_return": 0.852,
"cagr": 0.131,
"volatility": 0.152,
"sharpe_ratio": 0.86,
"max_drawdown": -0.185,
"calmar_ratio": 0.71,
"alpha": 0.042,
"beta": 0.72
}
Python Integration¶
import pysigc
results = pysigc.run("strategy.sig")
print(f"Sharpe: {results.sharpe_ratio:.2f}")
print(f"Max DD: {results.max_drawdown:.1%}")
Metric Interpretation Guide¶
What Makes a Good Strategy?¶
| Metric | Poor | Acceptable | Good | Excellent |
|---|---|---|---|---|
| Sharpe | <0.5 | 0.5-0.8 | 0.8-1.2 | >1.2 |
| Max DD | >30% | 20-30% | 10-20% | <10% |
| Calmar | <0.5 | 0.5-0.8 | 0.8-1.2 | >1.2 |
| Win Rate | <50% | 50-55% | 55-60% | >60% |
Red Flags¶
- Sharpe > 2.5 without explanation (likely overfit)
- Max DD recovering immediately (data snooping)
- No down years in 5+ year backtest
- Turnover > 1000% annually (cost-prohibitive)
Next Steps¶
- Cost Models - Impact of trading costs
- Benchmark Analysis - Detailed benchmark comparison
- Walk-Forward - Out-of-sample validation