QuantLib Swaption Vol Cube

Aug 27 2020

Obecnie próbuję wycenić swapy w ramach QuantLib / Python przy użyciu kostki zmienności przy użyciu ql.SwaptoinVolCube2. Z dokumentacji:

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

Obecnie zastanawiam się, jaką rolę odgrywają w tym dwa indeksy swapowe?

Zakładam, że ma to coś wspólnego z obliczaniem ATM i spreadów strajkowych względem bankomatu, ale nie rozumiem, dlaczego wymaga to dwóch wskaźników.

Dzięki za wskazówki!

Odpowiedzi

3 DavidDuarte Aug 27 2020 at 04:00

Kostka objętości zamiany jest w zasadzie serią warstw powierzchniowych, każda warstwa odnosi się do danego wybicia i ma objętość dla kombinacji wygasania opcji i okresów wymiany tego samego instrumentu bazowego: zamiana z określonymi konwencjami. Ten instrument bazowy jest zdefiniowany przez swapIndexBase.

Jednak w przypadku krótszych terminów zapadalności konwencje są często inne. Na przykład w euro masz zamianę w porównaniu z 6-miesięcznym Euriborem dla tenorów> 1Y i swap z 3-miesięcznym Euriborem dla 1-letniego tenoru. shortSwapIndexBaseSłuży do identyfikacji tego drugiego bazowego.

Przykład na readthedoc mógłby być lepszy pod tym względem.