Skip to content
All library documents

Why American Option Greeks Depend on the Pricing Engine

Article Quant Q&A · Author: pam

Summary

The document explains why an RQuantLib valuation of an American option can return a price while showing missing values for delta, gamma, vega, theta, rho, and dividend rho. The accepted answer attributes this to the selected pricing engine: the simplified function uses the Barone-Adesi-Whaley approximation by default, and that engine does not provide the Greeks in question.

The answer says a numerical engine such as Crank-Nicolson can provide at least delta, gamma, and vega. This illustrates that Greeks are not automatically available from every pricing method, even when the option price is. The excerpt does not give the RQuantLib syntax for selecting another engine, nor does it state that the numerical engine supplies every listed Greek. Users should consult the relevant package and QuantLib documentation for engine options and supported sensitivities before relying on a particular output.

Key ideas

  • A pricing engine can calculate an option value without exposing its sensitivities.
  • The default Barone-Adesi-Whaley engine described here does not return Greeks for American options.
  • The Crank-Nicolson numerical engine is identified as supporting at least delta, gamma, and vega.
  • The available Greeks depend on the chosen engine, so missing values do not by themselves mean the option price failed.

Tags

Full text
# RQuantlib not returning greeks for options


# RQuantlib not returning greeks for options












I do not manage to get Delta/Gamma/Vega/Theta using the simplified `AmericanOption` function from RQuantLib:

```
AmericanOption(
          type="call",
          underlying = 287.97,
          strike = 294,
          dividendYield = 0.0196 + 0.0028,
          riskFreeRate = 0.02185,
          maturity = 8 / 365,
          volatility = 0.156
)
```

Concise summary of valuation for `AmericanOption`:

```
value   delta  gamma   vega  theta    rho  divRho 
0.6897     NA     NA     NA     NA     NA      NA
```

## Answer by Andrew (score 3, accepted)

https://quant.stackexchange.com/a/47010

If you check the quantlib documentation you can find, that greeks for american options are only supported if you use a numerical pricing engine and not BAW (which is the default option).

Documentation: "Note that under the new pricing framework used in QuantLib, pricers do not provide analytics for all 'Greeks'. When “CrankNicolson” is selected, then at least delta, gamma and vega are available. With the default pricing engine of “BaroneAdesiWhaley”, no greeks are returned."

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.