| Title: | Extracts Risk Neutral Densities of Prices, Money Market Rates and Bond Yields from Fixed Income Options |
| Version: | 0.1.1 |
| Description: | Provides with parametric risk neutral densities and cumulative densities for futures prices on fixed-income products. It relies on options on Short Term Interest Rate futures contracts prices or options on bond futures contracts prices. It models the price of the underlying asset as a mixture of either two or three lognormal densities. It also brings new functions which provide with risk neutral densities and cumulative densities of the money market rate or the bond yield inferred from the futures contract's price, using the density of the futures price. The package leverages on the works of Melick, W. R. and Thomas, C. P. (1997) <doi:10.2307/2331318> and B. Bahra (1998) <doi:10.2139/ssrn.77429>. |
| License: | GPL-3 |
| Encoding: | UTF-8 |
| RoxygenNote: | 7.3.3 |
| Imports: | dplyr, ggplot2, lubridate, Rblpapi, scales, stats, tibble, tvm, utils, zoo |
| Suggests: | knitr, rmarkdown |
| VignetteBuilder: | knitr |
| NeedsCompilation: | no |
| Packaged: | 2026-03-15 17:35:38 UTC; William |
| Author: | William Arrata [aut, cre] |
| Maintainer: | William Arrata <william.arrata@gmail.com> |
| Repository: | CRAN |
| Date/Publication: | 2026-03-15 18:20:02 UTC |
bond_future_charac_bbg
Description
bond_future_charac_bbg
Usage
bond_future_charac_bbg(bbg_tickers)
Arguments
bbg_tickers |
a vector of Bloomberg tickers, in character format |
Value
for each bond future contract, provided it has a Cheapest-to-Deliver Bond, the maturity date of the futures contract, in Date format, its currency in character format, the conversion factor assigned by the exchange to the Cheapest-to-Deliver Bond of the futures contract in numeric format, the maturity date of the CtD Bond in Date format, the coupon rate of the CtD Bond in numeric format, the frequency of coupon payment of the CtD Bond in character format, the day count convention of the CtD Bond in character format
Examples
## Not run:
bond_future_charac_bbg(c("TYU24", "CNM6", "KAAH6", "IKM6", "OATU6"))
## End(Not run)
bond_future_price
Description
bond_future_price
Usage
bond_future_price(
call_prices,
call_strikes,
put_prices,
put_strikes,
nb_log,
r,
day_count_conv,
cot,
ctd_matu,
fut_price,
fut_matu,
option_matu,
start_date,
nationality = NA,
currency = NA
)
Arguments
call_prices |
a vector of call prices, in numeric format |
call_strikes |
a vector of call strikes attached to the call prices, in numeric format |
put_prices |
a vector of put prices, in numeric format |
put_strikes |
a vector of put strikes attached to the put prices, in numeric format |
nb_log |
a number for the number of lognormal densities in the lognormal mixture to model the futures contracts, either 2 or 3, in numeric format |
r |
a number for the riskfree discount rate whose maturity is equal to the option's maturity, in numeric format |
day_count_conv |
a number for the day count convention, 1 for ACT/ACT, 2 for ACT/360, 3 for ACT/365 and 4 for 30/360, in numeric format |
cot |
a number for the type of listing of the options, 1 for European options, 2 for American options quoted as futures and 3 for American options, in numeric format |
ctd_matu |
a date for the maturity date of the Cheapest-to-Deliver Bond in the basket of deliverable bonds of the futures contract, in Date format |
fut_price |
a number for the futures contract price on calibration date, in numeric format |
fut_matu |
a date for the maturity date of the futures contract, in Date format |
option_matu |
a date for the maturity date of the options, in Date format |
start_date |
a date for the observation date, in Date format |
nationality |
a character for the nationality of the issuer of the bond in the futures contract underlying the option, in character format (NA by default) |
currency |
a character for the currency in which the futures contract and the options are traded, in character format (NA by default) |
Value
the mean and standard deviation of each lognormal density in the mixture and the weight on the first density (for a mixture of 2) or on the first 2 densities (for a mixture of 3) in numeric format, a series of values for the futures contract's price at options maturity in numeric format, the probability density attached to each value of the futures contract's price in numeric format, the cumulative density attached to each value of the futures contract's price in numeric format, the type of convergence in numeric format with 0 indicating successful convergence, the mean, the standard deviation, the skewness and the kurtosis of the futures contract's prices distribution at option's maturity in numeric format, a plot of the RND of the futures prices, a plot of the CDF of the futures prices, quantiles of order 0.1%, 0.5%, 1%, 5%, 10%, 25%, 50%, 75%, 90%, 95%, 99%, 99.5% and 99.9% of the distribution of futures prices at options' maturity, in numeric format
Examples
bond_future_price(c(10.39,9.92,9.46,9.00,8.55,8.10,7.66,7.23,
6.81,6.39,5.98,5.58,5.20,4.82,4.46,4.10,3.76,3.44,3.13,2.83,2.56,
2.29,2.05,1.82,1.61,1.42,1.25,1.09,0.95,0.82,0.71,0.61,0.53,0.45,
0.38,0.33,0.28,0.23,0.20,0.17,0.14,0.12,0.10,0.08),
seq(106, 127.5, 0.5),
c(0.22,0.25,0.29,0.33,0.38,0.43,0.49,0.56,0.64,0.72,0.81,0.91,
1.03,1.15,1.29, 1.43,1.59,1.77,1.96,2.16,2.39,2.62,2.88,3.15,
3.44,3.75,4.08, 4.42,4.78,5.15,5.54,5.94,6.36,6.78,7.21,7.66,
8.11,8.56,9.03, 9.50,9.97,10.45,10.93,11.41),
seq(106, 127.5, 0.5),
2,
0.0344,
1,
3,
as.Date("2033-11-01"),
116.17,
as.Date("2024-12-10"),
as.Date("2024-11-22"),
as.Date("2024-06-14"),
"Italian",
"EUR")
ctd_bond_yield
Description
ctd_bond_yield
Usage
ctd_bond_yield(
call_prices,
call_strikes,
put_prices,
put_strikes,
nb_log,
r,
r_2,
day_count_conv,
cot,
conv_factor,
ctd_cp,
ctd_matu,
cp_f,
ctd_N,
sett,
fut_price,
fut_matu,
option_matu,
start_date,
nationality = NA,
currency = NA
)
Arguments
call_prices |
a vector of call prices, in numeric format |
call_strikes |
a vector of call strikes attached to the call prices, in numeric format |
put_prices |
a vector of put prices, in numeric format |
put_strikes |
a vector of put strikes attached to the put prices, in numeric format |
nb_log |
a number for the number of lognormal densities in the lognormal mixture to model the futures contracts, either 2 or 3, in numeric format |
r |
a number for the riskfree discount rate whose maturity is equal to the option's maturity, in numeric format |
r_2 |
a number for the riskfree discount rate whose maturity is equal to the futures contract's maturity, in numeric format |
day_count_conv |
a number for the day count convention, 1 for ACT/ACT, 2 for ACT/360, 3 for ACT/365 and 4 for 30/360, in numeric format |
cot |
a number for the type of listing of the options, 1 for European options, 2 for American options quoted as futures and 3 for American options, in numeric format |
conv_factor |
a number for the conversion factor assigned by the futures exchange to the Cheapest-to-Deliver Bond, in numeric format |
ctd_cp |
a number for the coupon rate of the Cheapest-to-Deliver Bond, in numeric format |
ctd_matu |
a date for the maturity date of the Cheapest-to-Deliver Bond in the basket of deliverable bonds of the futures contract, in Date format |
cp_f |
a number for the frequency of coupon payment of the Cheapest-to-Deliver Bond, in numeric format. Worth 1 if the frequency is annual and 0.5 if frequency is semi-annual |
ctd_N |
a number for the value of the principal of the Cheapest-to-Deliver Bond, in numeric format |
sett |
a number for the number of days between the ex-coupon date and the coupon payment date of the Cheapest-to-Deliver Bond, in numeric format |
fut_price |
a number for the futures contract price on calibration date, in numeric format |
fut_matu |
a date for the maturity date of the futures contract, in Date format |
option_matu |
a date for the maturity date of the options, in Date format |
start_date |
a date for the observation date, in Date format |
nationality |
a character for the nationality of the issuer of the bond in the futures contract underlying the option, in character format (NA by default) |
currency |
a character for the currency in which the futures contract and the options are traded, in character format (NA by default) |
Value
a series of values for the CtD Bond yield in numeric format, the probability density attached to each value of the CtD Bond yield in numeric format, the cumulative density attached to each value of the CtD Bond yield in numeric format, the type of convergence in numeric format with 0 indicating successful convergence, the mean, the standard deviation, the skewness and the kurtosis of the CtD Bond yields' distribution at options' maturity in numeric format, a plot of the RND of the CtD Bond yields, a plot of the CDF of the CtD Bond yields, quantiles of order 0.1%, 0.5%, 1%, 5%, 10%, 25%, 50%, 75%, 90%, 95%, 99%, 99.5% and 99.9% of the distribution of CtD Bond yields at options' maturity, in numeric format
Examples
ctd_bond_yield(c(10.39,9.92,9.46,9.00,8.55,8.10,7.66,7.23,
6.81,6.39,5.98,5.58,5.20,4.82,4.46,4.10,3.76,3.44,3.13,2.83,2.56,
2.29,2.05,1.82,1.61,1.42,1.25,1.09,0.95,0.82,0.71,0.61,0.53,0.45,
0.38,0.33,0.28,0.23,0.20,0.17,0.14,0.12,0.10,0.08),
seq(106, 127.5, 0.5),
c(0.22,0.25,0.29,0.33,0.38,0.43,0.49,0.56,0.64,0.72,0.81,0.91,
1.03,1.15,1.29, 1.43,1.59,1.77,1.96,2.16,2.39,2.62,2.88,3.15,
3.44,3.75,4.08, 4.42,4.78,5.15,5.54,5.94,6.36,6.78,7.21,7.66,
8.11,8.56,9.03, 9.50,9.97,10.45,10.93,11.41),
seq(106, 127.5, 0.5),
2,
0.0344,
0.035,
1,
3,
0.893,
0.0435,
as.Date("2033-11-01"),
0.5,
100,
2,
116.17,
as.Date("2024-12-10"),
as.Date("2024-11-22"),
as.Date("2024-06-14"),
"Italian",
"EUR")
stir_future_price
Description
stir_future_price
Usage
stir_future_price(
call_prices,
call_strikes,
put_prices,
put_strikes,
nb_log,
r,
day_count_conv,
cot,
fut_price,
fut_matu,
option_matu,
start_date,
ref_rate = NA,
currency = NA
)
Arguments
call_prices |
a vector of call prices, in numeric format |
call_strikes |
a vector of call strikes attached to the call prices, in numeric format |
put_prices |
a vector of put prices, in numeric format |
put_strikes |
a vector of put strikes attached to the put prices, in numeric format |
nb_log |
a number for the number of lognormal densities in the lognormal mixture to model the futures contracts, either 2 or 3, in numeric format |
r |
a number for the riskfree discount rate whose maturity is equal to the option's maturity, in numeric format |
day_count_conv |
a number for the day count convention, 1 for ACT/ACT, 2 for ACT/360, 3 for ACT/365 and 4 for 30/360, in numeric format |
cot |
a number for the type of listing of the options, 1 for European options, 2 for American options quoted as futures and 3 for American options, in numeric format |
fut_price |
a number for the futures contract price on calibration date, in numeric format |
fut_matu |
a date for the maturity date of the futures contract, in Date format |
option_matu |
a date for the maturity date of the options, in Date format |
start_date |
a date for the observation date, in Date format |
ref_rate |
a character for the name of the STIR, in character format (NA by default) |
currency |
a character for the currency in which the futures contract and the options are traded, in character format (NA by default) |
Value
the mean and standard deviation of each lognormal density in the mixture and the weight on the first density (for a mixture of 2) or on the first 2 densities (for a mixture of 3) in numeric format, a series of values for the futures contract's price at options maturity in numeric format, the probability density attached to each value of the futures contract's price in numeric format, the cumulative density attached to each value of the futures contract's price in numeric format, the type of convergence in numeric format with 0 indicating successful convergence, the mean, the standard deviation, the skewness and the kurtosis of the futures contract's prices distribution at option's maturity in numeric format, a plot of the RND of the futures prices, a plot of the CDF of the futures prices, quantiles of order 0.1%, 0.5%, 1%, 5%, 10%, 25%, 50%, 75%, 90%, 95%, 99%, 99.5% and 99.9% of the distribution of futures prices at options' maturity, in numeric format
Examples
stir_future_price( c(1.44500, 1.32000, 1.19750, 1.07500, 0.95750,
0.84250, 0.78750, 0.73250, 0.68000, 0.62750, 0.57750, 0.53000, 0.48500,
0.44000, 0.39750, 0.35750, 0.32000, 0.28500, 0.25250, 0.22250, 0.19500,
0.17000, 0.14750, 0.12750, 0.10750, 0.09250, 0.07750, 0.06500, 0.05500,
0.04500, 0.03750, 0.03000, 0.02500, 0.02000, 0.01500, 0.01250, 0.01000,
0.00750, 0.00500, 0.00500, 0.00250, 0.00250, 0.00250, 0.00250,
rep(0.00024, 47)),
c(seq(93.25, 93.875, 0.125), seq(93.9375, 98.8125, 0.0625),
seq(98.875, 99.5, 0.125)),
c(0.0025, 0.0050, 0.0075, 0.0125, 0.0175, 0.0300, 0.0350, 0.0425, 0.0525,
0.0625, 0.0750, 0.0900, 0.1050, 0.1225, 0.1425, 0.1650, 0.1900, 0.2175,
0.2450, 0.2775, 0.3125, 0.3500, 0.3875, 0.4300, 0.4725, 0.5175, 0.5675,
0.6150, 0.6675, 0.7200, 0.7750, 0.8300, 0.8850, 0.9425, 1.0025, 1.0625,
1.1225, 1.1825, 1.2425, 1.3050, 1.3675, 1.4300, 1.4925, 1.5550, 1.6175,
1.6800, 1.7425, 1.8050, 1.8675, 1.9300, 1.9925, 2.0550, 2.1175, 2.1800,
2.2425, 2.3050, 2.3675, 2.4300, 2.4925, 2.5550, 2.6175, 2.6800, 2.7425,
2.8050, 2.8675, 2.9300, 2.9925, 3.0550, 3.1175, 3.1800, 3.2425, 3.3050,
3.3675, 3.4300, 3.4925, 3.5550, 3.6175, 3.6800, 3.7425, 3.8050, 3.8675,
3.9300, 3.9925, 4.0550, 4.1175, 4.1800, 4.3050, 4.4300, 4.5550, 4.6800,
4.8050),
c(seq(93.25, 93.875, 0.125), seq(93.9375, 98.8125, 0.0625),
seq(98.875, 99.5, 0.125)),
2,
0.0537,
1,
3,
94.7,
as.Date("2024-02-29"),
as.Date("2024-02-25"),
as.Date("2023-12-18"),
"fed_fund_rate",
"USD")
stir_rate
Description
stir_rate
Usage
stir_rate(
call_prices,
call_strikes,
put_prices,
put_strikes,
nb_log,
r,
r_2,
day_count_conv,
cot,
fut_price,
fut_matu,
option_matu,
start_date,
ref_rate = NA,
currency = NA
)
Arguments
call_prices |
a vector of call prices, in numeric format |
call_strikes |
a vector of call strikes attached to the call prices, in numeric format |
put_prices |
a vector of put prices, in numeric format |
put_strikes |
a vector of put strikes attached to the put prices, in numeric format |
nb_log |
a number for the number of lognormal densities in the lognormal mixture to model the futures contracts, either 2 or 3, in numeric format |
r |
a number for the riskfree discount rate whose maturity is equal to the option's maturity, in numeric format |
r_2 |
a number for the riskfree discount rate whose maturity is equal to the futures contract's maturity, in numeric format |
day_count_conv |
a number for the day count convention, 1 for ACT/ACT, 2 for ACT/360, 3 for ACT/365 and 4 for 30/360, in numeric format |
cot |
a number for the type of listing of the options, 1 for European options, 2 for American options quoted as futures and 3 for American options, in numeric format |
fut_price |
a number for the futures contract price on calibration date, in numeric format |
fut_matu |
a date for the maturity date of the futures contract, in Date format |
option_matu |
a date for the maturity date of the options, in Date format |
start_date |
a date for the observation date, in Date format |
ref_rate |
a character for the name of the STIR, in character format (NA by default) |
currency |
a character for the currency in which the futures contract and the options are traded, in character format (NA by default) |
Value
a series of values for STIR rate in numeric format, the probability density attached to each value of the STIR rate in numeric format, the cumulative density attached to each value of the STIR rate in numeric format, the type of convergence in numeric format with 0 indicating successful convergence, the mean, the standard deviation, the skewness and the kurtosis of the STIR rates' distribution at options maturity in numeric format, a plot of the RND of the STIR rates, a plot of the CDF of the STIR rates, quantiles of order 0.1%, 0.5%, 1%, 5%, 10%, 25%, 50%, 75%, 90%, 95%, 99%, 99.5% and 99.9% of the distribution of STIR rates at options' maturity, in numeric format
Examples
stir_rate( c(1.44500, 1.32000, 1.19750, 1.07500, 0.95750,
0.84250, 0.78750, 0.73250, 0.68000, 0.62750, 0.57750, 0.53000, 0.48500,
0.44000, 0.39750, 0.35750, 0.32000, 0.28500, 0.25250, 0.22250, 0.19500,
0.17000, 0.14750, 0.12750, 0.10750, 0.09250, 0.07750, 0.06500, 0.05500,
0.04500, 0.03750, 0.03000, 0.02500, 0.02000, 0.01500, 0.01250, 0.01000,
0.00750, 0.00500, 0.00500, 0.00250, 0.00250, 0.00250, 0.00250,
rep(0.00024, 47)),
c(seq(93.25, 93.875, 0.125), seq(93.9375, 98.8125, 0.0625),
seq(98.875, 99.5, 0.125)),
c(0.0025, 0.0050, 0.0075, 0.0125, 0.0175, 0.0300, 0.0350, 0.0425,
0.0525, 0.0625, 0.0750, 0.0900, 0.1050, 0.1225, 0.1425, 0.1650, 0.1900,
0.2175, 0.2450, 0.2775, 0.3125, 0.3500, 0.3875, 0.4300, 0.4725, 0.5175,
0.5675, 0.6150, 0.6675, 0.7200, 0.7750, 0.8300, 0.8850, 0.9425, 1.0025,
1.0625, 1.1225, 1.1825, 1.2425, 1.3050, 1.3675, 1.4300, 1.4925, 1.5550,
1.6175, 1.6800, 1.7425, 1.8050, 1.8675, 1.9300, 1.9925, 2.0550, 2.1175,
2.1800, 2.2425, 2.3050, 2.3675, 2.4300, 2.4925, 2.5550, 2.6175, 2.6800,
2.7425, 2.8050, 2.8675, 2.9300, 2.9925, 3.0550, 3.1175, 3.1800, 3.2425,
3.3050, 3.3675, 3.4300, 3.4925, 3.5550, 3.6175, 3.6800, 3.7425, 3.8050,
3.8675, 3.9300, 3.9925, 4.0550, 4.1175, 4.1800, 4.3050, 4.4300, 4.5550,
4.6800, 4.8050),
c(seq(93.25, 93.875, 0.125), seq(93.9375, 98.8125, 0.0625),
seq(98.875, 99.5, 0.125)),
2,
0.0537,
0.0539,
1,
3,
94.7,
as.Date("2024-02-29"),
as.Date("2024-02-25"),
as.Date("2023-12-18"),
"fed_fund_rate",
"USD")