IRProcessViewer Example VBNET

VB.NET Example - IRProcessViewer![]() ![]() ![]() ![]() ![]() ' ################################################################################## ' The first function here IRProcessViewer(), contains a series of ' function calls leading upto the main function call, the second function ' within this file ( IRProcessViewerPart() ). ' 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. ' ################################################################################## ![]() Imports System![]() ' Optional using instruction. We will use a mix of utilising fully qualified names (in the case of the financial objects) ' and using the reduced version (in the case of declaring enumerations). ' This is just to demostrate both types of coding.![]() Imports CTQL ' You need to add a reference to the QuantToolsNET.v2.dll also![]() ' 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 nCTIRProcessSimFGlobal As Integer ' Used by function parameters that take an optional range value. ' In Excel we simply omit the value, within the API functions, ' we pass an empty range object Global oEmptyRange As CTQL.CTRangeData Public Function VB_EX_IRProcessViewer() As String![]() nCTIRProcessSimFGlobal = nCTIRProcessSimFGlobal + 1 ![]() Dim szErrorMsg As String Try![]() ![]() ' Creates a centralized valuation date object.![]() Dim MyValuationDate As String MyValuationDate = _ ValueDateObjPart()![]() ![]() ![]() ' 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 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 MyYCInterpOnDCF As String MyYCInterpOnDCF = _ MKTYC_DPart( _ MyValuationDate, _ MyDepoTPL, _ MySwapTPL)![]() ![]() ![]() ' Creates a new Index code. Dim MyNewIndex As String MyNewIndex = _ CreateIndexPart( _ MyCALUKExchange, _ MyEuroCal, _ MyYCInterpOnDCF)![]() ![]() ![]() ' Creates a Single-factor Hull-White (extended Vasicek) Forward ' ShortRate Model process object. Dim MyHullWhite1FProcess As String MyHullWhite1FProcess = _ HullWhite1FProcessPart( _ MyNewIndex, _ MyYCInterpOnDCF)![]() ![]() ![]() ' Creates an interest rate process viewer object. Dim MyIRProcessViewer As String MyIRProcessViewer = _ IRProcessViewerPart( _ MyHullWhite1FProcess, _ MyValuationDate)![]() ' This is the result we are looking for. VB_EX_IRProcessViewer = MyIRProcessViewer![]() Catch e As Exception szErrorMsg = e.Message Throw e Catch e As System.ApplicationException szData = e.Message End Try End Function ![]() ![]() ' ///////////////////////////////////////////////////////////////////![]() Private Function IRProcessViewerPart( _ MyHullWhite1FProcess As String, _ MyValuationDate As String) As String![]() ![]() ' Create example range for parameter IRProcessViewer_MandatoryDates Dim IRProcessViewer_MandatoryDates _ As CTQL.CTRangeData ![]() Dim arrBIRProcessViewer_MandatoryDates As Integer() = { _ CTQL.Date.serialNumber("19/7/2005", "dd/mm/yyyy"), _ CTQL.Date.serialNumber("19/1/2006", "dd/mm/yyyy"), _ CTQL.Date.serialNumber("19/7/2006", "dd/mm/yyyy"), _ CTQL.Date.serialNumber("19/1/2007", "dd/mm/yyyy"), _ CTQL.Date.serialNumber("19/7/2007", "dd/mm/yyyy"), _ CTQL.Date.serialNumber("19/1/2008", "dd/mm/yyyy"), _ CTQL.Date.serialNumber("19/7/2008", "dd/mm/yyyy"), _ CTQL.Date.serialNumber("19/1/2009", "dd/mm/yyyy"), _ CTQL.Date.serialNumber("19/7/2009", "dd/mm/yyyy"), _ CTQL.Date.serialNumber("19/1/2010", "dd/mm/yyyy"), _ CTQL.Date.serialNumber("19/7/2010", "dd/mm/yyyy"), _ CTQL.Date.serialNumber("19/1/2011", "dd/mm/yyyy") _ ' Array Data } Dim arrIRProcessViewer_MandatoryDates As CTQL.IntVector = _ New CTQL.IntVector(arrBIRProcessViewer_MandatoryDates) ' Second parameter determines whether the array is a column array (false) or a row array (true) IRProcessViewer_MandatoryDates = New CTQL.CTRangeData(arrIRProcessViewer_MandatoryDates, False) ![]() ![]() ![]() ' Key value to use as a handle for the created object Dim MyIRProcessViewer As String MyIRProcessViewer = "MyIRProcessViewer" + "_" + CStr(nCTIRProcessSimFGlobal)![]() ![]() ' When creating this object for the first time, set this parameter ' to a positive value. Dim Reload As Integer Reload = 1![]() ![]() ' Used to calculate time in years. Dim dayCounter As CTIEnums.DayCountEnum dayCounter = CTIEnums.DayCountEnum.DayCount_30360![]() ![]() ' The number of simulations. Dim NoOfSims As Integer NoOfSims = 10![]() ![]() ' The random generator type to use. Dim MCMethod As String MCMethod = "Pseudo"![]() ![]() ' Seed value. Dim Seed As Integer Seed = 0![]() ' Excel function call is : "CT.PRO.IR.IRProcessViewer()"![]() ' Creates an interest rate process viewer object. Dim rIRProcessViewer As String Dim oCTIRProcessSimF As New CTQL.CTIRProcessSimF rIRProcessViewer = CTQL.CTIRProcessSimFSA.IRProcessViewer( _ MyIRProcessViewer, _ Reload, _ MyHullWhite1FProcess, _ MyValuationDate, _ dayCounter, _ IRProcessViewer_MandatoryDates, _ NoOfSims, _ MCMethod, _ Seed)![]() ![]() IRProcessViewerPart = rIRProcessViewer End Function ![]() ![]() ![]() ![]() |