Foreign Exchange Markets and Currency Forwards › Mark-to-Market Valuation of Currency Forwards
Quantitative FinanceAll chapters Foreign Exchange Markets and Currency Forwards › Mark-to-Market Valuation of Currency ForwardsOne section · Sections in this chapter7 / 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
As we discussed for forwards generally in Chapter 5, currency forwards must be marked to market as exchange rates and interest rates change. The value of an existing forward position depends on how current market rates compare to the contract rate. This valuation is essential for risk management, financial reporting, and understanding the economic exposure of forward positions.
Forward Valuation Formula
For a forward contract to buy foreign currency at rate with time remaining, the current value to the buyer is:
where:
- : current value of the forward position in domestic currency
- : notional amount of foreign currency
- : current forward rate for maturity
- : contracted forward rate
- : domestic interest rate
- : time remaining to settlement in years
This formula calculates the present value of the difference between the current forward rate and the contracted rate. The term represents the future gain or loss per unit of currency: if the current forward rate exceeds the contracted rate, the position has gained value because you locked in the right to buy at a lower rate than the market now offers. Dividing by discounts this future amount to the present using the domestic interest rate, because the gain or loss will only be realized at the forward's maturity.
def forward_mtm_value(
notional, contracted_rate, current_forward, r_domestic, time_remaining
):
"""
Mark-to-market value of a long forward position.
Parameters:
-----------
notional : float
Notional amount of foreign currency
contracted_rate : float
Original forward rate (domestic per foreign)
current_forward : float
Current forward rate for remaining maturity
r_domestic : float
Domestic interest rate (annualized)
time_remaining : float
Time to settlement in years
Returns:
--------
mtm_value : float
Current value of forward position in domestic currency
"""
present_value_factor = 1 / (1 + r_domestic * time_remaining)
mtm_value = (
notional * (current_forward - contracted_rate) * present_value_factor
)
return mtm_value
# Example: Long EUR/USD forward at 1.0900, 6 months originally, 3 months remaining
notional_eur = 10_000_000 # €10 million
contracted_rate = 1.0900 # Agreed to buy EUR at 1.0900
current_spot = 1.0850
r_usd_current = 0.0520
r_eur_current = 0.0400
time_remaining = 0.25 # 3 months
# Current 3-month forward
current_forward = (
current_spot
* (1 + r_usd_current * time_remaining)
/ (1 + r_eur_current * time_remaining)
)
# MTM value
mtm = forward_mtm_value(
notional_eur,
contracted_rate,
current_forward,
r_usd_current,
time_remaining,
)Forward Contract Mark-to-Market ============================================= Position: Long €10M forward Contracted rate: 1.0900 USD/EUR Current spot: 1.0850 USD/EUR Current 3M fwd: 1.0882 USD/EUR Time remaining: 3 months MTM Value: $-17,544.20 Forward is out of the money: contracted to buy EUR at a rate higher than the current forward rate.
The forward is underwater because we agreed to pay {python} f'{contracted_rate:.4f}' for euros, but the current forward is only {python} f'{current_forward:.4f}'. We're locked into paying more than the market rate. This negative mark-to-market value represents an economic liability that would need to be paid if the position were closed out today.
