LMMSimProcess Example VB6

VB6 Example - LMMSimProcess![]() ![]() ![]() ![]() ![]() ' ################################################################################## ' The first function here LMMSimProcess(), contains a series of ' function calls leading upto the main function call, the second function ' within this file ( LMMSimProcessPart() ). ' which contains the answer that we are looking for.![]() ' The first function here is simply an example of how to construct the parameters ' in order acquire either a string Key (that is to be passed to other functions) ' or a computed result.![]() ' If you are viewing this source code from the chm or web help file you can use the ' outlining features to collapse certain sections of the code for better readability. ' ################################################################################## ![]() ![]() ' Add a reference to the CTQL.dll ActiveX library (dll)![]() ' Some global parameter in order to append to user defined keys. ' We use it here to ensure that we have unique Keys (in the case several of our examples ' use the same key-name) ' In normal use, a user defined string will be used and so this variable will be pointless. Global nCTLMMProcessesGlobal As Long Public Function VB_EX_LMMSimProcess() As String![]() nCTLMMProcessesGlobal = nCTLMMProcessesGlobal + 1 On Error GoTo err_Generic ![]() ' UK date calendar used within the UK stock exchange.![]() Dim MyCALUKExchange As String MyCALUKExchange = _ CALUKExchangePart()![]() ![]() ![]() ' EURO calendar used for holiday adjustments.![]() Dim MyEuroCal As String MyEuroCal = _ CALEUROPart()![]() ![]() ![]() ' Creates a centralized valuation date object.![]() Dim MyValuationDate As String MyValuationDate = _ ValueDateObjPart()![]() ![]() ![]() ' Creates a Deposit template which is almost identical to a Libor ' Index, but without the YieldCurve information. Dim MyDepoTPL As String MyDepoTPL = _ CreateDepoTemplatePart( _ MyCALUKExchange, _ MyEuroCal)![]() ![]() ![]() ' Creates a Swap template which is almost identical to the definition ' of the parameters of a swap contract, but without the swap duration, ' buysell, and YieldCurve information. Dim MySwapTPL As String MySwapTPL = _ CreateSwapTemplatePart( _ MyEuroCal, _ MyDepoTPL)![]() ![]() ![]() ' Creates a yield curve using market rates (No cross-currency ' Swaps). Dim MyMiniYC As String MyMiniYC = _ MKTYC_D__3Part( _ MyValuationDate, _ MyDepoTPL, _ MySwapTPL)![]() ![]() ![]() ' Creates a new Index code. Dim MyNewIndex2 As String MyNewIndex2 = _ CreateIndex__2Part( _ MyCALUKExchange, _ MyEuroCal, _ MyMiniYC)![]() ![]() ![]() ' Creates a Libor Forward Model Process container object. Dim MyLMMProcess2 As String MyLMMProcess2 = _ LMMProcess2Part( _ MyNewIndex2)![]() ![]() ![]() ' Creates a an extended linear-exponential volatility model for ' the libor market model. Dim My3rdLMMLinearExpVolModel2 As String My3rdLMMLinearExpVolModel2 = _ LMMLinearExpVolModel2__3Part( _ MyLMMProcess2)![]() ![]() ![]() ' Creates an extended exponential correlation model for the libor ' market model. Dim My2ndLMMLinearExpCorrModel2 As String My2ndLMMLinearExpCorrModel2 = _ LMMLinearExpCorrModel2__2Part( _ MyLMMProcess2)![]() ![]() ![]() ' Given volatility and correlation specification objects, creates ' a Libor Forward Market Simulation Process object to be used ' within the 'CapeTools LMM Process Simulation' or 'CapeTools ' Generic IR LMM MonteCarlo Pricer' category of functions. Dim MyLMMSimProcess As String MyLMMSimProcess = _ LMMSimProcessPart( _ MyLMMProcess2, _ My3rdLMMLinearExpVolModel2, _ My2ndLMMLinearExpCorrModel2)![]() ' This is the result we are looking for. VB_EX_LMMSimProcess = MyLMMSimProcess![]() Exit Function err_Generic: MsgBox "Error: " & Err.Number & vbCrLf & Err.Description End Function ![]() ![]() ' ///////////////////////////////////////////////////////////////////![]() Private Function LMMSimProcessPart( _ MyLMMProcess2 As String, _ My3rdLMMLinearExpVolModel2 As String, _ My2ndLMMLinearExpCorrModel2 As String) As String![]() ![]() ![]() ![]() ![]() ' Key value to use as a handle for the created object Dim MyLMMSimProcess As String MyLMMSimProcess = "MyLMMSimProcess" & "_" & CStr(nCTLMMProcessesGlobal)![]() ![]() ' When creating this object for the first time, set this parameter ' to a positive value. Dim Reload As Long Reload = 1![]() ![]() ' The number of simulations. Dim NoOfSims As Long NoOfSims = 10![]() ![]() ' Seed value. Dim Seed As Long Seed = 0![]() ' Excel function call is : "CT.PRO.LMMSimProcess()"![]() ' Given volatility and correlation specification objects, creates ' a Libor Forward Market Simulation Process object to be used ' within the 'CapeTools LMM Process Simulation' or 'CapeTools ' Generic IR LMM MonteCarlo Pricer' category of functions. Dim rLMMSimProcess As String Dim oCTLMMProcesses As New CTQL.CTLMMProcesses rLMMSimProcess = oCTLMMProcesses.LMMSimProcess( _ MyLMMSimProcess, _ Reload, _ MyLMMProcess2, _ My3rdLMMLinearExpVolModel2, _ My2ndLMMLinearExpCorrModel2, _ NoOfSims, _ Seed)![]() ![]() LMMSimProcessPart = rLMMSimProcess End Function ![]() ![]() ![]() ![]() |