Skip to content

CFA Level I Exam · Simulation of Financial Asset Prices and Returns

Simulating Asset Prices and Returns for CFA Level I

Updated 7 October 2026 · Fact-checked

Simulating asset prices means drawing random returns and compounding them into price paths. Continuously compounded returns are modelled as normal, so prices are lognormal and never negative. Each step: r = mean + σ × Z, then new price = old price × e^r. Repeat many times to see the distribution of outcomes.

Understand Simulating Asset Prices and Returns

A simulation starts with a model for returns. The usual choice is that the continuously compounded return over a period is normally distributed with mean μ and standard deviation σ. This return is the natural log of the price relative: r = ln(S₁ ÷ S₀).

Because the price is S₁ = S₀ × e^r, and r is normal, the price is lognormal. A lognormal variable cannot fall below zero, which fits a stock price with limited liability. A normal model applied directly to prices would allow negative prices, which is why it is not used.

To simulate, you draw a random number Z from a standard normal distribution (mean 0, standard deviation 1). You turn it into a return: r = μ + σ × Z. Then you grow the price: S₁ = S₀ × e^r. For a path with many steps, you repeat this each period, using the end price of one step as the start of the next. This is the idea behind geometric Brownian motion-style price evolution.

Continuously compounded returns add across time. Over T years, the mean is μ × T, the variance is σ² × T, and the standard deviation is σ × √T. This is why you scale volatility by the square root of time, not by time itself.

Run the simulation thousands of times and you get a distribution of end prices. You can read off the average, the spread and the chance of a loss. The result is only as good as the assumptions: the model assumes the mean, the volatility and the normal shape are right and stable.

Key formulas to remember

Continuously compounded return
r = ln(S₁ ÷ S₀)
ln is the natural log. Returns over several periods add.
Ending price from a return
S₁ = S₀ × e^r
Use the e^x function on your calculator. On the BA II Plus it is 2nd then LN.
Simulated return from a standard normal draw
r = μ + σ × Z
Z ~ N(0, 1). μ and σ are the mean and standard deviation of the continuously compounded return for that period.
Scaling to a longer horizon
mean = μ × T; variance = σ² × T; st. dev. = σ × √T
Assumes returns in each period are independent with the same distribution.
Expected price under lognormal model
E[S₁] = S₀ × e^(μ + σ²/2)
μ and σ² are the mean and variance of the continuously compounded return over the period. The expected price is above S₀ × e^μ.
GBM-style step with drift m
r = (m − σ²/2) × Δt + σ × √Δt × Z
Here m is the expected rate of price growth. Use this only when the question gives m rather than the mean log return.

How to solve Simulating Asset Prices and Returns questions

Use this method for any question on simulating prices or returns from a normal or lognormal model.

  1. 1Identify what the question gives you: the mean of the continuously compounded return (μ), or the expected price growth rate (m). This decides which formula you use.
  2. 2Match the time unit. Convert μ and σ to the step length: mean × T, σ × √T.
  3. 3Turn the random draw Z into a return: r = μ + σ × Z (or the GBM form if m is given).
  4. 4Convert the return to a price: S₁ = S₀ × e^r. Do not use S₀ × (1 + r).
  5. 5If the question asks for an expected price, use S₀ × e^(μ + σ²/2), not S₀ × e^μ.
  6. 6For a multi-step path, repeat steps 2 to 4, with each end price becoming the next start price. Or add the log returns and apply e^ once.
  7. 7Check the answer: the price must be positive, and a positive Z should give a higher price than a negative Z.

Quickest way: Three-check shortcut for MCQs

When to use it: Use when you have about 90 seconds and the options are numbers listed smallest to largest.

  1. Find the log return first: r = μ + σZ. Do this on the calculator before anything else.
  2. Apply e^r once to S₀. Avoid multiplying by 1 + r, which is the most common trap.
  3. Eliminate options with a quick sense check: if r > 0 the price must exceed S₀. If the question asks for an expected price, it must exceed S₀ × e^μ.
  4. If an option equals the answer you get from the simple-return shortcut, treat it as a trap and keep checking.

