DisplayYCHedgeSens2 Example VBNET

VB.NET Example - DisplayYCHedgeSens2![]() ![]() ![]() ![]() ![]() ' ################################################################################## ' The first function here DisplayYCHedgeSens2(), contains a series of ' function calls leading upto the main function call, the second function ' within this file ( DisplayYCHedgeSens2Part() ). ' 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 nCTQryIRRiskGlobal 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_DisplayYCHedgeSens2() As CTRangeData![]() nCTQryIRRiskGlobal = nCTQryIRRiskGlobal + 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 MyMiniYC As String MyMiniYC = _ MKTYC_D__3Part( _ MyValuationDate, _ MyDepoTPL, _ MySwapTPL)![]() ![]() ![]() ' Creates a discount curve from Tenors (or Dates) and discount ' factor inputs. Dim MyDiscountCurve2 As String MyDiscountCurve2 = _ DiscountCurve2Part( _ MyValuationDate, _ MyDepoTPL, _ MySwapTPL)![]() ![]() ![]() ' Given a Fixing YieldCurve and a Discounting YieldCurve and an ' array of hedge instrument tenors, this function will display ' the sensitivity vector (delta) on each of the hedge instruments ' (for a unit notional). Dim resDisplayYCHedgeSens2 As CTRangeData resDisplayYCHedgeSens2 = _ DisplayYCHedgeSens2Part( _ MyMiniYC, _ MyDiscountCurve2)![]() ' This is the result we are looking for. VB_EX_DisplayYCHedgeSens2 = resDisplayYCHedgeSens2![]() Catch e As Exception szErrorMsg = e.Message Throw e Catch e As System.ApplicationException szData = e.Message End Try End Function ![]() ![]() ' ///////////////////////////////////////////////////////////////////![]() Private Function DisplayYCHedgeSens2Part( _ MyMiniYC As String, _ MyDiscountCurve2 As String) As CTRangeData![]() ' Used by functions returning a range value. Via the szRangeDescription variable, you can inspect the results Dim _nRows As Integer Dim _nCols As Integer Dim szRangeDescription As String![]() ' Create example range for parameter DisplayYCHedgeSens2_HedgeTenors Dim DisplayYCHedgeSens2_HedgeTenors _ As CTQL.CTRangeData ![]() Dim arrBDisplayYCHedgeSens2_HedgeTenors As String() = { _ "3M", _ "6M", _ "1Y", _ "2Y", _ "3Y", _ "5Y", _ "7Y", _ "10Y", _ "15Y", _ "20Y" _ ' Array Data } Dim arrDisplayYCHedgeSens2_HedgeTenors As CTQL.StringVector = _ New CTQL.StringVector(arrBDisplayYCHedgeSens2_HedgeTenors) ' Second parameter determines whether the array is a column array (false) or a row array (true) DisplayYCHedgeSens2_HedgeTenors = New CTQL.CTRangeData(arrDisplayYCHedgeSens2_HedgeTenors, False) ![]() ![]() ' Excel function call is : "CT.RSK.DisplayYCHedgeSens2()"![]() ' Given a Fixing YieldCurve and a Discounting YieldCurve and an ' array of hedge instrument tenors, this function will display ' the sensitivity vector (delta) on each of the hedge instruments ' (for a unit notional). Dim rDisplayYCHedgeSens2 As CTRangeData Dim oCTQryIRRisk As New CTQL.CTQryIRRisk rDisplayYCHedgeSens2 = CType(CTQL.CTQryIRRiskSA.DisplayYCHedgeSens2( _ MyMiniYC, _ MyDiscountCurve2, _ DisplayYCHedgeSens2_HedgeTenors), CTRangeData)![]() ![]() _nRows = rDisplayYCHedgeSens2.GetRows() _nCols = rDisplayYCHedgeSens2.GetCols() szRangeDescription = rDisplayYCHedgeSens2.ToMatrixString()![]() ![]() DisplayYCHedgeSens2Part = rDisplayYCHedgeSens2 End Function ![]() ![]() ![]() ![]() |