Risk management

Equity Curve Simulator: Compare Risk, Returns and Drawdown

The same trading assumptions can produce very different account paths. Simulate a range of outcomes, compare two risk settings on the same trades and follow the arithmetic behind one curve.

Author · Editor

Reviewed

Undulating teal and blue glass ribbons with a brass ribbon over a pale stone surface.

The essentials

  1. A simulation shows what a stated model can produce. Its win probability, payoff and risk fraction are assumptions, not estimates of your future performance.

  2. Compare risk settings on identical win/loss outcomes. Read the distribution of ending balances and each path's maximum drawdown separately.

  3. Under constant fractional risk and payoff, rearranging the same wins and losses preserves the ending balance. The path and its drawdown can still change.

What is an equity curve simulator?

An equity curve simulator creates hypothetical account paths from a set of assumptions. Here, you choose a starting balance, an assumed win probability, a net payoff, a loss fraction and a number of trades. The simulator generates 1,000 sequences and applies the same outcomes to two risk settings. The useful result is a range of possible model outcomes, not one persuasive-looking line.

A live account history records what happened. A backtest applies trading rules to historical data. This simulation does neither: it uses independent two-outcome draws, with no prices, entry signals or broker connection. The binomial model described by NIST provides the count-of-wins framework; the balance and sizing rules are stated below.

Each point represents the balance after a completed model trade, with no other open positions. Balance and equity coincide at those points in this simplified account. A real equity curve can also include unrealized profit and loss while positions are open. This tool therefore cannot reveal the deepest intratrade fall that a live account might experience.

Set the assumptions and run the simulator

Start with the default 100-trade horizon, then change one assumption at a time. Both settings begin with $1,000, an assumed 50% win probability and a net payoff of 1. Setting A loses 1% of its current balance on a losing trade; B loses 2%. These percentages are comparison inputs, not recommended risk levels.

Input

Meaning in this model

Starting balance

The positive amount before the first trade, expressed in USD for the example.

Assumed win probability, p

The same chance of a win on every independent draw. It does not force an exact share of wins in a finite sequence.

Net payoff, b

A winning trade gains b times that trade's model loss amount. A losing trade loses exactly that amount.

Loss fraction, f

The proportion of the current balance used for the model loss. The cash amount changes as the balance changes.

Number of trades, N

The sequence length, from 1 to 500 completed trades. It is not a number of days or years.

Seed

An identifier that reproduces a sample with the same parameters and model version.

Scroll sideways to compare all columns ↔

Both the winning payoff and the losing amount are net assumptions: they already include whatever trading costs you intend to represent. There is no extra commission deduction. A gross reward/risk estimate cannot simply be entered as a net payoff without accounting for costs. The risk/reward calculator addresses a different task: planning the price levels and conditional outcomes of one trade.

Run the calculation after editing the inputs. Compare the results table first, then inspect a selected path. Changing the seed creates another sample from the same assumptions; it does not discover a new market condition. A zero loss fraction is a useful mathematical control: that setting's balance stays unchanged.

Try it yourself

Explore the assumptions

Compare two risks across 1,000 model paths

Choose a win probability and net payoff, then compare two loss fractions on exactly the same random outcomes. Each point follows a completed model trade.

A hypothetical two-outcome model. It uses no market prices or account data and does not forecast your trading results.

1–1,000,000. USD is the example unit; no currency conversion.
0–100. Your assumption, not an estimate from market data.
0.1–5. Every win earns +bR; every loss is −1R.
0–10. Recalculated from the balance before each trade.
0–10. Zero gives an unchanged-balance control.
1–500 completed model trades per path.
0–4294967295. The same seed and assumptions reproduce the same sample.

Use a decimal point or comma, with no thousands separators, currency signs or exponent notation.

Both the winning payoff and the model loss are net assumptions after any costs you intend to include. There is no extra fee deduction. The input limits are technical limits, not safe-risk recommendations.

