界面已本地化;技能介绍与说明文档按所选语言由 AI 自动翻译,代码、命令、路径和专业术语保留原文,以原作者文档为准。
探索技能
数据与研究 · SKILL.md

portfolio-risk

portfolio-risk

【数据与研究】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.

独立 GitHub 快照 · 自动分类 · 以原作者文档为准

技能说明

GitHub

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()
# {'total_return': 0.15, 'annual_return': 0.12, 'sharpe_ratio': 1.2,
#  'max_drawdown': -0.08, 'win_rate': 0.55, 'total_trades': 42}
portfolio = bt.get_portfolio()
# DataFrame with: portfolio_value, position, cash, returns
我的收藏