Consulting

Results 1 to 2 of 2

Thread: How to simulate Brownian motion for multiple trajectories?

  1. #1
    VBAX Newbie
    Joined
    Apr 2017
    Posts
    1
    Location

    Question How to simulate Brownian motion for multiple trajectories?

    I would like to simulate a geometric Brownian motion for 20,000 trajectories with VBA. Since the number of trajectories is huge, doing it by hand would be troublesome.
    The formula is as follows

    X(n) = X(n-1) + u*X(n-1)*Delta_t + Sigma*X(n-1)*En*sqrt(Delta_t)
    where u is the drift: u = 0.2
    Delta_t = 1/250 year
    Volatility: Sigma = 0.3
    En = NORMSINV(Rand()) a standard normal random variable

    I have trouble incorporating number of trajectories in to the VBA code.

  2. #2
    VBAX Sage
    Joined
    Apr 2007
    Location
    United States
    Posts
    8,728
    Location
    Not sure I understand 'trajectories' but if you mean iterations, something like this maybe


    Option Explicit
    
    Sub Brownian()
        Const Drift As Double = 0.2
        Const Delta_t As Double = 1# / 250#
        Const Volatility As Double = 0.3
        
        Dim N_1 As Double, N As Double
        Dim i As Long
        
        N_1 = 0.1   '   guess
    
        For i = 1 To 20000
        'X(N) = X(N - 1)     +     U * X(N - 1) * Delta_t     +     Sigma * X(N - 1) * En * sqrt(Delta_t)
            N = N_1 + (Drift * N_1 * Delta_t) + (Volatility * N_1 * Application.WorksheetFunction.NormSInv(Rnd()) * Sqr(Delta_t))
            N_1 = N
        Next I
        
        MsgBox N
    
    End Sub
    ---------------------------------------------------------------------------------------------------------------------

    Paul


    Remember: Tell us WHAT you want to do, not HOW you think you want to do it

    1. Use [CODE] ....[/CODE ] Tags for readability
    [CODE]PasteYourCodeHere[/CODE ] -- (or paste your code, select it, click [#] button)
    2. Upload an example
    Go Advanced / Attachments - Manage Attachments / Add Files / Select Files / Select the file(s) / Upload Files / Done
    3. Mark the thread as [Solved] when you have an answer
    Thread Tools (on the top right corner, above the first message)
    4. Read the Forum FAQ, especially the part about cross-posting in other forums
    http://www.vbaexpress.com/forum/faq...._new_faq_item3

Tags for this Thread

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •