# Forward Rate Agreement

## Definition

A forward rate agreement (FRA) is a contract in which two parties agree to exchange a fixed rate against a floating rate on a notional amount over a certain period.

A basic interest rate swap can be regarded as a linear combination of forward rate agreements.

## Pricing

Let $r(T,T + \Delta)$ be a simply compounded interest rate for lendings starting at $T$ and maturing at $T + \Delta$, $L$ be a fixed interest rate level and $N$ be the notional amount of the contract, then the payoff of a forward rate agreement in $T+\Delta$ is given by

$\displaystyle{(r(T,T + \Delta) - L)\Delta N. }$

$r(T,T + \Delta)\Delta N$ is the cash flow of the so-called floating leg, $L\Delta N$ the cash flow of the fixed leg.

Let $P(t,T)$ the price of a zerobond at $t$ maturing at $T,~ t \leq T$, then the value of the fixed leg of a FRA at time $t$ is given by

$\displaystyle{-P(t,T + \Delta) L \Delta N. }$

The value of the floating leg at time $T$ is the cash flow discounted over the period $\Delta$, i.e.

$\displaystyle{P(T,T + \Delta) r(T,T + \Delta)\Delta N. }$

This expression can be rewritten as

$\displaystyle{P(T,T + \Delta) \left[\frac{1}{\Delta} \left( \frac{1}{P(T,T+\Delta)} - 1\right)\right]\Delta N \,,}$

since the relation

$\displaystyle{P(T,T + \Delta) \equiv \frac{1}{1 + r(T,T + \Delta)\Delta} }$

holds for simply compounded interest rates by definition. Rearranging the terms leads to

$\displaystyle{\left(1 - P(T,T + \Delta)\right) N \,,}$

or equivalently to

$\displaystyle{\left(P(T,T) - P(T,T + \Delta)\right) N \,,}$

since the time $T$ value of a zerobond maturing at $T$ is $1$. Hence, the time $T$ value of the floating leg is just $N$ times the difference of two zerobond prices at $T$. It follows that the value at $t$ must be

$\displaystyle{\left(P(t,T) - P(t,T + \Delta)\right)N \,.}$

To summarize, the value of a forward rate aggreement is the sum of its floating leg value and its fixed leg value and hence is determined by

$\displaystyle{\left(\left(P(t,T) - P(t,T + \Delta)\right) - P(t,T + \Delta) L \Delta\right)N \,.}$

## Forward rate

Let $L^{*}$ be the level at which the value of a FRA is 0. Then $L^{*}$ is given by

$\displaystyle{L^{*} = \frac{1}{\Delta} \left(\frac{P(t,T)}{P(t,T + \Delta)} - 1 \right) \,.}$

The expression on the right hand side is, by definition, the simply compounded forward rate $f(t,T,T + \Delta)$. Since no compensation payment is transferred when a new FRA is set off, each party assigns a value of 0 to the contract. Thus, the fixed rate must be set to

$\displaystyle{L^{*} = f(t,T,T + \Delta) }$

to prevent arbitrage opportunities.

## Replicating strategy

Consider a trading strategy $\varphi = \left(\varphi_{T_{1}}, \varphi_{T_{2}}}\right)$, $\varphi_{T_{1}},\varphi_{T_{2}} \in$ $\mathbb{R}$, where any $\varphi_{T_{i}}$ contains the number of zerobonds with maturity $T_{1}$ and the number of zerobonds with maturity $T_{2}$. Then the trading strategy given by

$\displaystyle{\varphi_{T_{1}} = \left(\begin{array}{c} N \\ -\left( 1 + \Delta L \right) \cdot N \\ \end{array}\right)}$

and

$\displaystyle{\varphi_{T_{2}} = \left(\begin{array}{c} 0 \\ \frac{N}{P(T_{1}, T_{2})} - \left( 1 + \Delta L \right) \cdot N \\ \end{array} \right)}$

is a replicating strategy for the forward rate agreement, where $T_{2} - T_{1}$ has been set to $\Delta$. The value of the forward rate agreement is defined as the price of the forward rate agreement and hence given by

$\displaystyle{\Pi_{t} = N P(t,T_{1}) - N \left( 1 + \Delta L \right) P(t, T_{2}) = N \left[P(t,T_{1}) - P(t,T_{2}) - P(t,T_{2})\Delta L\right] }$

## Codebook

### Contruction

A forward rate agreement is a contract with a interest rate (IR) dependent, linear-affine payoff structure and can be instantiated by the

public static FRA create(double notional, ILevelTS termstructure, double tts, double tenor)


method of the class FRA. It is assumed that a term structure exists.

ILevelTS term_structure = FlatTS.create(0.05);
term_structure.setCompounding(Compounding.SIMPLE);
ILinearIRClaim fra = FRA.create(100000.0, term_structure, 0.75, 0.5);


The fixed interest rate level of the contract is set to the forward rate such that the initial value of the forward rate agreement is 0. The fixed rate can be changed to another level by calling the corresponding method.

### Methods

double value, level;
value = fra.value();   // value is zero after construction
level = fra.getFixedCovenant();   // level equals the forward rate after construction



The value of a contract established at a different level can be priced under unchanged conditions (same term structure). We give an example how the value is determined and its components can be retrieved.

fra.setFixedCovenant(0.04);
value = fra.value();
double value_floating = fra.valueMarketSide();   // same as fra.valueFloatingLeg();
double value_fixed = fra.valueContractSide();   // same as fra.valueFixedLed();