程式
QuantLib Swaption Vol Cube
我目前正在嘗試使用波動率立方體為 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 上的範例在這方面可能會更好。