Change one assumption

Simulation ready: 100 trades per path, seed 20261023. Final-balance and drawdown summaries are available.

Results for the displayed assumptions

1,000 paths · 100 trades · seed 20261023 · model 1.0.0

Initial balance 1,000.00 USD · assumed win probability 50% · net payoff 1R · A 1% · B 2%

Final balances across the 1,000 paths (USD)
StatisticModel A
1%
Model B
2%
10th percentile865.02740.79
50th percentile · median995.01980.19
90th percentile1,121.881,246.11
Arithmetic mean991.44983.14
Maximum drawdown of each complete path (%)
StatisticModel A
1%
Model B
2%
10th percentile5.917911.6635
50th percentile · median10.613820.4537
90th percentile18.274733.4525

For each path, drawdown is measured from its previous highest closed-trade balance, including the initial balance. The table summarizes those 1,000 individual maximum drawdowns.

Percentiles describe this model sample. A 10th-percentile result is not a loss limit, and the 90th percentile is not a target or a guarantee.

1–1000. Change the path without generating a new sample.
Median lines and 10th–90th percentile bands

Balance (USD)

Median lines and 10th–90th percentile bandsModels A and B use the same axes. Each line or band is calculated separately at every trade across 1,000 paths. The numerical final summaries are in the tables above.

Completed model trades

A · solid lineB · dashed line

The bands are pointwise sample percentiles, not forecast intervals. A median line may not be one complete path, and the band does not imply that 80% of complete paths stay inside it.

Path 1 · 47 wins · 53 losses

