QuantLib Swaption Hacim Küpü

Aug 27 2020

Şu anda QuantLib / Python altında bir volatilite küpü kullanarak takasları fiyatlandırmaya çalışıyorum ql.SwaptoinVolCube2. Belgelerden:

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

Şu anda iki takas endeksinin bunda hangi rolü oynadığını merak ediyorum.

Bunun ATM hesaplaması ve ATM'ye karşı grev spreadlerinin hesaplanmasıyla bir ilgisi olduğunu varsayıyorum, ancak bunun için neden iki endeks gerektirdiğini anlamıyorum .

Herhangi bir işaret için teşekkürler!

Yanıtlar

3 DavidDuarte Aug 27 2020 at 04:00

Swaption vol cube temelde bir dizi yüzey katmanıdır, her katman belirli bir greve atıfta bulunur ve aynı temelin opsiyon bitişleri ve takas vade kombinasyonları için vols'a sahiptir: belirli kurallarla bir swap. Temelde swapIndexBase,.

Ancak, daha kısa vadeler için sözleşmeler genellikle farklıdır. Örneğin, Euro'da, 1Y'den büyük vadeler için 6M Euribor'a ve 1Y tenor için 3M Euribor'a karşı takasınız var. shortSwapIndexBaseAltında yatan şu saniye tanımlamak için kullanılır.

Okunan metinlerle ilgili örnek bu açıdan daha iyi olabilir.