使用R中的RQuantlib将成熟时间(TTM)转换为白天转换

时间:2015-05-16 02:27:17

标签: r quantlib

我在R中使用RQuantlib包来计算隐含波动率。作为函数EuropeanOptionImpliedVolatility的输入,我使用TTM天数除以365.但如果我使用输出隐含波动率来计算使用手工制作的Black Scholes函数的期权价格,我会以不同的值结束。

我发现原因属于europeanOptionImpliedVolatilityEngine,它使用转换来转换输入小数年

int(maturity*360 + 0.5);

来源:RQuantlib github

因此,在某些情况下,这最终会将传递给C代码函数的TTM值移动1天,在我的情况下约有70%的数据被移位。

x=OptGreeks$TTM/365
y=floor(x*360+0.5)
z=OptGreeks$TTM - y
table(z)

输出

z
   0    1 
2636 4910 

任何想法为什么要这样做以及任何措施得到正确的日子(TTM)而不是这个异常?希望有人听。

1 个答案:

答案 0 :(得分:1)

该函数应该可以扩展,以便人们可以选择日计数约定,如果您熟悉C ++并且可以修补和重新编译RQuantLib,那就是要走的路。

与此同时,我担心解决问题的方法是让你使用days / 360。这意味着您还必须调整输入率和输出波动率;你想要满足的关系是r 360 t 360 = r 365 t 365 (你将从中得到)得到r 360 作为输入,给定你的r 365 )和sigma 2 360 t 360 = sigma 2 365 t 365 (从中你将获得sigma 365 给出返回sigma 360 )。