| name | max-drawdown-calculation |
| description | 用于回撤指标的最大回撤计算原子 skill,适用于通用行业金融计算场景。 |
最大回撤计算 Skill
数据来源
本 Skill 支持多种金融数据输入格式,核心数据来源包括:
1. 价格序列数据
- 股票价格数据:日收盘价、周收盘价、月收盘价
- 基金净值数据:单位净值、累计净值
- 组合净值数据:组合累计净值序列
- 指数数据:各类市场指数、行业指数
2. 净值数据
- 累计净值序列:已计算的累计净值数据
- 收益率序列:基于收益率计算的累计净值
- 回撤序列:历史回撤数据
3. 数据格式要求
- CSV格式:标准时间序列数据,包含日期和价格/净值列
- Excel格式:支持多工作表数据
- JSON格式:结构化时间序列数据
- 数据库连接:支持SQL数据库直接查询
说明:本 Skill 不包含数据采集功能,需要用户提供清洗后的价格或净值数据。建议数据时间跨度不少于1年,以便进行准确的最大回撤计算。
功能
本 Skill 提供全面的最大回撤计算能力,涵盖多种计算方法:
1. 最大回撤计算
- 绝对最大回撤 = (峰值 - 谷值) / 峰值 × 100%
- 相对最大回撤:相对于初始值的最大回撤
- 滚动最大回撤:计算指定时间窗口内的滚动最大回撤
- 分段最大回撤:计算不同时间段的最大回撤
2. 回撤指标计算
- 最大回撤持续时间:从峰值到谷值的时间长度
- 回撤恢复时间:从谷值恢复到峰值的时间长度
- 回撤频率:统计回撤发生的频率
- 平均回撤:计算平均回撤水平
3. 回撤分析
- 回撤分布:分析回撤的分布特征
- 回撤趋势:分析回撤的时间趋势
- 回撤预警:设置回撤阈值进行预警
4. 回撤对比
- 与基准对比:与基准指数的回撤对比
- 与同类对比:与同类产品的回撤对比
- 历史对比:与历史回撤水平对比
5. 数据处理能力
- 缺失值处理:支持前向填充、插值等方法
- 异常值检测:基于统计方法识别和处理异常价格
- 数据标准化:支持不同数据源的格式统一
- 交易日调整:自动识别交易日和非交易日
使用示例
1. 安装依赖
pip install -r requirements.txt
2. 基础使用
python scripts/calc_max_drawdown.py --input prices.csv --date-col date --price-col close --output drawdown.csv
python scripts/calc_max_drawdown.py --input prices.csv --date-col date --price-col close --output rolling_drawdown.csv --window 30
python scripts/calc_max_drawdown.py --input prices.csv --date-col date --price-col close --output period_drawdown.csv --period monthly
3. 高级配置
python scripts/calc_max_drawdown.py --input prices.csv --date-col date --price-col close --output drawdown_analysis.csv --include-duration true
python scripts/calc_max_drawdown.py --input prices.csv --benchmark benchmark.csv --output comparison.csv --compare-benchmark true
python scripts/calc_max_drawdown.py --input prices.csv --date-col date --price-col close --output alert.csv --threshold 0.1
4. 输出示例
{
"symbol": "000001.SZ",
"period": "2024-01-01 to 2024-12-31",
"max_drawdown": {
"absolute_drawdown": 25.8,
"relative_drawdown": 25.8,
"peak_date": "2024-06-15",
"trough_date": "2024-08-20",
"recovery_date": "2024-11-10",
"duration_days": 66,
"recovery_days": 82
},
"rolling_drawdown": {
"30_day_max": 8.5,
"60_day_max": 15.2,
"90_day_max": 22.3
},
注意事项与限制
1. 数据质量要求
- 价格或净值数据需要经过清洗和验证
- 建议使用足够长的历史数据(至少1年)
- 异常数据会影响最大回撤计算结果
2. 计算方法选择
- 不同计算方法的结果可能不同
- 滚动窗口大小会影响回撤计算结果
- 分段计算需要考虑时间段的合理性
3. 时间序列特性
- 最大回撤具有时间依赖性
- 不同时间区间的回撤不可直接比较
- 市场环境变化会影响回撤水平
4. 综合判断原则
- 单一回撤指标不能全面反映风险特征
- 需要结合其他风险指标进行综合分析
- 应结合市场环境和投资策略进行判断
5. 使用限制
- 本 Skill 输出为技术分析结果,不构成投资建议
- 使用者应结合专业判断和具体业务场景
- 对于重大决策,建议咨询专业投资顾问
参考资料
- 见 references/ 目录中的相关文档,包括:
- 最大回撤计算公式手册
- 回撤分析方法指南
- 风险指标计算最佳实践
- 数据处理方法说明文档
License
- 本 skill 代码部分采用 MIT License,详见
LICENSE 文件
- 依赖与运行环境以
requirements.txt 为准
- 文档内容采用 CC BY 4.0 许可