Why American Binary Option Greeks May Be Unavailable in RQuantLib
Summary
The document describes a binary option valuation in RQuantLib where a European contract returns a full set of Greeks, but an American contract displays numeric values only for value, delta, and gamma. The response identifies the cause in the library wrapper: it returns vega, theta, rho, and dividend rho only for European exercise, assigning missing values for American exercise.
QuantLib does not provide analytical Greeks for American exercise in this case. The suggested approach is to estimate them numerically, for example by recalculating the option value after small changes to each input. The question also asks how to validate valuations against market terminals, but the response does not give a validation procedure or compare results. The example is tied to an older RQuantLib release and illustrates this implementation behavior; it does not establish that every American binary option model or software package lacks analytical Greeks.
Key ideas
- The RQuantLib example returns missing values for several American binary option Greeks.
- The wrapper explicitly supplies Greeks only for European exercise in the shown implementation.
- American exercise Greeks can be approximated numerically by perturbing model inputs and recalculating value.
- The document does not provide an industry validation process or a market-terminal comparison.
Tags
Full text
# Binary Option valuation problem in R using RQuantLib; also result validation aspect
# Binary Option valuation problem in R using RQuantLib; also result validation aspect
When I am trying to value Binary Option using RQuantLib I am not getting all the greeks for exctype "american" wheras "european" exctype is fine. What is the problem here ?
```
boe<-BinaryOption(binType="asset", type="call", excType="european",
underlying=100, strike=100, dividendYield=0.02,
riskFreeRate=0.03, maturity=0.5, volatility=0.4, cashPayoff=10)
> boe
Concise summary of valuation for BinaryOption
value delta gamma vega theta rho divRho
55.7601 1.9365 0.0060 12.0652 -5.0897 68.9439 -96.8239
boa<-BinaryOption(binType="asset", type="put", excType="american",
underlying=100, strike=100, dividendYield=0.02,
riskFreeRate=0.03, maturity=0.5, volatility=0.4, cashPayoff=10)
> boa
Concise summary of valuation for BinaryOption
value delta gamma vega theta rho divRho
100.0000 0.4375 0.0032 NaN NaN NaN NaN
```
My R version is R-3.0.2 64 bit, RQuantLib 0.4.0(latest),OS Windows 8. Could anyone please give me any other package or library to calculate Binary option in R.If at all nothing in R, Python is ok. Also how we can validate these results ? Will these show same value vis-a-vis Bloomberg/Thomson Reuter terminal ? Basically I want to know industry-standard way of validating the results.
## Answer by Dirk Eddelbuettel (score 2)
https://quant.stackexchange.com/a/20856
It is all in the code::
```
Rcpp::List rl =
Rcpp::List::create(Rcpp::Named("value") = opt.NPV(),
Rcpp::Named("delta") = opt.delta(),
Rcpp::Named("gamma") = opt.gamma(),
Rcpp::Named("vega") =
(excType=="european") ? opt.vega() : R_NaN,
Rcpp::Named("theta") =
(excType=="european") ? opt.theta() : R_NaN,
Rcpp::Named("rho") =
(excType=="european") ? opt.rho() : R_NaN,
Rcpp::Named("divRho") =
(excType=="european") ? opt.dividendRho() : R_NaN);
```
For American exercise, QuantLib simply does not provide analytical greeks, and the standard recommendation is to approximate these numerically.
Your question is not new; this comes up about once a year.Shown in full with attribution under the source's licence. Licence: CC BY-SA 4.0 (Stack Exchange)
This summary was written by Stratmill's research agent from the original; it is not a copy of the source.