| name | portfolio-risk |
| description | Analyzes portfolio risk and performance metrics. Computes Value at Risk (VaR), Sharpe ratio, Sortino ratio, beta, correlation matrices, drawdown analysis, and position sizing recommendations. Trigger when the user requests risk analysis, portfolio optimization, or performance attribution. |
| metadata | {"hermes":{"tags":["risk","portfolio","VaR","sharpe","position-sizing"],"category":"trading"}} |
Portfolio Risk
Analyzes portfolio risk and recommends position sizing and diversification.
Real Code Reference
tradinglearn/backtest/backtester.py — Backtester._calculate_performance() computes Sharpe, max drawdown, win rate, total return, CAGR
tradinglearn/utils/parameter_optimizer.py — plot_optimization_results() heatmaps: return, Sharpe, drawdown, win rate
tradinglearn/pytdx2/backtest.py — BacktestEngine tracks per-trade P&L for risk analysis
Risk Metrics
- VaR: historical simulation, parametric, Monte Carlo
- CVaR (Expected Shortfall): average loss beyond VaR
- Maximum Drawdown: peak-to-trough with recovery duration
- Volatility: annualized std of returns
Performance Metrics
- Sharpe Ratio: (R - Rf) / sigma
- Sortino Ratio: downside-only volatility
- Calmar Ratio: annual return / max drawdown
- Information Ratio: active return / tracking error
Portfolio Analysis
- Correlation matrix between holdings
- Beta to market benchmark
- Position concentration (Herfindahl index)
- Risk parity weights
Usage
from backtest.backtester import Backtester
bt = Backtester(initial_capital=100000.0)
bt.run_backtest(data, MyStrategy, params)
perf = bt.get_performance()
portfolio = bt.get_portfolio()