# Jointly simulate high, low, and terminal value of Brownian motion

**URL:** <https://discourse.julialang.org/t/jointly-simulate-high-low-and-terminal-value-of-brownian-motion/61075>\
**Category:** Statistics\
**Created:** [May 13, 2021, 10:59am UTC](https://discourse.julialang.org/t/jointly-simulate-high-low-and-terminal-value-of-brownian-motion/61075 "2021-05-13T10:59:11Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![Beliavsky](https://avatars.discourse-cdn.com/v4/letter/b/ba8739/32.png) [@Beliavsky](https://discourse.julialang.org/u/Beliavsky)\
**Post date:** [May 13, 2021, 10:59am UTC](https://discourse.julialang.org/t/jointly-simulate-high-low-and-terminal-value-of-brownian-motion/61075/1 "2021-05-13T10:59:12Z")

</div>

You can simulate the terminal value of a 1D Brownian motion using a Gaussian random number generator, `randn` in Julia. For some problems you would like to simulate the maximum and minimum in addition to the terminal value. Are there Julia codes to jointly simulate (high, low, terminal\_value)? It would be possible to subdivide the Brownian motion and use the maximum of the points simulated as the lower bound of the true maximum. The approximation gets better but also more time-consuming as you use more subintervals.

I’m new to Julia but have used Fortran, Python, and R. My computing interests are statistics and quantitative finance.

---

<div class="post-metadata">

**Author:** ![lrnv](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/lrnv/32/19373_2.png) [@lrnv](https://discourse.julialang.org/u/lrnv)\
**Post date:** [May 17, 2021, 3:47pm UTC](https://discourse.julialang.org/t/jointly-simulate-high-low-and-terminal-value-of-brownian-motion/61075/2 "2021-05-17T15:47:23Z")

</div>

At the top of this paper (sorry paywall), there is a formula for the triviariate joint distribution you are seeking as a serie.

If you can implement this formula, then yes, packages like Distributions.jl will help you simulate from the distribution through classical methods.

---

<div class="post-metadata">

**Author:** ![Beliavsky](https://avatars.discourse-cdn.com/v4/letter/b/ba8739/32.png) [@Beliavsky](https://discourse.julialang.org/u/Beliavsky)\
**Post date:** [May 17, 2021, 3:58pm UTC](https://discourse.julialang.org/t/jointly-simulate-high-low-and-terminal-value-of-brownian-motion/61075/3 "2021-05-17T15:58:58Z")

</div>

> [@lrnv](#):
>
> At the top of this paper (sorry paywall), there is a formula for the triviariate joint distribution you are seeking as a serie.
> 
> If you can implement this formula, then yes, packages like Distributions.jl will help you simulate from the distribution through classical methods.

Thanks, but the link is broken. What is the title of the paper, and who are the authors?

---

<div class="post-metadata">

**Author:** ![lrnv](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/lrnv/32/19373_2.png) [@lrnv](https://discourse.julialang.org/u/lrnv)\
**Post date:** [May 17, 2021, 4:00pm UTC](https://discourse.julialang.org/t/jointly-simulate-high-low-and-terminal-value-of-brownian-motion/61075/4 "2021-05-17T16:00:43Z")

</div>

The bibtex entry:  
@article{choi2013trivariate,  
title={On the trivariate joint distribution of Brownian motion and its maximum and minimum},  
author={Choi, ByoungSeon and Roh, JeongHo},  
journal={Statistics & Probability Letters},  
volume={83},  
number={4},  
pages={1046–1053},  
year={2013},  
publisher={Elsevier}  
}
