I have been working with Deposit Futures and the Brazilian One-Day Interbank Deposit Future but I can't get my head around them.
What exactly is delivered and when? What is the contract a right to?
I have been working with Deposit Futures and the Brazilian One-Day Interbank Deposit Future but I can't get my head around them.
What exactly is delivered and when? What is the contract a right to?
The One-Day Interbank Deposit Futures Contract (aka the DI contract) is a contract on the Brazilian one-day interbank rate. This is the rate at which large banks in Brazil lend and borrow from each other. The contract provides a way to hedge or speculate in short-term Brazilian interest rates.
This contract is financially, rather than physically, settled. That means that nothing is actually delivered. Rather, at the end of each day the holders of the contract have their account at the exchange credited or debited by an amount which reflects the one-day change in the deposit rate. The amount of debit or credit $X_t$ is given by the formula
$$ X_t = N\times M\times \left( P_t - P_{t-1}F_t\right) $$
where $N$ is the number of contracts held, $M$ is the point value of the contract (i.e. number of Brazilian Real per contract point), $P_t$ is the price of the contract and $F_t$ is the correction factor, which is given by
$$ F_t = \prod_{j=1}^n \left( 1 + \frac{DI_{t-j}}{100}\right)^{1/252} $$
where $DI_t$ is the interbank deposit rate for day $t$, and $n$ is the number of reserve days (aka business days) between the day that the debit/credit is being calculated for, and the last trading day. Typically $n=1$ unless there have been some holidays between today and the previous trading day. Note that weekends do not count as holidays, so $n=1$ between the close on Friday and the close on the following Monday.
Note that the quantities $P_t$ is known as the unit price. This is not actually what is quoted in the market - instead the interest rate $DI_t$ is quoted. The relationship between them is
$$ P_t = \frac{100,000}{\left(1 + \frac{DI_t}{100} \right)^{ \frac{N_t}{252} } } $$
where $N_t$ is the number of reserve days to maturity on day $t$ (i.e. it decreases by 1 for each business day that passes). In particular, on the final trading day you have $N_t=0$ and $P_t=100,000$.
As for what the contract is a right to - holding the contract merely gives you the right (or obligation) to the associated cashflows each day. Nothing is transferred between holders of this contract except for cash.
I would add just a small detail to Chris Taylor's excellent explanation: "Typically n=1 unless there have been some holidays between today and the previous trading day.".
You must distinguish between "Bank/Settlement Holidays" (there is no CDI published) and "Exchange Holidays" (the exchange is closed, no trading on DI Futures).
After a Exchange Holiday that is not a Settlement Holiday you could have n=2 (ie two overnight rates must be applied to the previous price).
You can see the need for 2 calendars in QuantLib https://quantlib-python-docs.readthedocs.io/en/latest/dates.html#calendar :
Brazil : [‘Exchange’, ‘Settlement’]
calendar = ql.Brazil(). Maybe a future release will address this..
– Dimitri Vulis
Oct 26 '21 at 14:00