程式

QuantLib Swaption Vol Cube

  • August 27, 2020

我目前正在嘗試使用波動率立方體為 QuantLib/Python 下的掉期期權定價ql.SwaptoinVolCube2。從文件中:

optionTenors = ['1y', '2y', '3y']
swapTenors = [ '5Y', '10Y']
strikeSpreads = [ -0.01, 0.0, 0.01]
volSpreads = [
   [0.5, 0.55, 0.6],
   [0.5, 0.55, 0.6],
   [0.5, 0.55, 0.6],
   [0.5, 0.55, 0.6],
   [0.5, 0.55, 0.6],
   [0.5, 0.55, 0.6],
]

optionTenors = [ql.Period(tenor) for tenor in optionTenors]
swapTenors = [ql.Period(tenor) for tenor in swapTenors]
volSpreads = [[ql.QuoteHandle(ql.SimpleQuote(v)) for v in row] for row in volSpreads]

swapIndexBase = ql.EuriborSwapIsdaFixA(ql.Period(1, ql.Years), e6m_yts, ois_yts)
shortSwapIndexBase = ql.EuriborSwapIsdaFixA(ql.Period(1, ql.Years), e6m_yts, ois_yts)
vegaWeightedSmileFit = False

volCube = ql.SwaptionVolatilityStructureHandle(
   ql.SwaptionVolCube2(
       ql.SwaptionVolatilityStructureHandle(swaptionVolMatrix),
       optionTenors,
       swapTenors,
       strikeSpreads,
       volSpreads,
       swapIndexBase,
       shortSwapIndexBase,
       vegaWeightedSmileFit)
)

目前,我想知道這兩個掉期指數在其中扮演什麼角色?

我認為它與 ATM 和罷工價差與 ATM 的計算有關,但我不明白為什麼它需要兩個指數。

感謝您的任何指點!

互換交易量立方體基本上是一系列表面層,每一層都指一個給定的行使價,並具有用於期權到期和相同基礎互換期限組合的交易量:具有給定約定的互換。該底層證券由swapIndexBase.

然而,對於較短的期限,約定通常是不同的。例如,在歐元中,對於 > 1Y 的期限,您有掉期與 6M Euribor,對於 1Y 期限,您有掉期與 3M Euribor。shortSwapIndexBase用於辨識第二個底層證券。

readthedocs 上的範例在這方面可能會更好。

引用自:https://quant.stackexchange.com/questions/57639