QuantLib Swaption Vol Cube

Aug 27 2020

Ich versuche derzeit, Swaptions unter QuantLib/Python mit einem Volatilitätswürfel mit ql.SwaptoinVolCube2. Aus der Dokumentation:

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)
)

Aktuell frage ich mich, welche Rolle die beiden Swap-Indizes dabei spielen?

Ich nehme an, es hat etwas mit der Berechnung von ATM und Strike-Spreads vs. ATM zu tun, aber ich verstehe nicht, warum dafür zwei Indizes erforderlich sind.

Danke für jeden Hinweis!

Antworten

3 DavidDuarte Aug 27 2020 at 04:00

Der Swaption Vol Cube ist im Grunde eine Reihe von Oberflächenschichten, jede Schicht bezieht sich auf einen bestimmten Ausübungspreis und hat Vols für Kombinationen von Optionsverläufen und Swap-Laufzeiten desselben Basiswerts: ein Swap mit bestimmten Konventionen. Dieser Basiswert wird durch die definiert swapIndexBase.

Bei kürzeren Laufzeiten sind die Konventionen jedoch oft anders. In Euro haben Sie beispielsweise Swap vs. 6M Euribor für Laufzeiten > 1J und Swap vs. 3M Euribor für Laufzeiten von 1J. Der shortSwapIndexBasewird verwendet, um diesen zweiten Basiswert zu identifizieren.

Das Beispiel auf readthedocs könnte in dieser Hinsicht besser sein.