Function CIR_process(ByVal a, ByVal eta, ByVal lambda, ByVal CIR0, ByVal N, ByVal start, ByVal fin) 'Simulate a CIR process Dim vect() As Double Dim i As Long Dim dt As Double ReDim vect(0 To N) vect(0) = CIR0 dt = (fin - start) / N For i = 1 To N temp = alea() vect(i) = vect(i - 1) + a * (eta - vect(i - 1)) * dt + lambda * Sqr(vect(i - 1) * dt) * Application.WorksheetFunction.NormSInv(temp) Next i CIR_process = vect End Function