contango
Search
⌃K
🤯

Theoretical pricing

The formulas presented below are theoretical and used for forward pricing. Contango protocol uses similar but different formulas by taking advantage of the trader's margin to make expirables in DeFi capital-efficient (see the protocol pricing section).

Theory

In TradFi, forwards on currencies are priced using the well-known interest rate parity relationship. Given the quote currency can be borrowed or lent at the yearly fixed rate
rQr_{Q}
, the base currency at the yearly rate
rBr_{B}
and given a spot price
SS
then the theoretical price
PthP_{th}
to buy or sell 1 forward expiring in a time
TT
is given by:
Pth=S(1+rQ1+rB)TP_{th}=S*{ \bigg( \dfrac{1+r_{Q}}{1+r_{B}} \bigg) }^T
The pricing formula above is adapted from from "Options, futures and other derivatives", 6th edition, John C. Hull, Chapter 5 on futures pricing.

Example

Let's consider a contract on ETHDAI expiring in 3 months (
T=0.25T=0.25
) where the spot price is
S=100DAIS=100 \: DAI
. Given the yearly fixed interest rate on the quote currency
DAIDAI
is
rQ=10%r_{Q}=10\%
and on the base currency
ETHETH
is
rQ=3%r_{Q}=3\%
then the theoretical price to buy or sell 1 forwards would be:
Pth=100(1+0.11+0.03)0.25=101.66DAIP_{th}=100*{ \bigg( \dfrac{1+0.1}{1+0.03} \bigg) }^{0.25}=101.66\: DAI

Derived formula

In the section, a more realistic formula is derived. Taking the example of the currency pair ETHDAI, it is supposed that:
  • the quote currency is borrowed at the yearly fixed rate
    rQ,br_{Q,b}
    , e.g. borrow
    DAIDAI
  • the quote currency is lent at the yearly fixed rate
    rQ,lr_{Q,l}
    , e.g. lend
    DAIDAI
  • the base currency is borrowed at the yearly fixed rate
    rB,br_{B,b}
    , e.g. borrow
    ETHETH
  • the base currency is lent at the yearly fixed rate
    rB,lr_{B,l}
    , e.g. lend
    ETHETH
  • the base currency is bought at the spot price
    SLS_{L}
    , e.g. buy
    ETHETH
    by selling
    DAIDAI
  • the base currency is sold at the spot price
    SSS_{S}
    , e.g. sell
    ETHETH
    to buy
    DAIDAI
    .
The table below provides the theoretical prices at which a trader can go long or short a forward:
Theoretical short price
Theoretical long price
Pth,S=SS(1+rQ,l1+rB,b)TP_{th,S}=S_{S}*{ \bigg( \dfrac{1+r_{Q,l}}{1+r_{B,b}} \bigg) }^T
Pth,L=SL(1+rQ,b1+rB,l)TP_{th,L}=S_{L}*{ \bigg( \dfrac{1+r_{Q,b}}{1+r_{B,l}} \bigg) }^T
It could be noticed that, the tighter the spread between the borrowing and lending rates and the tighter the spread on the spot price then the tighter the spread between the forward prices to go long and short.

Example

Let's consider a contract on ETHDAI expiring in 3 months (
T=0.25T=0.25
) :
  • Given one could borrow DAI at a yearly fixed rate of
    rQ,b=10.10%r_{Q,b}=10.10\%
    ​, lend ETH at a yearly fixed rate
    rB,l=2.90%r_{B,l}=2.90\%
    and buy ETH on the spot market at
    SL=100.10S_{L}=100.10
    , the price to go long on 1 forward would be:
Pth,L=100.10(1+0.10101+0.0290)0.25=101.81DAIP_{th,L}=100.10*{ \bigg( \dfrac{1+0.1010}{1+0.0290} \bigg) }^{0.25}=101.81 \: DAI
  • Given one could borrow ETH at a yearly fixed rate of
    rB,b=3.10%r_{B,b}=3.10\%
    ​, lend DAI at a yearly fixed rate of
    rQ,l=9.90%r_{Q,l}=9.90\%
    and sell ETH on the spot market at
    SS=99.90S_{S}=99.90
    , the price to go short would be:
Pth,S=99.90(1+0.09901+0.0310)0.25=101.51DAIP_{th,S}=99.90*{ \bigg( \dfrac{1+0.0990}{1+0.0310} \bigg) }^{0.25}=101.51\: DAI

Price equilibrium

If the price of a forward is above or under the theoretical formula then an arbitrage condition arises. Since market participants can take advantage of this "free lunch", by using significant amounts of money, prices are brought back to their theoretical formulas. In the examples below, where the same numerical assumptions as in the example above are kept, the two arbitrages to bring the price at equilibrium are presented.

Forward price above
Pth,SP_{th,S}

Let's say the price to sell 1 forward is
110.00DAI110.00 \: DAI
instead of
Pth,S=101.51DAIP_{th,S}=101.51 \: DAI
. An arbitrageur could:
  • Borrow now
    10000.00DAI10000.00 \: DAI
    . In 3 months
    10000(1.11)0.25=10243.46DAI10000*{(1.11)}^{0.25}=10243.46 \: DAI
    need to be given back.
  • Convert now those
    10000DAI10000\: DAI
    to
    10000/100.10=99.90ETH10000 /100.10=99.90\: ETH
    .
  • Invest now the
    99.90ETH99.90\: ETH
    to receive
    99.90(1.029)0.25=100.62ETH99.90*{(1.029)}^{0.25}=100.62 \: ETH
    ​ in 3 months.
  • Sell now a forward contract for a quantity of
    100.62ETH100.62 \: ETH
    for a price of
    100.62110=11067.83DAI100.62*110=11067.83 \: DAI
    .​
  • Deliver the
    100.62ETH100.62 \: ETH
    at expiry to get
    11067.83DAI11067.83 \: DAI
    for a cost of
    10243.46DAI10243.46 \: DAI
    , locking-in a risk-free profit of
    824.37DAI824.37\:DAI
    .
This arbitrage could be done with much bigger amounts and would disappear when the forward price is brought back to its theoretical pricing.

Forward price under
Pth,LP_{th,L}

Let's say the price to buy 1 forward is
90.00DAI90.00 \: DAI
instead of
Pth,L=101.81DAIP_{th,L}=101.81 \: DAI
. An arbitrageur could:
  • Borrow now
    100ETH100 \:ETH
    . In 3 months
    100(1.029)0.25=100.77ETH100*{(1.029)}^{0.25}=100.77 \: ETH
    ​ need to be given back.
  • Convert now those
    100ETH100\: ETH
    to
    10099.9=9990DAI100*99.9=9990 \: DAI
    .
  • Invest now those DAIs to receive
    100000(1.099)0.25=10228.57DAI100000*{(1.099)}^{0.25}=10228.57\: DAI
    in 3 months.​
  • Buy now a forward contract for a quantity of
    100.77ETH100.77 \: ETH
    for a price of
    100.7790=9975.85DAI100.77*90=9975.85 \:DAI
    .
  • At expiry, the trader would receive
    10228.57DAI10228.57\: DAI
    from lending and use
    9975.85DAI9975.85 \:DAI
    to buy the
    100.77ETH100.77 \: ETH
    needed to reimburse the debt, locking-in a risk-free profit of
    252.72DAI252.72\:DAI
    .
This arbitrage could be done with much bigger amounts and would disappear when the forward price is brought back to its theoretical pricing.