
交易系统中的蒙特卡洛模拟
蒙特卡洛模拟通过打乱交易顺序,揭示真实的回撤与破产概率。本文给新手系统开发者讲清楚这套技术怎么用、怎么看结果。
交互工具在翻译视图中可能无法使用。
交易系统中的蒙特卡洛模拟
你的回测只跑出了一条资金曲线。蒙特卡洛能告诉你,原本可能经历的几百条等概率曲线长什么样。
为什么单一回测会骗人
回测是按时间顺序跑出来的一串交易。顺序很关键:同一批交易换个排列方式,回撤能差出一倍,心理压力也完全不是一回事。你回测里看到的 15% 回撤,把同样的交易重新排个序,可能就变成 30%——期望值没变,能不能活下来完全是两个故事。
蒙特卡洛模拟(Monte Carlo Simulation,MCS)就是解决这个问题的:把交易列表重采样几千次,构建一个结果分布出来。
两种主流做法
1. 交易重采样(shuffle)
把回测出的交易拿出来,随机打乱顺序,算出对应的资金曲线。重复 1000 到 10000 次。
能看出什么:在历史胜率/亏损分布给定的情况下,可能出现的回撤和最终资金的分布。连亏这种事任何顺序都可能撞上——MCS 告诉你每种场景发生的概率。
2. 有放回重采样(bootstrap)
有放回地随机抽样,构造任意长度的新序列。这不仅能估回撤,还能估破产概率(probability of ruin)——一串亏损把账户打光的概率。
能看出什么:系统对历史样本里没出现过的极端连亏的抗压能力。
蒙特卡洛报告都给什么
一份典型的 MCS 输出包括:
| 指标 | 含义 |
|---|---|
| 中位数最大回撤 | 正常排序下你能预期的回撤 |
| 95 分位最大回撤 | "倒霉"排序下的回撤 |
| 99 分位最大回撤 | 接近最坏情况的回撤 |
| 破产概率 | 撞上破产阈值的概率 |
| 中位数最终资金 | 预期账户终值 |
| 最终资金分布 | 结果的离散度 |
一个具体例子
回测交易:200 笔,期望值 +0.3R,最大回撤 12R。
跑 1000 次蒙特卡洛 shuffle:
- 中位数最大回撤:14R
- 95 分位:22R
- 99 分位:28R
回测给你看的是 12R;MCS 说有 5% 的概率会撞上 22R 回撤。如果你的账户只能扛 20R,那这个系统虽然期望值为正,还是太危险。
在仓位管理里怎么用
MCS 直接喂给仓位决策。假设 99 分位回撤是 28R,你想把最坏回撤压在账户的 25% 以内:
单笔风险 = 25% / 28 = 每笔约 0.9%
把仓位调小,让自己待在最坏包络线以内。这比满大街"每笔 1%"的经验法则严谨多了。
破产概率
先把破产定义清楚(比如回撤 50%)。MCS 估算有多少比例的序列会撞到这个阈值。破产概率超过 5% 已经不太舒服;超过 10% 不可接受。
账户必须扛住 N 笔连续亏损。
每笔 1% 风险:破产需要连亏 50 笔。
每笔 5% 风险:破产需要连亏 10 笔。
MCS 揭示 10 连亏实际多久出现一次。
常用工具
- TradesViz、QuantAnalyzer:自带 MCS 模块
- Python:用
numpy.random.choice几行搞定 - Excel:用
RAND()打乱交易再重算 - NinjaTrader / MultiCharts:有 MCS 插件
一段 30 行的 Python 脚本就能把 CSV 里的交易结果打乱,几秒跑出完整分布。
MCS 的局限
- 假设交易独立:实际交易会扎堆(同一市场状态下亏损集中来)
- 分布固定:未来的交易分布可能跟过去不一样
- 不建模状态切换:默认未来像过去
- 假设回测本身无偏:垃圾进,垃圾出
想要更贴近现实,用 block bootstrap——按块打乱连续交易,保留短期相关性。
常见错误
- 把中位数回撤当最坏情况(要看 95 分位)
- 样本太少就跑 MCS(至少 200 笔才稳)
- 用绝对金额而不是 R 倍数(会掩盖仓位变化)
- 忘了算成本(滑点波动)
- 只报中位数最终资金(下行尾部才要命)
结果怎么读
稳健的系统长这样:
- 中位数最大回撤接近或低于回测值
- 95 分位回撤不超过回测值的 2 倍
- 破产概率低于 1–2%
- 中位数最终资金为正,下行尾部有限
脆弱的系统长这样:
- 95 分位回撤是回测值的 3–5 倍
- 破产概率不低
- 最终资金分布很宽——运气压过技术
实操流程
- 在回测里跑出 200+ 笔交易(先修掉各种偏差)
- 导出交易列表(R 倍数)
- 跑 1000+ 次蒙特卡洛 shuffle
- 把 95 分位回撤当你的规划数
- 设仓位让 99 分位回撤低于破产阈值
- 实盘交易累积后每季度重跑一次
一句话经验法则
如果你的系统 MCS 跑出来 95 分位回撤超过回测回撤的 2.5 倍,说明系统比你以为的更靠运气——要么加样本,要么简化规则。
下一篇:再稳健的回测,上实盘前也得先过 forward demo testing 这一关。
实时行情
打开完整图表 →相关市场数据由 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