Selected path 1: balances and drawdowns after each trade
TradeOutcomeModel A
Balance (USD)
Model B
Balance (USD)
Model A
Drawdown (%)
Model B
Drawdown (%)
0Start1,000.001,000.0000
1W · net win1,010.001,020.0000
2W · net win1,020.101,040.4000
3L · net loss1,009.901,019.5912
4W · net win1,020.001,039.980.010.04
5W · net win1,030.201,060.7800
6W · net win1,040.501,082.0000
7L · net loss1,030.091,060.3612
8W · net win1,040.401,081.570.010.04
9W · net win1,050.801,103.2000
10W · net win1,061.311,125.2600
11W · net win1,071.921,147.7700
12L · net loss1,061.201,124.8112
13L · net loss1,050.591,102.321.993.96
14W · net win1,061.101,124.361.00992.0392
15W · net win1,071.711,146.850.020.08
16W · net win1,082.421,169.7900
17L · net loss1,071.601,146.3912
18W · net win1,082.321,169.320.010.04
19W · net win1,093.141,192.7000
20W · net win1,104.071,216.5600
21W · net win1,115.111,240.8900
22L · net loss1,103.961,216.0712
23W · net win1,115.001,240.390.010.04
24W · net win1,126.151,265.2000
25W · net win1,137.411,290.5100
26W · net win1,148.781,316.3200
27L · net loss1,137.301,289.9912
28W · net win1,148.671,315.790.010.04
29L · net loss1,137.181,289.471.00992.0392
30L · net loss1,125.811,263.681.99983.9984
31L · net loss1,114.551,238.412.97985.9184
32L · net loss1,103.411,213.643.957.8001
33L · net loss1,092.371,189.374.91059.6441
34L · net loss1,081.451,165.585.861411.4512
35W · net win1,092.261,188.894.929.6802
36L · net loss1,081.341,165.125.870811.4866
37W · net win1,092.161,188.424.92959.7163
38W · net win1,103.081,212.193.97887.9107
39L · net loss1,092.051,187.944.9399.7525
40W · net win1,102.971,211.703.98847.9475
41L · net loss1,091.941,187.474.94859.7886
42L · net loss1,081.021,163.725.89911.5928
43W · net win1,091.831,186.994.9589.8246
44L · net loss1,080.911,163.255.908511.6282
45L · net loss1,070.101,139.996.849413.3956
46L · net loss1,059.401,117.197.780915.1277
47W · net win1,069.991,139.536.858713.4302
48L · net loss1,059.291,116.747.790115.1616
49L · net loss1,048.701,094.418.712216.8584
50W · net win1,059.191,116.297.799315.1956
51L · net loss1,048.601,093.978.721316.8916
52W · net win1,059.081,115.857.808515.2295
53L · net loss1,048.491,093.538.730516.9249
54L · net loss1,038.011,071.669.643218.5864
55L · net loss1,027.631,050.2310.546720.2147
56W · net win1,037.901,071.239.652218.619
57L · net loss1,027.521,049.8110.555720.2466
58W · net win1,037.801,070.809.661218.6515
59L · net loss1,027.421,049.3910.564620.2785
60W · net win1,037.691,070.379.670318.6841
61W · net win1,048.071,091.788.76717.0577
62L · net loss1,037.591,069.959.679318.7166
63W · net win1,047.971,091.348.776117.0909
64W · net win1,058.451,113.177.863815.4327
65L · net loss1,047.861,090.918.785217.1241
66L · net loss1,037.381,069.099.697418.7816
67W · net win1,047.761,090.478.794317.1572
68L · net loss1,037.281,068.669.706418.8141
69W · net win1,047.651,090.048.803417.1904
70L · net loss1,037.181,068.249.715418.8466
71W · net win1,047.551,089.608.812617.2235
72L · net loss1,037.071,067.819.724418.879
73L · net loss1,026.701,046.4510.627220.5014
74L · net loss1,016.431,025.5211.520922.0914
75L · net loss1,006.271,005.0112.405723.6496
76W · net win1,016.331,025.1111.529822.1226
77L · net loss1,006.171,004.6112.414523.6801
78L · net loss996.11984.5213.290325.2065
79L · net loss986.15964.8314.157426.7024
80L · net loss976.28945.5315.015928.1683
81W · net win986.05964.4414.16626.7317
82L · net loss976.19945.1515.024428.1971
83L · net loss966.43926.2515.874129.6331
84W · net win976.09944.7715.032928.2258
85L · net loss966.33925.8815.882529.6613
86W · net win975.99944.4015.041328.2545
87W · net win985.75963.2814.191826.8196
88W · net win995.61982.5513.333725.356
89W · net win1,005.571,002.2012.46723.8631
90L · net loss995.51982.1613.342325.3858
91L · net loss985.55962.5114.208926.8781
92L · net loss975.70943.2615.066828.3406
93L · net loss965.94924.4015.916229.7738
94W · net win975.60942.8915.075328.3692
95W · net win985.36961.7414.226126.9366
96L · net loss975.50942.5115.083828.3979
97L · net loss965.75923.6615.93329.8299
98L · net loss956.09905.1916.773631.2333
99L · net loss946.53887.0817.605932.6087
100L · net loss937.07869.3418.429933.9565

Rows 1–101 of 101

Values are rounded only for display. Calculations keep their full numerical precision. Very small positive balances are shown below 0.01 USD; very large values use scientific notation.

A positive drawdown below 0.0001% is shown as < 0.0001%. Drawdowns that would round to 100% are shown as < 100%: this finite model keeps a positive balance.

Model, precision and limits

Independent outcomes with a constant win probability, net payoff and loss fraction. Each trade is either +bR or −1R, with R equal to the chosen fraction of the current balance. No deposits, withdrawals, overlapping positions, variable fills, intratrade equity or margin rules are modeled. More paths reduce sample noise; they do not validate these assumptions.

With a loss fraction below 100% and a finite number of trades, this model balance stays mathematically positive. That is a property of the model, not evidence that a real account cannot be lost.

Compare 1% and 2% over the same four trades

