IndexesIQ Logo

IndexesIQ — Free Educational Platform for Index Investing

Explore the long-term risk and return characteristics of financial markets with free interactive tools.

Index Performance Risk & Correlations Derivative Strategies Long-Term Investing

Technical Appendix

Full formula reference for all calculations in the IndexesIQ app — fixed-income indexes, bond pricing, option pricing and barrier option formulas.

This appendix provides the technical details of the calculations used in the IndexesIQ app — covering derived fixed-income indexes, bond pricing, and the complete set of option pricing formulas including all barrier option variants.

Derived Fixed-Income Indexes

The IndexesIQ app uses time series of central bank rates and 2-year and 10-year treasury rates for different currencies as input. Two derived time series are calculated and can be plotted in the app.

Indexed Performance of Savings Accounts

The app shows benchmarks for average savings account performance in different currencies called Cash-USD+%, Cash-EUR+% etc. Average savings rates are not directly observable in the market; therefore, we use the following proxy derived from academic literature, which estimates the average savings rate \(AS_t\) as a combination of central bank rates \(CBR_t\) and 2-year treasury yields \(TR2Y_t\):

\[ AS_t = \max\!\left[5\,\text{bps},\; 0.7 \times (CBR_t - 75\,\text{bps}) + 0.3 \times TR2Y_t \right] \]

This calculation is a practitioner simplification consistent with the empirical literature on deposit rate pass-through (Drechsler, Savov and Schnabl 2017; Polo 2021; IMF WP 2024/009), which consistently finds deposit betas below 1, asymmetric adjustment, and compressed pass-through near the zero lower bound.

The total return index is then accrued over time. The Cash+% time series is calculated as:

\[ \text{Cash+}\%(t+\Delta t) = \text{Cash+}\%(t) \times \left(1 + \Delta t \times AS_t \right) \]

where \(\Delta t\) is measured in fractions of years. The savings rate \(AS_t\) is updated monthly.

Total Return Treasury Indexes

IndexesIQ calculates total return indexes that replicate the performance of a portfolio that invests in treasuries at constant maturity. At each monthly rebalancing the index value is invested in a par treasury bond of maturity \(M\) at the prevailing yield. During the following month, the index value is calculated as the dirty price (including accrued interest) of the bond using the ISMA bond price formula below, evaluated at the treasury yield \(y_t\) at each point in time. At the next monthly rebalancing, the bond is sold at the dirty price and reinvested in a new treasury par bond at maturity \(M\).

These total return indexes are named using the respective two-letter country symbol and maturity with the suffix TR. For example, the total return index tracking 10Y US Treasuries is called US10Y TR. For context on the underlying government bond markets, see the sovereign debt guide.

Derivative Strategy Simulations

The simulations of derivative strategies are entirely based on the well-known Black & Scholes (1973) framework, as well as standard pricing formulas for the bond components of structured products. For a conceptual introduction to how these formulas are used in practice, see Chapter 3 of the Derivative Academy.

Pricing of Bonds

The bond price used is the clean price calculated according to the ISMA (former AIBD) formula:

\[ P = \frac{1}{(1 + y/f)^{N+t}} + \sum_{i=1}^N \frac{c/f}{(1+y/f)^{i+t}} - (1-t)\,c/f \]
SymbolDescription
PMTM-price = clean price of the bond
NNumber of outstanding coupon payments
cCoupon in % p.a.
fFrequency = coupon frequency in times per annum
yCurrentYield = applicable yield to maturity in % p.a.
tTime till next coupon payment as fraction of the coupon period

The accrued interest \(\text{Accrual} = (1-t)\,c/f\) is accrued throughout the product's lifetime. When you use the time machine function in the derivative window, the value of the product will increase with the accrued interest.

Pricing of Options

Option prices are calculated using continuous compounding in the short rate and dividend yield.

European and Asian Options — Black & Scholes

\[ d_1 = \frac{\ln(S/X) + (r - q + \sigma^2/2)\,T}{\sigma\sqrt{T}}, \qquad d_2 = d_1 - \sigma\sqrt{T} \] \begin{align} C_{BS} &= S e^{-qT} N(d_1) - X e^{-rT} N(d_2) \\ P_{BS} &= -S e^{-qT} N(-d_1) + X e^{-rT} N(-d_2) \end{align}
SymbolDescription
SUnderlyingPrice
XStrike
TTime to maturity
rCurrentShortRate
qDivYield
σVol (volatility)
N(·)Standard normal cumulative distribution function

