QuantLib Swaption Vol Cube
Aug 27 2020
나는 현재 사용 QuantLib / 파이썬에서 가격 스왑 션에 노력하고 변동성 큐브를 사용하여 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의 계산과 관련이 있다고 가정하지만 왜 두 개의 인덱스가 필요한지 이해하지 못합니다 .
어떤 조언을 해주셔서 감사합니다!
답변
3 DavidDuarte Aug 27 2020 at 04:00
swaption vol 큐브는 기본적으로 일련의 표면 레이어이며, 각 레이어는 주어진 스트라이크를 참조하고 옵션 만료 및 동일한 기본 스왑 테너의 조합에 대한 vols를 가지고 있습니다. 그 기본은 swapIndexBase.
그러나 만기가 짧은 경우 규칙이 다른 경우가 많습니다. 예를 들어, 유로에서는 테너> 1Y에 대해 스왑 대 6M Euribor가 있고 1Y 테너에 대해 스왑 대 3M Euribor가 있습니다. 는 shortSwapIndexBase기본이 두 번째를 식별하는 데 사용됩니다.
readthedocs의 예제는 그 점에서 더 좋을 수 있습니다.