RQuantLib возвращается Vega, Theta, Rho, DivRho NA
Я вызываю метод AmericanOption RQuantLib, чтобы получить греков как
print( AmericanOption(type = 'call',
underlying = 100,
strike = 100,
dividendYield = 0.02,
riskFreeRate = 0.0023,
maturity = 0.5,
volatility= 0.4,
timeSteps = 150,
gridPoints = 149,
engine="CrankNicolson"))
по вышеуказанным параметрам мы получаем следующие краткие греки краткое изложение оценки для AmericanOption
value delta gamma vega theta rho divRho
10.8149 0.5429 0.0141 NA NA NA NA
Почему некоторые значения являются NA?
Я посылаю неправильные значения?
Какие изменения мне нужно, чтобы получить все допустимые значения?
1 ответ
Вы должны рассчитать оставшихся греков численно.
Чтобы добавить немного к ответу Дирка на аналогичный вопрос: по замыслу функции QuantLib (от которых зависит RQuantLib) возвращают только тех греков, которые можно вычислить дешево. Например, европейские опционы оцениваются через аналитическую формулу и могут возвращать всех греков, возвращая их производные (которые также задаются аналитической формулой и, следовательно, дешевы для расчета).
Вместо этого цена американского опциона рассчитывается с помощью метода конечных разностей, поэтому нет формулы для дифференциации. Механика симуляции позволяет легко вычислять и возвращать дельту и гамму, которые, как вы видели, возвращаются, но другие греки должны быть рассчитаны численно путем изменения входных данных и изменения цены опции; см. снова тему, связанную с ответом Дирка или записанным мною скринкастом. Это недешево и остается на усмотрение пользователя, который может оценить, какие греки рассчитать и с какой точностью.