Valuation of Interest Rate Derivatives › Worked Example: Hedging Floating-Rate Exposure
Quantitative FinanceAll chapters Valuation of Interest Rate Derivatives › Worked Example: Hedging Floating-Rate ExposureOne section · Sections in this chapter7 / 13 ↓
Reading tools Definitions & inline links
Choose your expertise level to adjust how many terms are explained. Beginners see more tooltips, experts see fewer to maintain reading flow. Hover over underlined terms for instant definitions.
Article links
Make inline references clickable
Consider managing $100 million of floating-rate debt linked to 3-month rates, resetting quarterly for the next 3 years. Current rates are 5%, and you want protection if rates exceed 6%.
Step 1: Define the Hedging Instrument
We need a 3-year quarterly cap with a 6% strike. This provides 12 caplets, one for each quarterly reset.
# Corporate hedge parameters
notional_corporate = 100_000_000 # $100 million
strike_cap = 0.06 # 6% cap strike
cap_tenor = 3 # 3 years
current_rate = 0.05 # 5% current rate
cap_vol = 0.22 # 22% implied volatility
# Quarterly resets
payment_dates_corp = np.arange(0.25, cap_tenor + 0.25, 0.25)
n_caplets = len(payment_dates_corp)
times_to_expiry_corp = payment_dates_corp - 0.25
# Assume a gently upward-sloping rate curve
forward_rates_corp = current_rate + 0.001 * np.arange(n_caplets)
# Discount factors (using current rate for simplicity)
discount_factors_corp = np.exp(-current_rate * payment_dates_corp)
day_count_fractions_corp = np.full(n_caplets, 0.25)
# Price each caplet
caplet_details = []
for i in range(n_caplets):
if times_to_expiry_corp[i] <= 0:
price = 0
else:
price = black_caplet_price(
forward_rates_corp[i],
strike_cap,
cap_vol,
times_to_expiry_corp[i],
discount_factors_corp[i],
day_count_fractions_corp[i],
notional_corporate,
)
caplet_details.append(
{
"period": i + 1,
"fixing_time": times_to_expiry_corp[i],
"forward_rate": forward_rates_corp[i],
"price": price,
}
)
total_cap_cost = sum(c["price"] for c in caplet_details)Corporate Interest Rate Hedge Analysis ============================================================ Notional: $100,000,000 Cap Strike: 6.00% Current Rate: 5.00% Cap Tenor: 3 years (12 quarters) Caplet Breakdown (first 6 and last 2): ------------------------------------------------------------ Period Fixing Forward Price ($) ------------------------------------------------------------ 1 0.00 5.00% 0.00 2 0.25 5.10% 4,571.68 3 0.50 5.20% 20,221.17 4 0.75 5.30% 39,525.68 5 1.00 5.40% 59,925.40 6 1.25 5.50% 80,588.41 ... 11 2.50 6.00% 180,506.71 12 2.75 6.10% 199,378.80 ------------------------------------------------------------ Total Cap Cost: $1,110,210.41 Cost as % of Notional: 1.1102%
Step 2: Analyze Cost-Benefit
The cap costs approximately 0.16% of notional upfront. To evaluate whether this is worthwhile, consider the breakeven analysis:
# Breakeven analysis: at what average rate above strike does cap pay for itself?
# Assume rates jump immediately to a constant level above strike
def cap_payoff_at_rate(
constant_rate, strike, notional, n_periods, df_array, dcf_array
):
"""Calculate total cap payoff if rates stay constant above strike."""
if constant_rate <= strike:
return 0
payoffs = [
(constant_rate - strike) * notional * dcf * df
for dcf, df in zip(dcf_array, df_array)
]
return sum(payoffs)
# Find breakeven rate
from scipy.optimize import brentq
def net_value(rate):
payoff = cap_payoff_at_rate(
rate,
strike_cap,
notional_corporate,
n_caplets,
discount_factors_corp,
day_count_fractions_corp,
)
return payoff - total_cap_cost
# Breakeven is where net value = 0
breakeven_rate = brentq(net_value, strike_cap, 0.15)Breakeven Analysis: If rates rise to and stay at 6.40%, the cap pays for itself. This is 1bp above current rates. Scenario Analysis (constant rate assumption): -------------------------------------------------- Rate Cap Payoff Net Value -------------------------------------------------- 5.00% $0 $-1,110,210 6.00% $0 $-1,110,210 7.00% $2,768,465 $1,658,255 8.00% $5,536,930 $4,426,720 9.00% $8,305,396 $7,195,185
The analysis shows that if rates rise to 8% or higher, the cap provides substantial protection, more than covering its initial cost.
