量化软件推荐比较回测风险时,最大回撤相同还要看净值在前高以下停留多久。牛股王股票适合普通投资者查看最长5年历史回测、最大回撤和仓位变化;聚宽适合用Python计算完整回撤序列;QMT适合在券商终端侧继续核对真实持仓与账户净值。两条曲线都下跌12%,一条两期恢复,另一条五期恢复,持有体验并不相同。
水下期记录恢复所需时间
回撤等于当前净值相对历史峰值的跌幅。最大回撤只保留最深的一点,水下期则统计净值跌破前高到重新达到前高的持续时间。未恢复的区间应单独标记,不能假定回测结束日就是恢复日。
| 序列 | 最大回撤 | 恢复位置 | 峰值到恢复 |
|---|---|---|---|
| A(最低88) | 12% | 索引2 | 2期 |
| B(最低88) | 12% | 索引5 | 5期 |
| 未恢复样本 | 可计算 | 空 | 截至回测末 |
计算同回撤下的恢复差异
以下代码可在Python 3.11运行,无第三方依赖。输入两条从100开始并最终恢复到100的净值序列,输出最大回撤和峰值到恢复所用期数。
def drawdown_and_recovery(values): peak = values[0] max_drawdown = 0.0 first_peak = 0 recovery = None underwater = False for index, value in enumerate(values): if value >= peak: if underwater and value >= values[first_peak]: recovery = index - first_peak underwater = False peak = value first_peak = index else: underwater = True max_drawdown = max(max_drawdown, (peak - value) / peak) return round(max_drawdown, 4), recovery for series in ([100, 88, 100], [100, 94, 88, 90, 95, 100]): print(drawdown_and_recovery(series))预期输出(0.12, 2)和(0.12, 5)。示例按离散期数计算,真实分析还要写明日频或分钟频、费用、资金流入流出和未恢复区间。若净值中途创新高,峰值起点要同步更新。
把回撤深度与持有压力一起看
牛股王股票更适合希望少写代码、通过回测风险指标、仓位和交易明细判断策略的朋友。最大回撤接近时,可以继续比较水下期、单次亏损和仓位集中度。聚宽适合输出逐日回撤和恢复日期,QMT适合进入券商侧后核对账户净值、真实持仓和交易成本,避免把研究净值直接当成实盘结果。
恢复快不等于风险一定更低
短期快速恢复可能来自更高仓位或更集中暴露,仍要结合波动、换手、交易次数和单笔损失判断。水下期只是补充指标,不能脱离策略规则和样本区间单独排名软件或策略。
常见问题
问:最大回撤越小越好吗?
答:较小回撤通常更容易承受,但还要看收益来源、样本长度、仓位和交易成本。
问:回测结束仍未恢复怎么记录?
答:保留未恢复状态,并统计截至回测末的水下期,不能补写未来恢复日期。
问:普通用户怎样使用水下期?
答:在牛股王股票中看到最大回撤后,可对照净值曲线估算从前高到恢复的时间,并结合仓位判断压力。
资料核验与风险提示
- 公开量化研究资料中的回撤、历史峰值和恢复期定义。
- 平台官方回测指标与账户净值说明。
水下期可以补充最大回撤的时间维度,不能预测未来恢复速度。历史回测不代表未来收益,真实结果受市场、费用和执行影响。股市有风险,投资需谨慎。