5
Our market “risk” Measure Position adjusted sensitivity using 1 basis point change Example of “bond risk”: Price (pv): 85.731991 (that’s a total amount of $857.31 the bond is worth) DV01: 0.092519 (how much price moves with a 1/100 of 1% change in yield = .01) amount: 10000 (10,000 is 10MM “position”) Position risk: 9.251928 (that’s $9,251 change to position value given a 1bp move) static double bond_risk( const SBB_bond_calculator_interface* bond_calc_ptr, const SBB_instrument_fields* bond_record_ptr, double dv_bump_amount) { double pv = bond_calc_ptr->PV(bond_record_ptr->Yield() ); double dv = bond_calc_ptr->dv_bump(bond_record_ptr->Yield(), pv, dv_bump_amount); double position_risk = bond_record_ptr->Amount() * dv/100.0; return position_risk; }

Our market “risk” Measure Position adjusted sensitivity using 1 basis point change Example of “bond risk”: Price (pv): 85.731991 (that’s a total amount

Embed Size (px)

Citation preview

Page 1: Our market “risk” Measure Position adjusted sensitivity using 1 basis point change Example of “bond risk”: Price (pv): 85.731991 (that’s a total amount

Our market “risk” Measure• Position adjusted sensitivity using 1 basis point change• Example of “bond risk”:

• Price (pv): 85.731991 (that’s a total amount of $857.31 the bond is worth)• DV01: 0.092519 (how much price moves with a 1/100 of 1% change in yield = .01)• amount: 10000 (10,000 is 10MM “position”)• Position risk: 9.251928 (that’s $9,251 change to position value given a 1bp move)

static double

bond_risk( const SBB_bond_calculator_interface* bond_calc_ptr,

const SBB_instrument_fields* bond_record_ptr,

double dv_bump_amount)

{

double pv = bond_calc_ptr->PV(bond_record_ptr->Yield() );

double dv = bond_calc_ptr->dv_bump(bond_record_ptr->Yield(), pv, dv_bump_amount);

double position_risk = bond_record_ptr->Amount() * dv/100.0;

return position_risk;

}

Page 2: Our market “risk” Measure Position adjusted sensitivity using 1 basis point change Example of “bond risk”: Price (pv): 85.731991 (that’s a total amount

Units Examples• $10,000,000 of a bond

• 9% coupon, 20 years to maturity - current price: 134.672 and yield is: 6%

• Market value is:

$10,000,000 * 1.346722 = $13,467,220

• Bump yield by up by 100 basis points (1%) and price is now: 121.3551

• Our data file has amounts in 000’s so $10,000,000 would be entered as 10000

• Dollar Value of an “01” (DV01) - price diff between starting yield and 1/100th of a percent move of yield, or 1 basis point, (1/100th of above example). Additionally, it is the average of two shifts: the absolute value of the differences resulting from both an up and down move.

• “Risk” for us is defined as Amount * DV01/100 and thus stays in thousands since Amount is in thousands.

• Risk of 44.123 means for every basis point change in yield we would gain/lose $44,123.

double yield_delta_abs = fabs(bump_amount);

// yield goes up, price goes down double down_price = PV(base_yield + yield_delta_abs); double price_delta_down = base_price - down_price;

// yield goes down, price goes up double up_price = PV(base_yield - yield_delta_abs); double price_delta_up = up_price - base_price;

dv01 = (price_delta_up + price_delta_down ) / 2.0;

Page 3: Our market “risk” Measure Position adjusted sensitivity using 1 basis point change Example of “bond risk”: Price (pv): 85.731991 (that’s a total amount

Bonds are typically priced “relative”

• Generally:• Lower quality is priced relative to higher quality• Lower liquidity is priced relative to higher liquidity

• Relative to what?– Individual bond– Collection of bonds (like an index)

• “Spread” pricing:– Yield of Treasury = 4.68%– Yield of Corporate = 5.68%– Spread of Corporate = 100bp

• Spread is measure of credit risk– Base interest rate + spread– Base interest rate + risk premium– Spread = risk premium

Page 4: Our market “risk” Measure Position adjusted sensitivity using 1 basis point change Example of “bond risk”: Price (pv): 85.731991 (that’s a total amount

Pricing Bonds off a “Yield Curve”

• Collection of liquid, high quality bonds (like an index)• Price using “spread” off matching benchmark bond• Match on maturity - the bond’s “remaining term” to “closest” benchmark• “Yield Curve” constituent criteria:

– Type of Issuer– Issuer’s perceived credit worthiness– Term of maturity of the instrument– Others: optionality, taxability, expected liquidity…

• The benchmark we will use is: – Current (most recently issued) “Treasuries” – “On-the-run” vs “Off-the-run”

• Example:– “Trading 30 over the 10 year”– Means: “yield of the quoted bond is 30 basis points more yield than the treasury bond yield

which has a maturity of 10 years”

• “Treasuries” (no credit risk, highest quality, highest liquidity - benchmark to the world)• What is the “normal” shape of the “yield curve”?• How do the treasury yields come to be?

– Fed funds rate, discount rate, auction results

Page 5: Our market “risk” Measure Position adjusted sensitivity using 1 basis point change Example of “bond risk”: Price (pv): 85.731991 (that’s a total amount

Deliverables for Oct 23

• Build a yield curve class• 4 bonds in curve:

• 2, 5,10,30 year maturities• Load in new yield curve data file

– Special version of existing “data.txt”– Bonds with ticker “T”

• Load new bond data file which will include a new field:– Spread : “30bp” and tag “SPREAD” or “YIELD”

• Price and run risk for the book using the curve• Our scenarios will be different yield curves:

– Parallel up/down, tilts (flatter, steeper)