Package: ragtop 1.1.1

Brian K. Boonstra
ragtop: Pricing Equity Derivatives with Extensions of Black-Scholes
Algorithms to price American and European equity options, convertible bonds and a variety of other financial derivatives. It uses an extension of the usual Black-Scholes model in which jump to default may occur at a probability specified by a power-law link between stock price and hazard rate as found in the paper by Takahashi, Kobayashi, and Nakagawa (2001) <doi:10.3905/jfi.2001.319302>. We use ideas and techniques from Andersen and Buffum (2002) <doi:10.2139/ssrn.355308> and Linetsky (2006) <doi:10.1111/j.1467-9965.2006.00271.x>.
Authors:
ragtop_1.1.1.tar.gz
ragtop_1.1.1.tar.gz(r-4.5-noble)ragtop_1.1.1.tar.gz(r-4.4-noble)
ragtop_1.1.1.tgz(r-4.4-emscripten)ragtop_1.1.1.tgz(r-4.3-emscripten)
ragtop.pdf |ragtop.html✨
ragtop/json (API)
NEWS
# Install 'ragtop' in R: |
install.packages('ragtop', repos = 'https://cloud.r-project.org') |
- TSLAMarket - Market information snapshot for TSLA options
Conda:r-ragtop-1.1.1(2025-03-25)
This package does not link to any Github/Gitlab/R-forge repository. No issue tracker or development information is available.
Last updated 5 years agofrom:41384b6fd7. Checks:1 OK, 2 WARNING. Indexed: yes.
Target | Result | Latest binary |
---|---|---|
Doc / Vignettes | OK | Mar 29 2025 |
R-4.5-linux | WARNING | Mar 29 2025 |
R-4.4-linux | WARNING | Mar 29 2025 |
Exports:accelerated_coupon_valueadjust_for_dividendsamericanamerican_implied_volatilityAmericanOptionblack_scholes_on_term_structuresblackscholesCALLCallableBondconstruct_tridiagonalsConvertibleBondcoupon_value_at_exerciseCouponBonddetail_from_AnnivDatesEquityOptionequivalent_bs_vola_to_jumpequivalent_jump_vola_to_bsEuropeanOptionfind_present_valuefit_to_option_marketfit_to_option_market_dffit_variance_cumulationform_present_value_gridGridPricedInstrumentimplied_jump_process_volatilityimplied_volatilitiesimplied_volatilities_with_rates_structimplied_volatilityimplied_volatility_with_term_structintegrate_pdeis.blankiterate_grid_from_timesteppenalty_with_intensity_linkprice_with_intensity_linkPUTQuandl_df_fcn_USTQuandl_df_fcn_UST_rawspot_to_df_fcntake_implicit_timesteptime_adj_dividendsTIME_RESOLUTION_FACTORTIME_RESOLUTION_SIGNIF_DIGITSvariance_cumulation_from_volsZeroCouponBond
Dependencies:formatRfutile.loggerfutile.optionslambda.rlimSolvelpSolveMASSquadprog
Citation
To cite package ‘ragtop’ in publications use:
Boonstra BK (2020). ragtop: Pricing Equity Derivatives with Extensions of Black-Scholes. R package version 1.1.1, https://CRAN.R-project.org/package=ragtop.
ATTENTION: This citation information has been auto-generated from the package DESCRIPTION file and may need manual editing, see ‘help("citation")’.
Corresponding BibTeX entry:
@Manual{, title = {ragtop: Pricing Equity Derivatives with Extensions of Black-Scholes}, author = {Brian K. Boonstra}, year = {2020}, note = {R package version 1.1.1}, url = {https://CRAN.R-project.org/package=ragtop}, }
Readme and manuals
Description And Installation
ragtop prices equity derivatives using variants of the famous Black-Scholes model, with special attention paid to the case of American and European exercise options and to convertible bonds. To install the development version, use the command
devtools::install_github('brianboonstra/ragtop')
Usage
Basic Usage
You can price american and european exercise options, either individually, or in groups. In the simplest case that looks like this for European exercise
blackscholes(c(CALL, PUT), S0=100, K=c(100,110), time=0.77, r = 0.06, vola=0.20)
#> $Price
#> [1] 9.326839 9.963285
#>
#> $Delta
#> [1] 0.6372053 -0.5761608
#>
#> $Vega
#> [1] 32.91568 34.36717
and like this for American exercise
american(PUT, S0=100, K=c(100,110), time=0.77, const_short_rate = 0.06, const_volatility=0.20)
#> A100_281_0 A110_281_0
#> 5.24386 11.27715
Including Term Structures
There are zillions of implementations of the Black-Scholes formula out there, and quite a few simple trees as well. One thing that makes ragtop a bit more useful than most other packages is that it treats dividends and term structures without too much pain. Assume we have some nontrivial term structures and dividends
## Dividends
divs = data.frame(time=seq(from=0.11, to=2, by=0.25),
fixed=seq(1.5, 1, length.out=8),
proportional = seq(1, 1.5, length.out=8))
## Interest rates
disct_fcn = ragtop::spot_to_df_fcn(data.frame(time=c(1, 5, 10),
rate=c(0.01, 0.02, 0.035)))
## Default intensity
disc_factor_fcn = function(T, t, ...) {
exp(-0.03 * (T - t)) }
surv_prob_fcn = function(T, t, ...) {
exp(-0.07 * (T - t)) }
## Variance cumulation / volatility term structure
vc = variance_cumulation_from_vols(
data.frame(time=c(0.1,2,3),
volatility=c(0.2,0.5,1.2)))
paste0("Cumulated variance to 18 months is ", vc(1.5, 0))
[1] "Cumulated variance to 18 months is 0.369473684210526"
then we can price vanilla options
black_scholes_on_term_structures(
callput=TSLAMarket$options[500,'callput'],
S0=TSLAMarket$S0,
K=TSLAMarket$options[500,'K'],
discount_factor_fcn=disct_fcn,
time=TSLAMarket$options[500,'time'],
variance_cumulation_fcn=vc,
dividends=divs)
$Price
[1] 62.55998
$Delta
[1] 0.7977684
$Vega
[1] 52.21925
American exercise options
american(
callput = TSLAMarket$options[400,'callput'],
S0 = TSLAMarket$S0,
K=TSLAMarket$options[400,'K'],
discount_factor_fcn=disct_fcn,
time = TSLAMarket$options[400,'time'],
survival_probability_fcn=surv_prob_fcn,
variance_cumulation_fcn=vc,
dividends=divs)
A360_137_2
2.894296
We can also find volatilities of European exercise options
implied_volatility_with_term_struct(
option_price=19, callput = PUT,
S0 = 185.17,K=182.50,
discount_factor_fcn=disct_fcn,
time = 1.12,
survival_probability_fcn=surv_prob_fcn,
dividends=divs)
[1] 0.1133976
as well as American exercise options
american_implied_volatility(
option_price=19, callput = PUT,
S0 = 185.17,K=182.50,
discount_factor_fcn=disct_fcn,
time = 1.12,
survival_probability_fcn=surv_prob_fcn,
dividends=divs)
[1] 0.113407
More Sophisticated Calibration
You can also find more complete calibration routines in ragtop. See the vignette or the documentation for fit_variance_cumulation and fit_to_option_market.
Technical Documentation
The source for the technical paper is in this repository. You can also find the pdf here