Foreign Exchange Markets and Currency Forwards › Mark-to-Market Valuation of Currency Forwards

Michael BrenndoerferNovember 14, 20255 min read
Quantitative FinanceAll chapters
Part 3 of 15Forwards, Futures, and Options
Chapter 17Foreign Exchange Markets and Currency Forwards › Mark-to-Market Valuation of Currency Forwards
Reading section 7 of 12 · Mark-to-Market Valuation of Currency Forwards · 5 minSection 7 of 12 · 5 min

Book contents

Section 7 of 12 · 5 min read

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 KK with time τ\tau remaining, the current value to the buyer is:

Vt=N×Ft−K1+rd×τV_t = N \times \frac{F_t - K}{1 + r_d \times \tau}

where:

  • VtV_t: current value of the forward position in domestic currency
  • NN: notional amount of foreign currency
  • FtF_t: current forward rate for maturity τ\tau
  • KK: contracted forward rate
  • rdr_d: domestic interest rate
  • τ\tau: 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 (Ft−K)(F_t - K) 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 (1+rd×τ)(1 + r_d \times \tau) 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.

In[28]:
Code
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,
)
Out[29]:
Console
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.

Out[30]:
Visualization
Line chart of forward contract MTM value in thousands of dollars across EUR/USD spot rates, with a vertical dashed line at the contracted rate of 1.09 and green and red shading for in-the-money and out-of-the-money regions.
Mark-to-market (MTM) value sensitivity of a long forward position to spot rate changes. The position gains value as the spot rate rises above the contracted rate of 1.0900 (green region) and loses value when the spot rate falls below (red region), which reflects the changing cost of replacement.