蒙特卡洛

蒙特卡洛模拟

将你的系统重复模拟大量次数,以展现可能结果的分布范围 · 并非预测。

资金曲线

0%100%276%
接近中位数接近最好情况接近最差情况20 次模拟

结果

中位数余额

162.8%

最佳余额

262.5%

最差余额

113.8%

破产率

0.0%

跌至 0% 本金的模拟占比。

同一个系统,200 种不同的终点

7100-12544125-150150-17539175-20022200-2253225-2501250-275中位数 · 163%
默认参数下的 200 条序列(胜率 50%、盈亏比 2、单笔风险 1%、100 笔交易),按最终余额分组:同一个系统在这里的终点落在本金的 114% 到 263% 之间,中位数为 163%。

蒙特卡洛模拟把一个交易系统反复重演许多次,用来展示它可能走出的各种资金曲线。你只需用三个数字描述系统 · 胜率、盈亏比和单笔风险 · 工具就会按照这个胜率随机抽取每一笔交易的输赢,把 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 笔交易测出的数字仍然很不精确,而模拟会放大这种不精确 · 本页的参考表展示了几个百分点的胜率能把一切移动多远。随着日志变长重新模拟,比只算一次更能说明问题。

相关计算器