
用蒙特卡洛测系统鲁棒性
用蒙特卡洛方法做交易系统鲁棒性测试——交易顺序打乱、收益重采样、参数扰动,每项都有具体阈值。
交互工具在翻译视图中可能无法使用。
用蒙特卡洛测系统鲁棒性
单次回测只给你一条历史交易序列对应的一个回撤数字。蒙特卡洛(Monte Carlo)暴露的是可能结果的分布。鲁棒性测试和风险估算不一样:它问的是系统能不能活下来,而不只是一波差行情有多糟。
三个鲁棒性测试
1. 交易顺序打乱
把历史交易的顺序打乱 1000 次,交易本身不变,只重排。每条序列重新算回撤。
测的是什么:你的回测回撤到底是幸运的顺序还是代表性结果。
阈值:如果第 95 百分位的打乱回撤超过你回测回撤的 2 倍,系统对顺序脆弱。历史顺序奉承了你。
2. 收益重采样(Bootstrap)
从历史分布里有放回地抽样交易,构造 1000 条等长的合成权益曲线。每条重算 Sharpe(夏普)和最终权益。
测的是什么:给定观测到的交易分布,edge 是否稳定。
阈值:如果超过 5% 的重采样曲线收在零以下,edge 太薄不能信。系统离爆仓只差一个坏样本。
3. 参数扰动
每个参数上下各挪 10% 和 20%,每次重算 Sharpe。
测的是什么:edge 是不是依赖精确参数值。
阈值:如果 10% 扰动让 Sharpe 跌超 25%,参数是拟合到噪音上了。否决或简化。
怎么跑
- 顺序打乱和 bootstrap 只要你的交易清单(进场、出场、R 倍数)。任何表格或 Python 脚本几秒跑完 1000 次。
- 参数扰动要重跑回测,所以在你的测试框架里自动化。
- 三项都要跑。过一项什么都证明不了;鲁棒性是合取关系。
一起解读结果
一个鲁棒的系统三项都过:
- 打乱回撤在回测的 1.5 倍以内。
- bootstrap 曲线低于 2% 为负。
- 20% 参数扰动下 Sharpe 稳定。
打乱和 bootstrap 都过但扰动挂了的系统,是顺序鲁棒但参数脆弱——大概是有真 edge 但参数过拟合;用更平的曲面重新优化。打乱都挂的系统不是系统,是一条幸运序列。
常见错误
- 跑一次蒙特卡洛就引用结果。风险决策用第 95 百分位,不是均值。
- 交易不独立时(比如带序列相关的趋势系统)对收益重采样而不是对交易重采样。对相关交易流,用块 bootstrap,块长匹配自相关衰减。
- 把蒙特卡洛当部署的过/不过开关。它和 walk-forward、实盘前向测试并列,是一个输入。
诚实的输出
蒙特卡洛不预测未来。它放大你对"过去本来可能是什么样"的理解。一个 reordered 后过去可能很惨的系统,未来也可能很惨。用这些测试在脆弱系统烧掉你本金之前把它否掉。
实时行情
打开完整图表 →相关市场数据由 TradingView 提供。
我的笔记
登录后可在本文保存笔记并与社区分享。
相关内容
相关术语
Trading Plan
trading-psychologyA written set of rules covering what you trade, when you enter, when you exit, how much you risk, and how you review trades. It removes decisions from the heat of the moment.
Edge
trading-psychologyA repeatable reason your trades should make money over a large sample, paired with risk management. A few lucky wins are not an edge.
Journaling
trading-psychologyWriting down every trade's setup, entry, exit, size, emotion, and the result, so you can review patterns and improve over time.
下一篇推荐
Trading System Development Lifecycle: Hypothesis to Deployment
A complete development lifecycle from hypothesis through testing, optimization, and live deployment with concrete gates and kill criteria at each stage.
阅读更多 →Smart Recommendations