A Monte Carlo Simulator Made of One Formula
Posted: Wed Oct 28, 2026 7:23 pm
A Monte Carlo Simulator Made of One Formula
Goal: simulate hundreds of random trade sequences with your own win rate and payoff, and see the spread of outcomes.
Setup. In a block of cells, set the win rate in B1, the average win in B2, and the average loss in B3. Say 0.40, 2, and minus 1. The expectancy is 0.4 times 2 minus 0.6, which is plus 0.2R.
Column A holds the trade number, 1 to 100. Column B simulates each trade:
=IF(RAND()<$B$1,$B$2,$B$3)
Column C is the cumulative sum, and column D the running peak, as in the drawdown drill. Column E holds the drawdown. Summary cells: final result =C101, and maximum drawdown =MIN(E2:E101).
Every time the sheet recalculates, which you can force with the F9 key, a new random sequence appears. Record the final result and the maximum drawdown for twenty or thirty recalculations, or use the sheet's data table feature to automate hundreds of runs.
What do you see? The expected final result is 20R, but individual runs vary widely. Some end near zero, and some above 40R. Maximum drawdowns typically range from about 6R to 19R, with a median near 10R.
The takeaway is the distribution, not the average. If your account can tolerate the 90th percentile drawdown from these runs, your sizing is probably sound.
Use realistic payoffs. If your wins vary between 1R and 4R, sample from your actual list of results with INDEX and RANDBETWEEN.
Exercise: run it for your own numbers, and write down the worst drawdown in thirty runs.
Goal: simulate hundreds of random trade sequences with your own win rate and payoff, and see the spread of outcomes.
Setup. In a block of cells, set the win rate in B1, the average win in B2, and the average loss in B3. Say 0.40, 2, and minus 1. The expectancy is 0.4 times 2 minus 0.6, which is plus 0.2R.
Column A holds the trade number, 1 to 100. Column B simulates each trade:
=IF(RAND()<$B$1,$B$2,$B$3)
Column C is the cumulative sum, and column D the running peak, as in the drawdown drill. Column E holds the drawdown. Summary cells: final result =C101, and maximum drawdown =MIN(E2:E101).
Every time the sheet recalculates, which you can force with the F9 key, a new random sequence appears. Record the final result and the maximum drawdown for twenty or thirty recalculations, or use the sheet's data table feature to automate hundreds of runs.
What do you see? The expected final result is 20R, but individual runs vary widely. Some end near zero, and some above 40R. Maximum drawdowns typically range from about 6R to 19R, with a median near 10R.
The takeaway is the distribution, not the average. If your account can tolerate the 90th percentile drawdown from these runs, your sizing is probably sound.
Use realistic payoffs. If your wins vary between 1R and 4R, sample from your actual list of results with INDEX and RANDBETWEEN.
Exercise: run it for your own numbers, and write down the worst drawdown in thirty runs.