Use two wins followed by two losses, written WWLL, to see the calculation without a large sample. This is a deliberately selected teaching sequence, separate from the simulator's seeded sample. With net payoff 1, each win adds the current risk amount and each loss subtracts it. For current balance B, a win gives B_next = B × (1 + f × b), while a loss gives B_next = B × (1 − f). Here f is written as a fraction: 1% means 0.01.

After trade

Outcome

Balance A: 1%

Balance B: 2%

0

Starting point

$1,000

$1,000

1

Win

$1,010

$1,020

2

Win

$1,020.10

$1,040.40

3

Loss

$1,009.899

$1,019.592

4

Loss

$999.80001

$999.20016

Scroll sideways to compare all columns ↔

A's first risk amount is $10. After its first win, the next amount is 1% of $1,010, or $10.10. Before the first loss it is $10.201. The model retains these fractions through the calculation and rounds only the display; rounding every trade to cents would define a different model.

The final balances are approximately $999.80 and $999.20, corresponding to returns of about −0.02% and −0.08%. Two equal-percentage gains and two losses do not cancel because each percentage is applied to a changing base. The example explains compounding; it does not rank a risk setting as suitable for a real account.

Try it yourself

Four trades, fully visible

Same wins and losses, different drawdown

Reorder two wins and two losses. The final balance stays the same in each model, while the route and maximum drawdown can change.

Fixed example: 1,000 USD, net payoff 1R, Model A loss 1% and Model B loss 2% of the current balance. These are chosen teaching sequences, not a prediction or a seed-selected random path.

W is a net win of +1R; L is a net loss of −1R. Each order contains two of each.

Model A · 1%

Final balance

999.80 USD

Maximum drawdown

1.99%

Model B · 2%

Final balance

999.20 USD

Maximum drawdown

3.96%

Unrounded final balances: A = 999.80001 USD; B = 999.20016 USD.

Four-trade balance paths on a shared scale

Balance (USD)

Four-trade balance paths on a shared scaleBoth models follow the selected order. Detailed values before and after each trade appear in the table.

Completed model trades

A · solid lineB · dashed line
Four completed trades: model loss amount, net P/L and balance (USD)
TradeOutcomeModel A
Model loss amount
Model A
Net P/L
Model A
Balance
Model B
Model loss amount
Model B
Net P/L
Model B
Balance
0Start0.000.001,000.000.000.001,000.00
1W · net win10.00+10.001,010.0020.00+20.001,020.00
2W · net win10.10+10.101,020.1020.40+20.401,040.40
3L · net loss10.201-10.2011,009.89920.808-20.8081,019.592
4L · net loss10.09899-10.09899999.8000120.39184-20.39184999.20016

The final balance is 1,000 × (1 + f)² × (1 − f)². Multiplication gives the same final value for all six orders when f is constant and there are no cash flows or stopping rules.

Two wins and two losses do not restore the initial balance here: each percentage applies to a changing balance. The displayed result is not a fee effect.

Maximum drawdown measures the largest fall from a previous peak along this chosen path. Changing the order can change that fall without changing the final balance.

Model, precision and limits

The net payoff and loss fraction stay constant; only the order changes. Each new model loss amount is computed from the current balance. The table rounds for display but calculations do not round each trade to cents. This selected sequence is separate from the simulator's 1,000-path sample.

Values are rounded only for display. Calculations keep their full numerical precision. Very small positive balances are shown below 0.01 USD; very large values use scientific notation.

A positive drawdown below 0.0001% is shown as < 0.0001%. Drawdowns that would round to 100% are shown as < 100%: this finite model keeps a positive balance.

Order W W L L. Final balances are unchanged. Maximum drawdown: A 1.99%, B 3.96%.

Read the 10th, 50th and 90th percentiles

The simulator summarizes 1,000 ending balances with the 10th, 50th and 90th percentiles, labelled P10, P50 and P90. P50 is the median. P10 describes the lower part of this simulated sample; P90 describes its upper part. They are positions within the generated results, not probabilities that your future account will reach particular amounts.

Display

Read it as

Ending-balance P10 / P50 / P90

