How to Calculate Fx Forward Rate

.fx-calc-container { padding: 25px; background-color: #f9fbfd; border: 2px solid #e1e8ed; border-radius: 12px; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif; max-width: 650px; margin: 20px auto; box-shadow: 0 4px 6px rgba(0,0,0,0.05); } .fx-calc-header { text-align: center; margin-bottom: 25px; } .fx-calc-header h2 { color: #1a365d; margin: 0; font-size: 24px; } .fx-calc-row { display: flex; flex-direction: column; margin-bottom: 15px; } .fx-calc-row label { font-weight: 600; margin-bottom: 8px; color: #2d3748; } .fx-calc-row input, .fx-calc-row select { padding: 12px; border: 1px solid #cbd5e0; border-radius: 6px; font-size: 16px; } .fx-calc-btn { background-color: #2b6cb0; color: white; border: none; padding: 15px; width: 100%; border-radius: 6px; font-size: 18px; font-weight: bold; cursor: pointer; transition: background-color 0.2s; margin-top: 10px; } .fx-calc-btn:hover { background-color: #2c5282; } .fx-calc-result { margin-top: 25px; padding: 20px; background-color: #ebf8ff; border-radius: 8px; border: 1px solid #bee3f8; display: none; } .fx-calc-result h3 { margin: 0 0 10px 0; color: #2a4365; font-size: 20px; } .fx-calc-value { font-size: 28px; font-weight: 800; color: #2b6cb0; } .fx-calc-points { font-size: 14px; color: #4a5568; margin-top: 5px; } .fx-article-section { margin-top: 40px; line-height: 1.6; color: #333; } .fx-article-section h2 { color: #1a365d; border-bottom: 2px solid #e2e8f0; padding-bottom: 10px; } .fx-article-section h3 { color: #2c5282; margin-top: 25px; } .fx-formula-box { background: #f1f5f9; padding: 15px; border-left: 4px solid #2b6cb0; font-family: "Courier New", Courier, monospace; margin: 15px 0; }

FX Forward Rate Calculator

360 Days 365 Days

Calculated Forward Rate

Understanding FX Forward Rates

In foreign exchange markets, a forward rate is the exchange rate agreed upon today for a transaction that will take place on a specific future date. Unlike the spot rate, which is for immediate delivery, the forward rate accounts for the interest rate differentials between the two currencies involved.

The FX Forward Rate Formula

The calculation is based on the principle of No-Arbitrage or Interest Rate Parity. The formula used is:

F = S * [ (1 + (r_d * (t / B))) / (1 + (r_f * (t / B))) ]
  • F: Forward Rate
  • S: Current Spot Rate
  • r_d: Interest rate of the price (domestic) currency
  • r_f: Interest rate of the base (foreign) currency
  • t: Number of days until maturity
  • B: Day count basis (usually 360 or 365)

Example Calculation

Suppose you want to calculate the 90-day forward rate for EUR/USD.

  • Spot Rate (EUR/USD): 1.1000
  • USD Interest Rate (Price): 5.0%
  • EUR Interest Rate (Base): 3.0%
  • Days: 90
  • Basis: 360

First, convert percentages to decimals: 0.05 and 0.03. Then apply the time factor (90/360 = 0.25).

Calculation: 1.1000 * [ (1 + (0.05 * 0.25)) / (1 + (0.03 * 0.25)) ] = 1.1000 * [ 1.0125 / 1.0075 ] ≈ 1.1054

What are Forward Points?

Forward points represent the difference between the spot rate and the forward rate. In the example above, the forward points are (1.1054 – 1.1000) * 10,000 = 54 points. If the forward rate is higher than the spot rate, the base currency is at a forward premium. If it is lower, it is at a forward discount.

function calculateForwardRate() { var spot = parseFloat(document.getElementById('spotRate').value); var rDom = parseFloat(document.getElementById('domRate').value); var rFor = parseFloat(document.getElementById('forRate').value); var days = parseFloat(document.getElementById('daysToMaturity').value); var basis = parseFloat(document.getElementById('dayCount').value); var resultDiv = document.getElementById('fxResultContainer'); var rateDisplay = document.getElementById('forwardRateResult'); var pointsDisplay = document.getElementById('forwardPointsResult'); if (isNaN(spot) || isNaN(rDom) || isNaN(rFor) || isNaN(days)) { alert('Please enter valid numerical values for all fields.'); return; } // Convert interest rates to decimals var rd = rDom / 100; var rf = rFor / 100; // Time factor var t = days / basis; // Forward Rate Formula: F = S * (1 + rd*t) / (1 + rf*t) var forwardRate = spot * ( (1 + (rd * t)) / (1 + (rf * t)) ); // Forward Points (Difference * 10000 for standard pips) var points = (forwardRate – spot) * 10000; // Display results rateDisplay.innerText = forwardRate.toFixed(6); pointsDisplay.innerText = "Forward Points: " + (points > 0 ? "+" : "") + points.toFixed(2) + " pips"; resultDiv.style.display = 'block'; }

Leave a Comment