Foreign Exchange Markets and Currency Forwards › Currency Forwards for Hedging
Quantitative FinanceAll chapters Foreign Exchange Markets and Currency Forwards › Currency Forwards for HedgingOne section · Sections in this chapter6 / 12 ↓
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
Currency forwards are powerful tools for managing foreign exchange exposure. You must understand how to construct and value these hedges.
Types of FX Exposure
Organizations face several types of currency risk:
- transaction exposure: Risk from known future foreign currency cash flows (e.g., a US importer paying €1 million to a German supplier in 60 days)
- translation exposure: Risk from converting foreign subsidiary financial statements to the parent's reporting currency
- economic exposure: Long-term competitive risk from exchange rate changes affecting future revenues and costs
Currency forwards directly hedge transaction exposure and can partially address economic exposure.
Forward Contract Mechanics
A currency forward obligates two parties to exchange currencies at a predetermined rate on a future date. Building on our discussion of forwards in Chapter 5 of this part, the key terms include:
- Notional amount: The quantity of currency to be exchanged
- Forward rate: The agreed exchange rate
- Settlement date: When the exchange occurs
- Settlement method: Physical delivery or cash settlement
Hedging Example: US Investor with Euro Assets
Consider a US pension fund that owns €50 million in European equities. You are bullish on European stocks but want to eliminate currency risk: you want returns driven by stock performance, not EUR/USD fluctuations.
import numpy as np
# Portfolio parameters
euro_notional = 50_000_000 # €50 million
spot_rate = spot_eurusd # USD per EUR
forward_rate = forward_3m # 3-month forward (from CIP earlier)
# Current USD value
usd_value_now = euro_notional * spot_rate
# Scenario analysis: EUR/USD moves from 1.00 to 1.18
spot_rates_future = np.linspace(1.00, 1.18, 50)
# Unhedged portfolio value at horizon
usd_value_unhedged = euro_notional * spot_rates_future
# Hedged portfolio: forward locks in the exchange rate
# Short EUR forward at 1.0883 for €50M
# At maturity: receive \$54,415,000, deliver €50M
usd_value_hedged = (
euro_notional * forward_rate * np.ones_like(spot_rates_future)
)
# Convert to millions for plotting
usd_value_unhedged_m = usd_value_unhedged / 1e6
usd_value_hedged_m = usd_value_hedged / 1e6
usd_value_now_m = usd_value_now / 1e6
The hedge locks in the forward rate, eliminating both downside and upside currency exposure. The unhedged portfolio benefits if EUR strengthens but suffers if EUR weakens.
Calculating Hedge P&L
At the forward's maturity, the hedge generates a profit or loss that offsets currency movements in the underlying portfolio. The profit and loss calculation is straightforward: compare what you locked in to what you would have received at the prevailing spot:
where:
- : notional amount of foreign currency
- : locked-in forward rate
- : spot exchange rate at maturity
- : gain or loss per unit of currency (for a short forward position)
For a short forward position (selling foreign currency forward), the interpretation is intuitive: you agreed to sell at rate , but the market rate at maturity is . If , you sold at a higher rate than you could have gotten in the spot market, generating a profit. If , you sold at a lower rate than the spot market, creating a loss. This gain or loss exactly offsets the currency impact on your underlying foreign asset.
def hedge_pnl(euro_notional, forward_rate, spot_at_maturity):
"""
Calculate P&L from a short EUR forward (hedging long EUR exposure).
Short forward means: agreed to sell EUR at forward rate.
At maturity: receive forward rate, deliver EUR at spot.
"""
# If spot < forward: profit (sold EUR high, buy back low)
# If spot > forward: loss (sold EUR low, would have gotten more at spot)
pnl = (forward_rate - spot_at_maturity) * euro_notional
return pnl
euro_notional = 50_000_000
forward_rate = forward_3m
initial_spot = spot_eurusd
# Define scenarios relative to current spot
scenarios = [
("EUR weakens", 1.05),
("EUR unchanged", initial_spot),
("EUR strengthens", 1.12),
]
# Calculate P&L for each scenario
pnl_results = []
for name, future_spot in scenarios:
hedge_pl = hedge_pnl(euro_notional, forward_rate, future_spot)
portfolio_value = euro_notional * future_spot
hedged_value = portfolio_value + hedge_pl
# Create descriptive label with value
label = f"{name} ({future_spot:.4f})"
# Store values in millions
pnl_results.append(
(label, portfolio_value / 1e6, hedge_pl / 1e6, hedged_value / 1e6)
)Hedge P&L Analysis (€50M Short Forward) ============================================================ Forward rate locked in: 1.0884 EUR weakens (1.0500) Portfolio value: $52.50M Hedge P&L: $+1.92M Total hedged: $54.42M EUR unchanged (1.0850) Portfolio value: $54.25M Hedge P&L: $+0.17M Total hedged: $54.42M EUR strengthens (1.1200) Portfolio value: $56.00M Hedge P&L: $-1.58M Total hedged: $54.42M
Notice that regardless of where EUR/USD ends up, the total hedged position is always approximately €50M × {python} f'{forward_rate:.4f}' = ${{python} f'{(euro_notional * forward_rate / 1e6):.2f}'}M. The hedge P&L exactly offsets currency gains or losses. When the euro weakens, the portfolio loses value but the hedge generates a profit. When the euro strengthens, the portfolio gains value but the hedge generates a loss. The net result is always the locked-in forward rate.