Three cut points in the sorted balances after trade N.

Maximum-drawdown P10 / P50 / P90

Three cut points after computing the largest peak-to-trough percentage fall separately for every path.

Pointwise percentile curves

The balance percentiles recalculated at each trade number across all paths.

Scroll sideways to compare all columns ↔

A pointwise median curve can switch which paths contribute at different steps. It need not be one complete sequence that the model actually generated. Likewise, the P10–P90 band does not mean that 80% of whole paths remain inside it from beginning to end. Use the selected-path view when you want a single, internally consistent journey.

Percentiles use the Type 7 linear-interpolation convention documented in R's quantile reference. Between two ranked observations, the reported cut point can lie between their values. For the illustrative sorted sample 100, 200, 400, 800, this rule gives P10 = 130, P50 = 300 and P90 = 680. Ties and interpolation are reasons not to interpret every percentile as an exact count of paths strictly below it.

Why the mean, median and one path differ

The mean ending balance is the sum of all ending balances divided by the number of paths. The median is the middle of their sorted distribution. One selected path is a single outcome. A few large ending balances can pull the mean above the median, so these summaries answer different questions.

Return to the four-trade example with p = 50% and b = 1. There are 16 equally probable win/loss sequences. Across that complete set, the exact mean ending balance is $1,000 for both risk settings. The medians are $999.80001 at 1% and $999.20016 at 2%. The arithmetic mean can preserve the starting amount while the middle result is lower.

For this model, the theoretical mean is E[B_N] = B0 × [1 + f × (p × b − (1 − p))]^N, with p and f written as fractions. It follows from the expected multiplier per independent trade. That formula is not the median, a most-likely path or a forecast of trading performance.

A sample of 1,000 random paths need not contain every four-trade sequence equally often. Its displayed mean therefore need not equal the exact $1,000 expectation. Changing the seed changes this sampling variation; changing an assumption changes the distribution being sampled.

How drawdown is measured from a previous peak

For each path, keep a running high that includes the starting balance. At a later point, drawdown = (running high − current balance) ÷ running high × 100%. Maximum drawdown is the largest such percentage in that path. A loss at the start counts even if the balance has never risen above its initial value.

In WWLL, A reaches $1,020.10 and then ends at $999.80001. Its maximum drawdown is 1.99%. B reaches $1,040.40 and ends at $999.20016, giving 3.96%. These are falls from the preceding peaks. They differ from the approximately −0.02% and −0.08% returns measured from the original $1,000.

The results table first calculates maximum drawdown for each complete path, then summarizes those 1,000 values. Measuring drawdown only from the median balance curve would answer a different question and could conceal the falls individual paths experienced.

Here the observations occur after trades close. MetaTrader 5 distinguishes balance and equity drawdowns; open-position losses may create deeper equity lows between these observations. A firm's trailing-drawdown rule also has its own reference, timing and breach conditions. This statistical chart does not reproduce that contractual limit.

What changing the trade order does to the curve

Switch among the six ways to arrange two wins and two losses in the four-trade explorer. The steps and drawdowns change, while the ending balance stays fixed for each risk setting. This holds because f and b stay constant and there are no deposits, withdrawals or early stopping rules.

For W wins and L losses, the ending balance is B0 × (1 + f × b)^W × (1 − f)^L. Multiplication gives the same result regardless of the order of those factors. With 1% risk and payoff 1, WWLL has a maximum drawdown of 1.99%, while WLWL has approximately 1.01%; both end at $999.80001.

Across the simulator's random paths, the number of wins can also differ. Those paths can therefore finish at different amounts even when every input is identical. It would be misleading to explain all variation in terminal results as an effect of trade order.

Profit Factor summarizes the money earned on winning trades relative to money lost on losing trades. It does not preserve the full sequence. Under fractional sizing, rearranging wins and losses can also change those individual money amounts, even though the final product above stays the same. Keep the model and the metric's input data distinct.

