• C++ Programming for Financial Engineering
    Highly recommended by thousands of MFE students. Covers essential C++ topics with applications to financial engineering. Learn more Join!
    Python for Finance with Intro to Data Science
    Gain practical understanding of Python to read, understand, and write professional Python code for your first day on the job. Learn more Join!
    An Intuition-Based Options Primer for FE
    Ideal for entry level positions interviews and graduate studies, specializing in options trading arbitrage and options valuation models. Learn more Join!

Suggestion on Brownian motion simulation

Joined
3/23/11
Messages
7
Points
13
Hello to everyone.

I am wondering if someone could share any ideas on the following problem.

I want to simulate a Brownian motion B(t) conditioned on its future value B(T) = k . I am able to simulate a Brownian motion, but how to condition it on that value? I am not asking for a (matlab) code, just any idea could help.

thanks.
 
Yes the above suggestion is correct. It's easy. Simulate it as usual and keep those that satisfy your condition. Not difficult to handle in programming. You'll end up with many outcomes to be thrown away, so you'll need to simulate it more times as usual to get the correct answer since you cannot control the random process to be in manageable bounds.
 
BTW, I could help in programming if needed. ;) Just simulating (B(t)*random|B(T) = fixed) We extract the outcomes that satisfy the condition.
 
Nope, simulated over 100.000 brownian motion paths and not a single one satisfied my terminal condition. Its a very lucky shot.

I am wondering if someone could define the distribution of (B(t)|B(To)=k) and dimulate on this ?
 
Nope, simulated over 100.000 brownian motion paths and not a single one satisfied my terminal condition. Its a very lucky shot.

I am wondering if someone could define the distribution of (B(t)|B(To)=k) and dimulate on this ?

Haah. Are you doing it on continuous function? Then you definitely WON'T get any outcome satisfying the fixed condition. The probability of getting a predetermined value from a random experiment for continuous function is 0. So whatever amount you choose for simulation 100 000 or 100 million you won't get any outcome satisfying the fixed condition. You have to set some range of the condition or approximate it on small change B(T) + delta (where delta is small). You won't get many outcomes here also. You should set a range of future value as a condition and you'll get numerous outcomes from simulation falling in that range.
 
you realize my suggestionw was sarcastic right?

The reasoning was correct (simple though really sarcastic :cool:) but you cannot fix a continuous function value(nor discrete in this case) since that means no more no less than searching for the present value of B(T) which is only a single number. So what are we looking for in simulation?! You have to have a range as a condition.
 
the terminal condition i put was B(T) -e, B(T)+e and not just B(T) of course ! e is very small. But even in this case nothing happened. It is probably very similar to B(T), thats why i wondered if it is proper to define the distribution of B(t)|B(T)=k. Probably T is a stopping time.
 
Extract those values satisfying the condition and see what happens first. Won't you get a single number?! The same as asking: do you have such values? (data satisfying B(t)|B(T) = k)

@PaulStudy
 
ok, i found it. Just a programmng miss.

I found many paths that their terminal value are in my predifened range.

thnks
 
Yes the above suggestion is correct. It's easy. Simulate it as usual and keep those that satisfy your condition. Not difficult to handle in programming. You'll end up with many outcomes to be thrown away, so you'll need to simulate it more times as usual to get the correct answer since you cannot control the random process to be in manageable bounds.

I would not do that, that could lead to some whacky results. Doing so will actually create correlation in your brownian motio

Read up on drift adjusted Brownian bridge. ;) That is the prescribed method for doing what you requested.
 
Alexei, you are 100% correct. Following the suggested way the randomness of my Brownian paths was not there.

I found the answer u talked about. Its something like i said , to find the conditional distribution of (B(t)|B(T) ) which is a normal random variable with different mean and variance and just simulate that. That is, we know the value at the starting point and the final point and we want to simulate tyhe path. In this way the variance of the conditioned brownian path does not depend on the final value and so there is randomness.
Correct me please if i am wrong.
Thanks,
 
Yeah, Brownian Bridge. Build a Brownian midpoint between the initial value and the ending ones, then build 1/4 points between the three. And the list goes on until you feel the path points are as many as you want.
 
Back
Top