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) возвращают только тех греков, которые можно вычислить дешево. Например, европейские опционы оцениваются через аналитическую формулу и могут возвращать всех греков, возвращая их производные (которые также задаются аналитической формулой и, следовательно, дешевы для расчета).

Вместо этого цена американского опциона рассчитывается с помощью метода конечных разностей, поэтому нет формулы для дифференциации. Механика симуляции позволяет легко вычислять и возвращать дельту и гамму, которые, как вы видели, возвращаются, но другие греки должны быть рассчитаны численно путем изменения входных данных и изменения цены опции; см. снова тему, связанную с ответом Дирка или записанным мною скринкастом. Это недешево и остается на усмотрение пользователя, который может оценить, какие греки рассчитать и с какой точностью.

Другие вопросы по тегам