## Rolldown

Function

**within Bond with keys Bond Rolldown keys returns the rolldown(s)**

*Rolldown***of the referenced bond(s) between the bond settlement date**

*RD***and a horizon date**

*Tˢ***, with**

*Tʰ***and a given discount curve**

*Tˢ < Tʰ***.**

*CRV***is the bond settlement date as implied by a trade transaction assumed to occur on the trade date**

*Tˢ***(typically today).**

*T₀*Here the rolldown

**is defined like in Bloomberg, as follows:**

*RD***is the portion of the potential return from a trade that is attributed to the capital gains/losses on the positions if the reference curve remains unchanged and the trade ages until the horizon date, resulting in a mark to market at a different yield.**

*RD*In general, positive rolldown indicates an attractive trade.

Formally:

*RD = yˢ - yʰ*where

**is the bond's spot yield calculated as of the settlement date**

*yˢ***based on a supplied Yield Curve bootstrapped out of market prices of bonds of the same credit quality as the caller bond.**

*Tˢ***is the bond's rolled yield calculated as of the horizon date**

*yʰ***based on the assumption that the discount curve at**

*Tʰ***will have the same shape relative to its start at**

*Tʰ***as the spot curve does relative to the valuation date.**

*Tʰ*There exist two different methods for calculating the rolled yield

**that can be selected through the optional key Definition**

*yʰ*Download the workbook bond-carryroll.xlsx that demonstrates both methods described here.

One method corresponds to the key Definition set to Shorten Spot

It corresponds to how Bloomberg calculates the yield

**and works as follows:**

*yʰ*The initial discount curve is retained, but the bond is modified by forcing it to mature at the earlier time

**, where**

*Tˢʰ = Tᵐ - Δʰ*

*Δʰ = Tʰ - Tˢ*The second method is the default and corresponds to the key Definition set to Roll Crv to Hor, whereby the bond keeps its original maturity

**and the yield is calculated by using a new shifted discount curve produced by shifting the initial discount curve to the right so that it starts at**

*Tᵐ***, similar to what is done by the function Roll Curve**

*Tʰ*The fact that there is usually a non-trivial settlement period associated with the bond, the exact process is more complicated due to the following problem.

Both the yield and clean price calculations off a given yield curve discount all cash flows CF(t) down to the bond's settlement date

**using forward discount factors**

*Tˢ*

*FwdDF(Tˢ -> t) = DF(t)/DF(Tˢ)*Because often

**applying the function Roll Curve on the initial discount curve will not work.**

*Tˢ > T₀*The solution is to work with a converted bond that has the same cash flows as the referenced bond but zero settlement days.

The exact algorithmic steps are as below.

*STEP 1: Create CRV1*Consider the package consisting of that converted bond together with a special curve

**with discount function**

*CRV1***equal to**

*DF1(t)*

*FwdDF(Tˢ -> t) = DF(t)/DF(Tˢ)*This package is equivalent with the original pakage of the original bond and curve in what concerns the calculation of the dirty price (but not the clean price or yield!).

The curve

**can be easily created by applying the function Shift Curve on the given curve**

*CRV1***using as input only the DF Multiplier = 1/DF(Tˢ) and not the Shift so that only scaling is applied on**

*CRV***without parallel transfer along the time axis.**

*CRV*

*STEP 2: Create CRV2*If it were not for the settlement complexity, the rolled dirty price of the converted bond could be now easily calculated in the usual way by applying the Price function with a curve produced by rolling

**to the right by a time inteval equal to the difference**

*CRV1***, effected through application of the function Roll Curve on**

*Tʰ - Tˢ*

*CRV1*Unfortunately the function

**works only when**

*Roll Curve***=> the about to be shifted portion of**

*Tˢ = T₀***must be first shifted left by**

*CRV1***before being shifted right to Hor.**

*Tˢ - T₀*Therefore an intermediate curve

**must be first created by shifting**

*CRV2***to the left by**

*CRV1*

*Tˢ - T₀*The curve

**can be easily created by applying the function**

*CRV2***on the curve**

*Shift Curve***using the input Shift =**

*CRV1*

*T₀ - Tˢ*Note the

**value**

*Shift***is negative as it should for a leftwards shift.**

*T₀ - Tˢ*

*STEP 3: Create CRV3*Create the curve

**by rolling**

*CRV3***to the right until**

*CRV2***in the usual way by applying the function Roll Curve on the curve**

*Tʰ***using the input Horizon Date =**

*CRV2*

*Tʰ*

*STEP 4: Create the corresponding zero settled bond*

*STEP 5: Calculate the rolled dirty price at**Tʰ*Do so by discounting the zero settled bond using

*CRV3*

*STEP 6: Calculate the corresponding clean price from the above dirty price*

*STEP 7: Calculate the corresponding yield from the above clean price*