Skip to main content
Tweeted twitter.com/#!/StackQuant/status/646075236383891456
deleted 368 characters in body
Source Link
user16556
user16556

I have written some software to price a call option using Monte Carlo simulation.

It produces a price which is consistent with the model when I set the time step as recommended in a tutorial that I am following, which instructs to divide the expiration by 100.

I decided to experiment with the time step size and noticed that if I make the time steps further smaller by a factor of 10, the simulation does not produce the correct answer anymore. In fact the answer is way out (answer should be 10.45 but changing the time step gives an answer of around 70).

My question is whether this is expected behaviour from Monte Carlo simulations when the time step size is adjusted like this? If so, what is the theory behind this. It could also be that my implementation is wrong but I have followed Glasserman's book to letter in writing the software.

EDIT Code:

for (res <- 0 to 30000) {
  var total = 0.0
  val rv = scala.util.Random
  var currentPrice = stock
  (0 to 100).foreach(x =>
    currentPrice = currentPrice * (1 + (interestRate * timeStep) + (volatility * math.sqrt(timeStep) * rv.nextGaussian()))
  )
  total += math.max(currentPrice - stock, 0.0)
}

I have written some software to price a call option using Monte Carlo simulation.

It produces a price which is consistent with the model when I set the time step as recommended in a tutorial that I am following, which instructs to divide the expiration by 100.

I decided to experiment with the time step size and noticed that if I make the time steps further smaller by a factor of 10, the simulation does not produce the correct answer anymore. In fact the answer is way out (answer should be 10.45 but changing the time step gives an answer of around 70).

My question is whether this is expected behaviour from Monte Carlo simulations when the time step size is adjusted like this? If so, what is the theory behind this. It could also be that my implementation is wrong but I have followed Glasserman's book to letter in writing the software.

EDIT Code:

for (res <- 0 to 30000) {
  var total = 0.0
  val rv = scala.util.Random
  var currentPrice = stock
  (0 to 100).foreach(x =>
    currentPrice = currentPrice * (1 + (interestRate * timeStep) + (volatility * math.sqrt(timeStep) * rv.nextGaussian()))
  )
  total += math.max(currentPrice - stock, 0.0)
}

I have written some software to price a call option using Monte Carlo simulation.

It produces a price which is consistent with the model when I set the time step as recommended in a tutorial that I am following, which instructs to divide the expiration by 100.

I decided to experiment with the time step size and noticed that if I make the time steps further smaller by a factor of 10, the simulation does not produce the correct answer anymore. In fact the answer is way out (answer should be 10.45 but changing the time step gives an answer of around 70).

My question is whether this is expected behaviour from Monte Carlo simulations when the time step size is adjusted like this? If so, what is the theory behind this. It could also be that my implementation is wrong but I have followed Glasserman's book to letter in writing the software.

added 366 characters in body
Source Link
user16556
user16556

I have written some software to price a call option using Monte Carlo simulation.

It produces a price which is consistent with the model when I set the time step as recommended in a tutorial that I am following, which instructs to divide the expiration by 100.

I decided to experiment with the time step size and noticed that if I make the time steps further smaller by a factor of 10, the simulation does not produce the correct answer anymore. In fact the answer is way out (answer should be 10.45 but changing the time step gives an answer of around 70).

My question is whether this is expected behaviour from Monte Carlo simulations when the time step size is adjusted like this? If so, what is the theory behind this. It could also be that my implementation is wrong but I have followed Glasserman's book to letter in writing the software.

EDIT Code:

for (res <- 0 to 30000) {
  var total = 0.0
  val rv = scala.util.Random
  var currentPrice = stock
  (0 to 100).foreach(x =>
    currentPrice = currentPrice * (1 + (interestRate * timeStep) + (volatility * math.sqrt(timeStep) * rv.nextGaussian()))
  )
  total += math.max(currentPrice - stock, 0.0)
}

