Logo

ED_FUT_CONV_ADJ_HL

Updated 2023-10-13 13:08:07.913000

Syntax

SELECT [westclintech].[wct].[ED_FUT_CONV_ADJ_HL](
  <@Price, float,>
 ,<@Vol, float,>
 ,<@T1, float,>
 ,<@T2, float,>)

Description

Use the scalar function ED_FUR_CONV_ADJ_HL to convert a Eurodollars futures price into a forward rate using the Ho Lee convexity adjustment formula.

Arguments

@T2

the amount of time, in years, until the Maturity of the underlying Eurodollar deposit. @T2 is an expression of type float or of a type that can be implicitly converted to float.

@T1

the amount of time, in years, until the delivery of the futures contract. @T1 is an expression of type float or of a type that can be implicitly converted to float.

@Price

the price of the Eurodollars futures contract. @Price is an expression of type float or of a type that can be implicitly converted to float.

@Vol

the volatility associated with Eurodollars futures contract. @Vol is an expression of type float or of a type that can be implicitly converted to float.

Return Type

float

Remarks

@Vol must be >= 0.

If @T2 is NULL , then @T2 = @T1 + 0.25.

Examples

In this example we calculate the convexity adjusted forward rates associated with the Eurodollar futures strip as of 2013-03-25.

SELECT dc,
       wct.ED_FUT2DATE(dc, '2013-03-25') AS Delivery,
       (100 - p) / 100 as [Forward Rate],
       wct.ED_FUT_CONV_ADJ_HL(   p,                                    --@Price
                                 v,                                    --@Vol
                                 wct.ED_FUTYF(dc, '2013-03-25', NULL), --@T1
                                 NULL                                  --@T2
                             ) as [Adjusted Forward Rate]
FROM
(
    SELECT 'M3',
           99.675,
           .0008
    UNION ALL
    SELECT 'U3',
           99.640,
           .0010
    UNION ALL
    SELECT 'Z3',
           99.610,
           .0013
    UNION ALL
    SELECT 'H4',
           99.580,
           .0017
    UNION ALL
    SELECT 'M4',
           99.550,
           .0021
    UNION ALL
    SELECT 'U4',
           99.435,
           .0023
    UNION ALL
    SELECT 'Z4',
           99.65,
           .0027
) n(dc, p, v);

This produces the following result.

{"columns":[{"field":"dc"},{"field":"Delivery","headerClass":"ag-right-aligned-header","cellClass":"ag-right-aligned-cell"},{"field":"Forward Rate","headerClass":"ag-right-aligned-header","cellClass":"ag-right-aligned-cell"},{"field":"Adjusted Forward Rate","headerClass":"ag-right-aligned-header","cellClass":"ag-right-aligned-cell"}],"rows":[{"dc":"M3","Delivery":"2013-06-19","Forward Rate":"0.00325","Adjusted Forward Rate":"0.003294"},{"dc":"U3","Delivery":"2013-09-18","Forward Rate":"0.0036","Adjusted Forward Rate":"0.003648"},{"dc":"Z3","Delivery":"2013-12-18","Forward Rate":"0.0039","Adjusted Forward Rate":"0.003952"},{"dc":"H4","Delivery":"2014-03-19","Forward Rate":"0.0042","Adjusted Forward Rate":"0.004254"},{"dc":"M4","Delivery":"2014-06-18","Forward Rate":"0.0045","Adjusted Forward Rate":"0.004556"},{"dc":"U4","Delivery":"2014-09-17","Forward Rate":"0.00565","Adjusted Forward Rate":"0.005717"},{"dc":"Z4","Delivery":"2014-12-17","Forward Rate":"0.0035","Adjusted Forward Rate":"0.003534"}]}