Rolling Hedges
For ongoing exposures, hedging typically involves rolling forward contracts. At each maturity, the old forward settles and a new one is initiated. Rolling creates "roll yield" that depends on the forward curve:
- Positive carry: If you're receiving the higher-yielding currency forward, each roll adds value
- Negative carry: If you're paying the higher-yielding currency forward, each roll costs
# Rolling hedge cost analysis
# US investor hedging EUR exposure over 1 year with quarterly rolls
spot = 1.0850
r_usd = 0.0525
r_eur = 0.0400
roll_periods = 4 # Quarterly
T_per_period = 0.25 # Years
portfolio_notional = 50_000_000
# Cost of rolling forwards (assuming rates stay constant)
# Each period, forward = spot × (1 + r_usd × T) / (1 + r_eur × T)
# The "cost" is that forward > spot when r_usd > r_eur
roll_cost_per_period = (r_usd - r_eur) * T_per_period
annual_roll_cost = roll_cost_per_period * roll_periods
annual_cost_value = portfolio_notional * annual_roll_cost
# Percentages for display
rate_diff_pct = (r_usd - r_eur) * 100
roll_cost_period_pct = roll_cost_per_period * 100
annual_roll_cost_pct = annual_roll_cost * 100Rolling Hedge Cost Analysis ======================================== Interest rate differential: 1.25% Per-quarter roll cost: 0.3125% Annual roll cost: 1.25% On €50M portfolio: $625,000/year
This cost represents the price of eliminating currency risk. Whether it's worth paying depends on your risk tolerance and views on EUR/USD.
Optimal Hedge Ratios
A 100% hedge eliminates currency risk but also forgoes potential gains from favorable moves. Some investors use partial hedges based on:
- Volatility targeting: Hedge enough to achieve a target portfolio volatility
- Mean-variance optimization: Balance expected return against risk reduction
- Regime-dependent: Adjust hedge ratio based on market conditions
The volatility of a partially hedged portfolio derives from the variance of the sum of the equity position and the remaining currency exposure. A partially hedged portfolio has two sources of risk: the underlying asset and the unhedged portion of currency exposure. To calculate the portfolio volatility, we first determine the variance of the sum of these components:
where:
- : portfolio volatility
- : volatility of the underlying asset
- : volatility of the exchange rate
- : hedge ratio ()
- : correlation between asset returns and exchange rate returns
- : variance contribution from the unhedged portion of currency exposure
- : covariance term capturing the diversification effect between asset and currency returns
The covariance term is particularly important because it captures the diversification effect. When equity and currency returns are negatively correlated, the covariance term is negative, reducing total portfolio variance. This means the currency exposure provides a natural hedge against equity risk.
import numpy as np
def portfolio_volatility_with_hedge(
equity_vol, fx_vol, correlation, hedge_ratio
):
"""
Calculate portfolio volatility as a function of hedge ratio.
Parameters:
-----------
equity_vol : float
Volatility of underlying equity position (in local currency)
fx_vol : float
Volatility of exchange rate
correlation : float
Correlation between equity returns and FX returns
hedge_ratio : float
Fraction of FX exposure hedged (0 to 1)
Returns:
--------
portfolio_vol : float
Annualized volatility of hedged portfolio in domestic currency
"""
# Unhedged FX exposure = (1 - hedge_ratio) × fx_vol
unhedged_fx_vol = (1 - hedge_ratio) * fx_vol
# Portfolio variance (simplified for illustration)
# σ²_portfolio = σ²_equity + σ²_fx_unhedged + 2ρ × σ_equity × σ_fx_unhedged
portfolio_var = (
equity_vol**2
+ unhedged_fx_vol**2
+ 2 * correlation * equity_vol * unhedged_fx_vol
)
return np.sqrt(portfolio_var)
# Generate volatility curves for plotting
equity_vol = 0.15
fx_vol = 0.10
hedge_ratios = np.linspace(0, 1, 100)
correlations = [0.5, 0.0, -0.5]
vol_curves = {}
for corr in correlations:
vols = [
portfolio_volatility_with_hedge(equity_vol, fx_vol, corr, h)
for h in hedge_ratios
]
vol_curves[corr] = vols
# Convert to percentages for plotting
hedge_ratios_pct = hedge_ratios * 100
When equity returns and currency returns are negatively correlated (ρ < 0), the currency provides a natural hedge, and adding a forward hedge can increase total volatility at low hedge ratios. This counterintuitive result shows that hedge design must account for correlations. A blanket policy of fully hedging all currency exposure may not be optimal if currencies naturally offset other portfolio risks.