Asian Options

Asian options use the Black & Scholes formulas above with modified parameters:

\[ q = \tfrac{1}{2}\!\left(\text{CurrentShortRate} + \text{DivYield} + \frac{\text{Vol}^2}{6}\right), \qquad \sigma = \frac{\text{Vol}}{\sqrt{3}} \]

American Options

American options are priced using the Cox-Rubinstein binomial model (Hull 2005).

Binary Options

\[\begin{aligned} C_{bin} &= e^{-rT} N(d_2) \\ P_{bin} &= e^{-rT} N(-d_2) \end{aligned}\]
Barrier Options

The following variables are used for barrier option pricing, in addition to the standard Black & Scholes variables. For a conceptual introduction to barrier options, see Chapter 3 of the Derivative Academy.

SymbolDescription
HBarrier
hBarrierHit (boolean: yes or no)
RRebate

Auxiliary variables

\[\begin{aligned} m &= \frac{r - q - \sigma^2/2}{\sigma^2} \\ \lambda &= \frac{r - q + \sigma^2/2}{\sigma^2} \\ \lambda_2 &= \sqrt{m^2 + 2(r-q)/\sigma^2} \\ y &= \frac{\ln(H^2/SX)}{\sigma\sqrt{T}} + \lambda\sigma\sqrt{T} \\ x_1 &= \frac{\ln(S/H)}{\sigma\sqrt{T}} + \lambda\sigma\sqrt{T} \\ y_1 &= \frac{\ln(H/S)}{\sigma\sqrt{T}} + \lambda\sigma\sqrt{T} \\ x_2 &= \frac{\ln(S/H)}{\sigma\sqrt{T}} + (1+m)\sigma\sqrt{T} \\ y_2 &= \frac{\ln(H/S)}{\sigma\sqrt{T}} + (1+m)\sigma\sqrt{T} \\ z &= \frac{\ln(H/S)}{\sigma\sqrt{T}} + \lambda_2\sigma\sqrt{T} \end{aligned}\]

Rebate formulas

\[\begin{aligned} \text{UpInRebate} &= Re^{-rT}\!\left[N(-x_2+\sigma\sqrt{T}) - (H/S)^{2m}N(-y_2+\sigma\sqrt{T})\right] \\ \text{DownInRebate} &= Re^{-rT}\!\left[N(x_2-\sigma\sqrt{T}) - (H/S)^{2m}N(y_2-\sigma\sqrt{T})\right] \\ \text{UpOutRebate} &= R\!\left[(H/S)^{m+\lambda_2}N(-z) + (H/S)^{m-\lambda_2}N(-z+2\lambda_2\sigma\sqrt{T})\right] \\ \text{DownOutRebate} &= R\!\left[(H/S)^{m+\lambda_2}N(z) + (H/S)^{m-\lambda_2}N(z-2\lambda_2\sigma\sqrt{T})\right] \end{aligned}\]

Barrier option pricing formulas — Calls

Down-knock-in call If \(S \le H\) or \(h=\text{true}\): \(C = C_{BS}\)

Else if \(H \le X\): \(C = Se^{-qT}(H/S)^{2\lambda}N(y) - Xe^{-rT}(H/S)^{2\lambda-2}N(y-\sigma\sqrt{T}) + \text{DownInRebate}\)

Else if \(H > X\): \(C = C_{BS} - \bigl[SN(x_1)e^{-qT} - Xe^{-rT}N(x_1-\sigma\sqrt{T}) - Se^{-qT}(H/S)^{2\lambda}N(y_1) + Xe^{-rT}(H/S)^{2\lambda-2}N(y_1-\sigma\sqrt{T})\bigr] + \text{DownInRebate}\)
Down-knock-out call If \(S \le H\) or \(h=\text{true}\): \(C = Re^{-rT}\)

Else if \(H \le X\): \(C = C_{BS} - \bigl[Se^{-qT}(H/S)^{2\lambda}N(y) - Xe^{-rT}(H/S)^{2\lambda-2}N(y-\sigma\sqrt{T})\bigr] + \text{DownOutRebate}\)