I have written some software to price a call option using Monte Carlo simulation.

It produces a price which is consistent with the model when I set the time step as recommended in a tutorial that I am following, which instructs to divide the expiration by 100.

I decided to experiment with the time step size and noticed that if I make the time steps further smaller by a factor of 10, the simulation does not produce the correct answer anymore. In fact the answer is way out (answer should be 10.45 but changing the time step gives an answer of around 70).

My question is whether this is expected behaviour from Monte Carlo simulations when the time step size is adjusted like this? If so, what is the theory behind this. It could also be that my implementation is wrong but I have followed Glasserman's book to letter in writing the software.

I have written some software to price a call option using Monte Carlo simulation.

It produces a price which is consistent with the model when I set the time step as recommended in a tutorial that I am following, which instructs to divide the expiration by 100.

I decided to experiment with the time step size and noticed that if I make the time steps further smaller by a factor of 10, the simulation does not produce the correct answer anymore. In fact the answer is way out (answer should be 10.45 but changing the time step gives an answer of around 70).

My question is whether this is expected behaviour from Monte Carlo simulations when the time step size is adjusted like this? If so, what is the theory behind this. It could also be that my implementation is wrong but I have followed Glasserman's book to letter in writing the software.

EDIT Code:

for (res <- 0 to 30000) {
  var total = 0.0
  val rv = scala.util.Random
  var currentPrice = stock
  (0 to 100).foreach(x =>
    currentPrice = currentPrice * (1 + (interestRate * timeStep) + (volatility * math.sqrt(timeStep) * rv.nextGaussian()))
  )
  total += math.max(currentPrice - stock, 0.0)
}
added 182 characters in body; edited title
Source Link
SRKX
  • 11.2k
  • 4
  • 42
  • 84

Choice of Time Step Size Why does changing the time step size in my Monte Carlo Simulationsimulation change my result a lot?

I have written some software to price a call option using Monte Carlo simulation. 

It produces a price which is consistent with the model when I set the time step as recommended in a tutorial that I am following, which instructs to divide the expiration by 100. 

I decided to experiment with the time step size and noticed that if I make the time steps further smaller by a factor of 10, the simulation does not produce the correct answer anymore. In fact the answer is way out (answer should be 10.45 but changing the time step gives an answer of around 70).

My question is whether this is expected behaviour from Monte Carlo simulations when the time step size is adjusted like this? If so, what is the theory behind this. It could also be that my implementation is wrong but I have followed GlassermanGlasserman's book to letter in writing the software.

Choice of Time Step Size in Monte Carlo Simulation

I have written some software to price a call option using Monte Carlo simulation. It produces a price which is consistent with the model when I set the time step as recommended in a tutorial that I am following, which instructs to divide the expiration by 100. I decided to experiment with the time step size and noticed that if I make the time steps further smaller by a factor of 10, the simulation does not produce the correct answer anymore. In fact the answer is way out (answer should be 10.45 but changing the time step gives an answer of around 70).

My question is whether this is expected behaviour from Monte Carlo simulations when the time step size is adjusted like this? If so, what is the theory behind this. It could also be that my implementation is wrong but I have followed Glasserman to letter in writing the software.

Why does changing the time step size in my Monte Carlo simulation change my result a lot?

I have written some software to price a call option using Monte Carlo simulation. 

It produces a price which is consistent with the model when I set the time step as recommended in a tutorial that I am following, which instructs to divide the expiration by 100. 

I decided to experiment with the time step size and noticed that if I make the time steps further smaller by a factor of 10, the simulation does not produce the correct answer anymore. In fact the answer is way out (answer should be 10.45 but changing the time step gives an answer of around 70).

My question is whether this is expected behaviour from Monte Carlo simulations when the time step size is adjusted like this? If so, what is the theory behind this. It could also be that my implementation is wrong but I have followed Glasserman's book to letter in writing the software.

Source Link
user16556
user16556
Loading