DisplayVCHedgeSens2 Example Java





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

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

Key TAGs | Excel Index | API Index



Example Java 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 DisplayVCHedgeSens2() )

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 :




Java Example - DisplayVCHedgeSens2





    //     ##################################################################################
    //     The first function here DisplayVCHedgeSens2(), contains a series of
    //     function calls leading upto the main function call, the second function
    //     within this file ( DisplayVCHedgeSens2Part() ).
    //     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. 
    //     ##################################################################################
        

public class Java_EX_DisplayVCHedgeSens2()
{
    static 
    {
        try 
        {
            System.loadLibrary("CTQuantToolsAPI20");
        } 
        catch (UnsatisfiedLinkError e) 
        {
            System.err.println("Native code library failed to load. Make sure that the CTQuantToolsAPI20.dll is installed correctly.\n" + e);
            System.exit(1);
        }
    }

    static int nCTQryIRRiskGlobal = 0;
    
    // 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
    static CTQL.CTRangeData oEmptyRange = new CTQL.CTRangeData();
    static String szTickedKeyName;
                

    public static CTRangeData Java_EX_DisplayVCHedgeSens2(String argv[])
    {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        
    nCTQryIRRiskGlobal += 1;
            
    String szErrorMsg = "";

    try
    {



    //    Creates a centralized valuation date object.
    

    String MyValuationDate;
    MyValuationDate = 
        ValueDateObjPart();
    
    


    //    UK date calendar used within the UK stock exchange.
    

    String MyCALUKExchange;
    MyCALUKExchange = 
        CALUKExchangePart();
    
    


    //    EURO calendar used for holiday adjustments.
    

    String MyEuroCal;
    MyEuroCal = 
        CALEUROPart();
    
    


    //    Creates a Deposit template which is almost identical to a Libor 
    //    Index, but without the YieldCurve information.
    
    String MyDepoTPL;
    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.
    
    String MySwapTPL;
    MySwapTPL = 
        CreateSwapTemplatePart(
        MyEuroCal,
        MyDepoTPL);
    
    


    //    Creates a yield curve using market rates (No cross-currency 
    //    Swaps).
    
    String MyMiniYC;
    MyMiniYC = 
        MKTYC_D__3Part(
        MyValuationDate,
        MyDepoTPL,
        MySwapTPL);
    
    


    //    Creates a discount curve from Tenors (or Dates) and discount 
    //    factor inputs.
    
    String MyDiscountCurve2;
    MyDiscountCurve2 = 
        DiscountCurve2Part(
        MyValuationDate,
        MyDepoTPL,
        MySwapTPL);
    
    


    //    Creates a SABR curve to model the dynamics of the volatility 
    //    curve (smile).
    
    String MySABRVolCurve;
    MySABRVolCurve = 
        SABRVolCurvePart(
        MyValuationDate,
        MyDepoTPL,
        MySwapTPL);
    
    


    //    Given a Fixing YieldCurve, Discounting YieldCurve and a VolCurve, 
    //    this function will display the sensitivity matrix (vega) on 
    //    each of the ('option maturity' / 'option underlying') hedge 
    //    instrument combination (for a unit notional).
    
    CTRangeData resDisplayVCHedgeSens2;
    resDisplayVCHedgeSens2 = 
        DisplayVCHedgeSens2Part(
        MyMiniYC,
        MyDiscountCurve2,
        MySABRVolCurve);
    
    // This is the result we are looking for.
    return resDisplayVCHedgeSens2;
    
    
    }
    catch(Exception e)
    {
        szErrorMsg = e.getMessage();
        System.exit(1);
    }
                    
}                
        


// ///////////////////////////////////////////////////////////////////

private static CTRangeData DisplayVCHedgeSens2Part(
    String MyMiniYC,
    String MyDiscountCurve2,
    String MySABRVolCurve)
{
    // Used by functions returning a range value. Via the szRangeDescription variable, you can inspect the results
    int _nRows, _nCols;
    String szRangeDescription;

        //  Create example range for parameter DisplayVCHedgeSens2_OptMaturities
        CTQL.CTRangeData DisplayVCHedgeSens2_OptMaturities;    
        

        String[] arrBDisplayVCHedgeSens2_OptMaturities = { 
            "3M", 
            "6M", 
            "1Y", 
            "2Y", 
            "3Y", 
            "5Y", 
            "7Y", 
            "10Y"  //  Array Data
        
        };
        
        CTQL.StringVector arrDisplayVCHedgeSens2_OptMaturities = 
            new  CTQL.StringVector();

        for (int i=0; i<8; i++)
            arrDisplayVCHedgeSens2_OptMaturities.add(arrBDisplayVCHedgeSens2_OptMaturities[i]);
        
        // Second parameter determines whether the array is a column array (false) or a row array (true)
        DisplayVCHedgeSens2_OptMaturities = new  CTQL.CTRangeData(arrDisplayVCHedgeSens2_OptMaturities, false);
            
        //  Create example range for parameter DisplayVCHedgeSens2_UndMaturities
        CTQL.CTRangeData DisplayVCHedgeSens2_UndMaturities;    
        

        String[] arrBDisplayVCHedgeSens2_UndMaturities = { 
            "3M", 
            "6M", 
            "1Y", 
            "2Y", 
            "3Y", 
            "5Y", 
            "7Y", 
            "10Y", 
            "15Y", 
            "20Y"  //  Array Data
        
        };
        
        CTQL.StringVector arrDisplayVCHedgeSens2_UndMaturities = 
            new  CTQL.StringVector();

        for (int i=0; i<10; i++)
            arrDisplayVCHedgeSens2_UndMaturities.add(arrBDisplayVCHedgeSens2_UndMaturities[i]);
        
        // Second parameter determines whether the array is a column array (false) or a row array (true)
        DisplayVCHedgeSens2_UndMaturities = new  CTQL.CTRangeData(arrDisplayVCHedgeSens2_UndMaturities, false);
            


    
    //  Excel function call would be this - "CT.RSK.DisplayVCHedgeSens2()"

    //    Given a Fixing YieldCurve, Discounting YieldCurve and a VolCurve, 
    //    this function will display the sensitivity matrix (vega) on 
    //    each of the ('option maturity' / 'option underlying') hedge 
    //    instrument combination (for a unit notional).
        CTRangeData rDisplayVCHedgeSens2;
                                    
        rDisplayVCHedgeSens2 = (CTRangeData)CTQL.CTQryIRRiskSA.DisplayVCHedgeSens2(
                MyMiniYC,
                MyDiscountCurve2,
                MySABRVolCurve,
                DisplayVCHedgeSens2_OptMaturities,
                DisplayVCHedgeSens2_UndMaturities);
    
        _nRows = rDisplayVCHedgeSens2.GetRows();
        _nCols = rDisplayVCHedgeSens2.GetCols();
        szRangeDescription = rDisplayVCHedgeSens2.ToMatrixString();



    return rDisplayVCHedgeSens2;

}        








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