Common mistakes in Simulating Asset Prices and Returns

  • Using S₀ × (1 + r) instead of S₀ × e^r

    Simple returns feel more familiar, and the numbers are close for small r.

    Fix: If the return is continuously compounded, always use the exponential. The two answers will differ in the second decimal place or earlier.

  • Scaling volatility by T instead of √T

    Mean scales with time, so students assume risk does too.

    Fix: Variance scales with T. Standard deviation scales with √T. For a quarter, σ_quarter = σ_annual × √0.25 = σ_annual ÷ 2.

  • Forgetting the σ²/2 term in the expected price

    Students assume the average of e^r equals e raised to the average r.

    Fix: For a lognormal variable, E[S₁] = S₀ × e^(μ + σ²/2). The extra term comes from the convexity of the exponential.

  • Treating prices as normally distributed

    Returns are normal in the model, and students mix up the return with the price.

    Fix: Log returns are normal. Prices are lognormal, bounded below by zero and skewed to the right.

  • Mixing annual inputs with monthly or daily steps

    The question gives annual figures but simulates a shorter step.

    Fix: Convert first: μ × Δt and σ × √Δt, with Δt as a fraction of a year.

  • Treating a simulation result as a forecast with certainty

    A big number of runs looks precise.

    Fix: Remember that results depend on the assumed μ, σ and normality. More runs reduce sampling error but not model error.

Worked examples

Example 1

A share trades at €80. Its annual continuously compounded return is modelled as normal with mean 8% and standard deviation 20%. In one simulation run, the standard normal draw is Z = 0.5. What is the simulated price after one year? A. €86.66 B. €94.40 C. €95.78

Show the solution
  1. Compute the simulated log return: r = μ + σZ = 0.08 + 0.20 × 0.5 = 0.18.
  2. Apply the exponential: e^0.18 = 1.19722.
  3. Compute the price: S₁ = 80 × 1.19722 = 95.78.
  4. Check the traps: €94.40 is 80 × 1.18 (simple return). €86.66 is 80 × e^0.08 (ignores the random draw).

Answer: C. €95.78

Example 2

A stock is at $50. Its one-year continuously compounded return is normal with mean 6% and standard deviation 20%. What is the expected price after one year under the lognormal model? A. $53.09 B. $54.16 C. $64.85

Show the solution
  1. Use E[S₁] = S₀ × e^(μ + σ²/2).
  2. Compute σ² = 0.20² = 0.04, so σ²/2 = 0.02.
  3. Add: μ + σ²/2 = 0.06 + 0.02 = 0.08.
  4. Compute e^0.08 = 1.083287.
  5. Price: 50 × 1.083287 = 54.16.
  6. Check the traps: $53.09 is 50 × e^0.06 (leaves out σ²/2). $64.85 is 50 × e^0.26 (adds σ instead of σ²/2).

Answer: B. $54.16

Exam tips

  • Read whether the given mean is for the log return or for the price growth rate. The formulas differ by σ²/2.
  • Do the e^x step last and once. Add log returns across periods rather than compounding step by step.
  • Use the sign of Z to sense-check the answer: negative Z means a lower price than at the mean, and the price must stay positive.
  • Watch the time unit. Convert the annual mean to μ × T and σ to σ × √T before using any formula.
  • With no penalty for wrong answers, never leave a question blank. A fast check of the simple-return trap often removes one option.

Practice questions from Simulation of Financial Asset Prices and Returns

Simulating Asset Prices and Returns: frequently asked questions

Why are stock prices modelled as lognormal?

Continuously compounded returns are assumed to be normal, and the price is S₀ × e^r. An exponential of a normal variable is lognormal. This keeps prices above zero and allows the right-skewed spread of outcomes seen in real prices.

How do I get a random return from a standard normal draw?

Multiply the draw Z by the standard deviation and add the mean: r = μ + σ × Z. Then convert to a price with S₁ = S₀ × e^r. In a spreadsheet, Z can come from the inverse standard normal function applied to a uniform random number.

What is geometric Brownian motion in simple terms?

It is a model where the log of the price changes by a drift term plus a random shock each small step. The shock is normal with variance proportional to the step length. Prices are lognormal and stay positive.

Why do I scale volatility by the square root of time?

If log returns in each period are independent, their variances add. Variance over T periods is σ² × T, so the standard deviation is σ × √T. This is why a monthly σ is the annual σ divided by √12.

Does a Monte Carlo simulation make the forecast more accurate?

Not necessarily. More runs reduce random sampling error, but the output still depends on the assumed mean, volatility and distribution. If those inputs are wrong, the simulation will be wrong in a precise-looking way.