CreateVegaReport Example VBNET





http://www.QuantTools.com
CapeTools IR Risk function list
CreateVegaReport function

Welcome | Documentation format | QuantTools Groups | QuantTools Categories | Licence

Key TAGs | Excel Index | API Index



Example VB.NET Driver function. Preparing the parameters and the final function call (the result).

High level view of the code structure (resulting in the final function call to CreateVegaReport() )

These are the financial QuantTools function calls that are used within the examples :





The objects generated by these functions are inter-connected in the following way :




VB.NET Example - CreateVegaReport





    '     ##################################################################################
    '     The first function here CreateVegaReport(), contains a series of
    '     function calls leading upto the main function call, the second function
    '     within this file ( CreateVegaReportPart() ).
    '     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 nCTIRRiskGlobal 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_CreateVegaReport() As String

    nCTIRRiskGlobal = nCTIRRiskGlobal + 1
            

    Dim szErrorMsg As String
          
    Try

            
    

    '    Loads a FX table from a range object into a Exchange Rate Manager 
    '    object.

    Dim MyFXManager As String
    MyFXManager = _
        CreateFXManagerPart()


    

    '    EURO calendar used for holiday adjustments.

    Dim MyEuroCal As String
    MyEuroCal = _
        CALEUROPart()


    

    '    UK date calendar used within the UK stock exchange.

    Dim MyCALUKExchange As String
    MyCALUKExchange = _
        CALUKExchangePart()


    

    '    Creates a centralized valuation date object.

    Dim MyValuationDate As String
    MyValuationDate = _
        ValueDateObjPart()


    

    '    Generates a schedule of start and end dates, given the initial 
    '    start date and unadjusted final end dates.
    Dim MySchedule As String
    MySchedule = _
        MakeSchedulePart( _
        MyEuroCal)


    

    '    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 SABR curve to model the dynamics of the volatility 
    '    curve (smile).
    Dim MySABRVolCurve As String
    MySABRVolCurve = _
        SABRVolCurvePart( _
        MyValuationDate, _
        MyDepoTPL, _
        MySwapTPL)


    

    '    Creates an amortisation object to be used within the amortisation 
    '    fixed and floating rate leg objects.
    Dim MyCreateAmortObj As String
    MyCreateAmortObj = _
        CreateAmortObjPart( _
        MySchedule)


    

    '    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 market object which is an aggregate of interest rate 
    '    market objects (Discounting curve and Interest rate volatility 
    '    curve (volcurve)).
    Dim MyMarket4 As String
    MyMarket4 = _
        CreateMKT__4Part( _
        MyMiniYC, _
        MySABRVolCurve)


    

    '    Creates a floating rate leg.
    Dim MyCreateFloatLeg3 As String
    MyCreateFloatLeg3 = _
        CreateFloatLeg__3Part( _
        MySchedule, _
        MyNewIndex2, _
        MyMarket4)


    

    '    Creates an amortised floating rate leg.
    Dim MyCreateAmortFloatLeg2 As String
    MyCreateAmortFloatLeg2 = _
        CreateAmortFloatLeg__2Part( _
        MyCreateAmortObj, _
        MyNewIndex2, _
        MyMarket4)


    

    '    Creates a Fixed rate leg.
    Dim MyCreateFixedRateLeg3 As String
    MyCreateFixedRateLeg3 = _
        CreateFixedRateLeg__3Part( _
        MySchedule, _
        MyMarket4)


    

    '    This floating leg (or FRN) only provide one payoff.
    Dim MyCreateZCFloatLeg2 As String
    MyCreateZCFloatLeg2 = _
        CreateZCFloatLeg__2Part( _
        MySchedule, _
        MyNewIndex2, _
        MyMarket4)


    

    '    Creates an amortised fixed rate leg.
    Dim MyCreateAmortFixLeg2 As String
    MyCreateAmortFixLeg2 = _
        CreateAmortFixLeg__2Part( _
        MyCreateAmortObj, _
        MyMarket4)


    

    '    Creates a porfolio of caplet or floorlet options from this floating 
    '    Rate Leg.
    Dim MyCreateCapFLTLeg2 As String
    MyCreateCapFLTLeg2 = _
        CreateCapFLTLeg__2Part( _
        MyCreateFloatLeg3, _
        MySABRVolCurve)


    

    '    Creates a Structure object (which is really a portfolio of leg 
    '    objects).
    Dim MyStructure As String
    MyStructure = _
        CreateStructurePart( _
        MyCreateAmortFloatLeg2, _                
        MyCreateFixedRateLeg3, _                
        MyCreateZCFloatLeg2, _                
        MyCreateAmortFixLeg2, _                
        MyCreateCapFLTLeg2)


    

    '    Creates a Vega report object given a Structure object and a 
    '    shift parameter.
    Dim MyVegaReport As String
    MyVegaReport = _
        CreateVegaReportPart( _
        MyStructure, _
        MySABRVolCurve, _
        MyFXManager)

    ' This is the result we are looking for.
    VB_EX_CreateVegaReport = MyVegaReport

            
    Catch e As Exception
        szErrorMsg = e.Message
        Throw e
    Catch e As System.ApplicationException
        szData = e.Message
    End Try
            
End Function                
        


' ///////////////////////////////////////////////////////////////////

Private Function CreateVegaReportPart( _
    MyStructure As String, _                
    MySABRVolCurve As String, _                
    MyFXManager As String) As String


    



    '    Key value to use as a handle for the created object
        Dim MyVegaReport As String
        MyVegaReport = "MyVegaReport" + "_" + CStr(nCTIRRiskGlobal)


    '    When creating this object for the first time, set this parameter 
    '    to a positive value.
        Dim Reload As Integer
        Reload = 1


    '    The shift that you wish to apply to all points within the VolCurve 
    '    in percent.
        Dim VolShift As Integer
        VolShift = 1


    '    Currency code that you wish the risk report values to be stored 
    '    in.
        Dim ReportPVCcy As CTIEnums.CCYEnum
        ReportPVCcy = CTIEnums.CCYEnum.CCY_EUR

                    
    '  Excel function call is : "CT.RSK.CreateVegaReport()"

    '    Creates a Vega report object given a Structure object and a 
    '    shift parameter.
        Dim rCreateVegaReport As String 
        Dim oCTIRRisk As New CTQL.CTIRRisk
    
        rCreateVegaReport = CTQL.CTIRRiskSA.CreateVegaReport( _
                MyVegaReport, _
                Reload, _
                MyStructure, _
                MySABRVolCurve, _
                VolShift, _
                MyFXManager, _
                ReportPVCcy)


    CreateVegaReportPart = rCreateVegaReport
    
End Function                        








Copyright (c) 2003-2007 CapeTools - All Rights Reserved.