Compare risk settings on the same random outcomes

A fair comparison holds the win/loss outcomes constant while changing the risk fraction. Otherwise, one setting may look better simply because it received a more favourable random sample. Here A and B use the same outcome at every corresponding path and trade; only the amount applied to each balance differs.

  • Keep the seed, win probability, payoff and horizon fixed when comparing the two risk fractions.
  • Change one assumption, run again and compare the same summary measures rather than choosing the most attractive curve.
  • Inspect a selected path alongside the percentile table to connect the distribution with a complete sequence.

Both curves use the same balance scale and the horizontal axis counts completed trades. A steeper line does not tell you how much time elapsed. More model trades do not automatically represent a longer calendar period if real trading frequency varies.

The entered fraction also does not calculate a tradable lot size. Contract specifications, stop distance and executable quantities belong to position sizing. This model assumes that its fractional monetary amounts can be applied exactly, including amounts smaller than a real instrument permits.

What the simulation cannot tell you about a live account

Every loss is exactly −1 model R and every win is +b model R. The win probability, payoff and risk fraction remain fixed; outcomes are independent. A real strategy may have break-even trades, changing winners and losers, clustered losses or changing market conditions. These behaviours are not added merely by running more sequences.

Costs belong in the net assumptions, but that convention does not simulate individual fills. A gap can create a loss larger than the planned amount. Slippage, liquidity, currency conversion, margin requirements and overlapping positions can alter an actual account path. TradingView's strategy-testing documentation also treats costs and execution assumptions explicitly; this simpler simulator is not a historical execution backtest.

With a loss fraction below 100%, each finite model loss multiplies a positive balance by a positive number. The calculation therefore does not reach exact zero in finitely many trades. That mathematical property says nothing about avoiding real account depletion, minimum trade sizes or forced liquidation. No ruin threshold or real-world probability of bankruptcy is calculated here.

Use the tool to understand sensitivity: what changes when one assumption changes, which measures move together, and what a single curve leaves out. A more stable simulation estimate still describes the chosen model. The credibility of the assumptions must come from separate evidence and a clearly defined trading process.

Equity curve simulator: common questions

Does a 50% win probability guarantee half the trades will win?

No. It assigns the same 50% chance to each independent draw. A finite path can contain more or fewer wins. The fixed WWLL example deliberately contains two of each; the random simulator does not impose that count.

Why does the same seed give the same result?

The seed initializes a deterministic sequence of pseudorandom draws. The same seed, parameters and model version reproduce the sample. Reproducibility makes comparisons checkable; it does not make the generated outcomes predictive.

Why can a 50% win rate and payoff of 1 end below the starting balance?

Percentage gains and losses apply to changing balances. One +1% step followed by −1% multiplies the balance by 1.01 × 0.99 = 0.9999. The theoretical mean across all possible independent paths and one particular ending balance are different quantities.

Is P10 a worst-case result?

No. Lower results can occur within the sample, and the model can omit important real-world outcomes. P10 is a sample percentile under the entered assumptions, not a loss limit or a guarantee about the future.

Can I use the simulator to choose a safe risk percentage?

It compares consequences within a simplified model; it cannot establish a universally safe percentage. Account rules, execution, financial circumstances and the reliability of the assumptions are outside this calculation. The example inputs are not recommendations.

How is this different from Profit Factor?

Profit Factor describes the relationship between aggregate profits and losses in a completed sample. This simulator generates hypothetical sequences from probability, payoff and sizing assumptions. Neither summary substitutes for the missing price path, account rules or evidence about future results.

Sources & further reading

All guides
Risk/reward calculatorPlan a trade's price levels and distinguish gross and net outcomes.Trailing drawdown explainedSeparate a statistical fall from a firm's moving account limit.Position size calculatorConnect a stated risk budget with stop distance and contract specifications.Slippage explainedUnderstand why actual fills can differ from the prices used in a plan.
All guides