蒙特卡洛
蒙特卡洛模拟
将你的系统重复模拟大量次数,以展现可能结果的分布范围 · 并非预测。
资金曲线
结果
中位数余额
162.8%
最佳余额
262.5%
最差余额
113.8%
破产率
0.0%
跌至 0% 本金的模拟占比。
同一个系统,200 种不同的终点
蒙特卡洛模拟把一个交易系统反复重演许多次,用来展示它可能走出的各种资金曲线。你只需用三个数字描述系统 · 胜率、盈亏比和单笔风险 · 工具就会按照这个胜率随机抽取每一笔交易的输赢,把 N 笔交易组成一条序列,再重复几十到几百次。每条序列都从本金的 100% 出发,风险按当前余额的百分比计算,因此盈亏是复利叠加的。
这个工具的意义不在预测未来,而在看清离散程度。两条使用完全相同参数的序列,最终结果可能相差很远,只因为盈利出现的节奏不同。图表把抽样路径叠加在一起,结果面板给出中位数、最好情况、最坏情况,以及破产率 · 即余额彻底归零的序列所占的比例。
计算公式
每笔交易随机抽取:获胜的概率等于胜率。获胜时,余额增加 余额 × 单笔风险% × 盈亏比 · 亏损时,余额减少 余额 × 单笔风险%。整条序列走完后,再重复所有模拟。最后把全部期末余额排序:中位数是正中间的值,最坏与最好情况是两端的极值,破产率则是余额跌到零的序列所占的比例。
一个逐笔展开的例子
取默认参数:胜率 50%、盈亏比 2、单笔风险 1%,从本金的 100% 出发。第一笔抽中盈利:余额上升 100 × 1% × 2 = 2 个点,到 102%。第二笔抽中亏损:下降 102 × 1% = 1.02 个点,回到 100.98%。每一笔都重新抽取,风险始终按当前余额计算 · 所以盈亏是复利叠加而不是简单相加。在 100 笔交易和 200 条序列上重复后,本页的抽取给出中位数 162.8%、最坏情况 113.8%、最好情况 262.5%。两条执行了完全相同规则的序列之间相差近 150 个点:这一部分属于运气,任何参数都无法消除它。
同一个系统,随输入胜率而变
盈亏比 2、单笔风险 1%、100 笔交易、200 条序列 · 只改变胜率。估计值相差几个百分点,就能移动整个模拟结果。
| 胜率 | 最坏情况 | 中位数 | 最好情况 | 终点低于 100% 的序列 |
|---|---|---|---|---|
| 35% | 70.6% | 104.1% | 153.4% | 74 条 |
| 40% | 87.0% | 120.8% | 183.5% | 16 条 |
| 45% | 95.1% | 140.3% | 213.0% | 2 条 |
| 50% | 113.8% | 162.8% | 262.5% | 0 条 |
| 55% | 128.2% | 189.1% | 287.1% | 0 条 |
局限
它假设胜率和盈亏比从第一笔到最后一笔保持不变 · 没有任何真实系统能兑现这个承诺,市场在变,你的交易方式也在变。它把每一笔交易独立抽取,而真实结果可能成串出现:同样的市场环境,同样的错误重复。它忽略手续费、滑点和账户的种种现实下限。它的 200 条序列只是一份抽样:显示的最坏情况只是这一次抽取里最坏的,不是可能发生的最坏的。最重要的是,你输入的数字本身就不确定 · 用 30 笔交易测出的胜率可能离你的真实概率很远,而模拟会不加提醒地放大这个误差。
最常见的错误
中位数不是你的预期结果,它只是区间的中点:一半序列的终点在它之下。对称的错误同样常见 · 用一条序列评判一个系统,尤其是自己那条。糟糕的一个月之后断定系统坏了,其实它的轨迹仍在正常区间之内;开局顺利之后又把它想得比实际更好。看看这张图:终点相距很远的序列来自完全相同的参数。单独一条轨迹,包括你自己的那条,几乎不能证明产生它的系统的任何属性。
常见问题
这个模拟能预测我未来的交易结果吗?
不能。它假设胜率和盈亏比恒定不变,而真实市场从不如此,并且每笔结果都是随机抽取的。它的作用是把一个系统的波动性可视化 · 让你看到统计数据完全相同的路径能相差多远 · 而不是宣告将来会发生什么。
为什么破产率经常是 0%?
因为风险是按当前余额的百分比计算的:每次亏损都会缩小账户,却几乎不会把它彻底清空,除非单笔风险达到 100%。所以模拟里数学意义上的破产很少见。真实账户存在硬性下限 · 保证金、手续费、最小仓位 · 余额缩水 80% 或 90% 在实践中已经等同破产,即使从未真正归零。
参数完全相同的两条序列,结局为何相差这么远?
胜率只是一个概率,不是对某一段交易的保证。在胜率 50% 的 100 笔交易里,出现 42 胜或 58 胜都再平常不过 · 而由于盈亏在余额上复利叠加,几笔交易的差距就足以把期末余额拉得很开。图表展示的正是这个分布范围。
为什么看中位数而不是平均数?
因为余额是复利叠加的,最好的序列上涨的幅度远大于最坏的序列下跌的幅度 · 分布向上拉长。平均数会被少数幸运轨迹拉高,显示一个大多数序列永远达不到的数字。中位数说的是更有用的事:一半序列的终点在它之上,另一半在它之下。
如果我已经有交易日志,该输入哪些数字?
直接输入你观察到的胜率和平均盈亏比 · 它们正是为此而生。只需记住样本的大小:用 20 或 30 笔交易测出的数字仍然很不精确,而模拟会放大这种不精确 · 本页的参考表展示了几个百分点的胜率能把一切移动多远。随着日志变长重新模拟,比只算一次更能说明问题。