Else if \(H > X\): \(C = SN(x_1)e^{-qT} - Xe^{-rT}N(x_1-\sigma\sqrt{T}) - Se^{-qT}(H/S)^{2\lambda}N(y_1) + Xe^{-rT}(H/S)^{2\lambda-2}N(y_1-\sigma\sqrt{T}) + \text{DownOutRebate}\)
Up-knock-out call If \(S \ge H\) or \(h=\text{true}\): \(C = Re^{-rT}\)

Else if \(H \le X\): \(C = \text{UpOutRebate}\)

Else if \(H > X\): \(C = C_{BS} - \bigl[SN(x_1)e^{-qT} - Xe^{-rT}N(x_1-\sigma\sqrt{T}) - Se^{-qT}(H/S)^{2\lambda}(N(-y)-N(-y_1)) + Xe^{-rT}(H/S)^{2\lambda-2}(N(-y+\sigma\sqrt{T})-N(-y_1+\sigma\sqrt{T}))\bigr] + \text{UpOutRebate}\)
Up-knock-in call If \(S \ge H\) or \(h=\text{true}\): \(C = C_{BS}\)

Else if \(H \le X\): \(C = C_{BS} + \text{UpInRebate}\)

Else if \(H > X\): \(C = SN(x_1)e^{-qT} - Xe^{-rT}N(x_1-\sigma\sqrt{T}) - Se^{-qT}(H/S)^{2\lambda}(N(-y)-N(-y_1)) + Xe^{-rT}(H/S)^{2\lambda-2}(N(-y+\sigma\sqrt{T})-N(-y_1+\sigma\sqrt{T})) + \text{UpInRebate}\)

Barrier option pricing formulas — Puts

Down-knock-in put If \(S \le H\) or \(h=\text{true}\): \(P = P_{BS}\)

Else if \(H > X\): \(P = P_{BS} + \text{DownInRebate}\)

Else if \(H \le X\): \(P = -SN(-x_1)e^{-qT} + Xe^{-rT}N(-x_1+\sigma\sqrt{T}) + Se^{-qT}(H/S)^{2\lambda}(N(y)-N(y_1)) - Xe^{-rT}(H/S)^{2\lambda-2}(N(y-\sigma\sqrt{T})-N(y_1-\sigma\sqrt{T})) + \text{DownInRebate}\)
Down-knock-out put If \(S \le H\) or \(h=\text{true}\): \(P = Re^{-rT}\)

Else if \(H > X\): \(P = \text{DownOutRebate}\)

Else if \(H \le X\): \(P = P_{BS} - \bigl[-SN(-x_1)e^{-qT} + Xe^{-rT}N(-x_1+\sigma\sqrt{T}) + Se^{-qT}(H/S)^{2\lambda}(N(y)-N(y_1)) - Xe^{-rT}(H/S)^{2\lambda-2}(N(y-\sigma\sqrt{T})-N(y_1-\sigma\sqrt{T}))\bigr] + \text{DownOutRebate}\)
Up-knock-out put If \(S \ge H\) or \(h=\text{true}\): \(P = Re^{-rT}\)

Else if \(H \ge X\): \(P = P_{BS} - \bigl[-Se^{-qT}(H/S)^{2\lambda}N(-y) + Xe^{-rT}(H/S)^{2\lambda-2}N(-y+\sigma\sqrt{T})\bigr] + \text{UpOutRebate}\)

Else if \(H < X\): \(P = -SN(-x_1)e^{-qT} + Xe^{-rT}N(-x_1+\sigma\sqrt{T}) + Se^{-qT}(H/S)^{2\lambda}N(-y_1) - Xe^{-rT}(H/S)^{2\lambda-2}N(-y_1+\sigma\sqrt{T}) + \text{UpOutRebate}\)
Up-knock-in put If \(S \ge H\) or \(h=\text{true}\): \(P = P_{BS}\)

Else if \(H \ge X\): \(P = -Se^{-qT}(H/S)^{2\lambda}N(-y) + Xe^{-rT}(H/S)^{2\lambda-2}N(-y+\sigma\sqrt{T}) + \text{UpInRebate}\)

Else if \(H < X\): \(P = P_{BS} - \bigl[-SN(-x_1)e^{-qT} + Xe^{-rT}N(-x_1+\sigma\sqrt{T}) + Se^{-qT}(H/S)^{2\lambda}N(-y_1) - Xe^{-rT}(H/S)^{2\lambda-2}N(-y_1+\sigma\sqrt{T})\bigr] + \text{UpInRebate}\)
Literature References

For educational purposes only. Not investment advice.