QuantLib Swaption Vol Cube

Aug 27 2020

Tôi hiện đang cố gắng để swaptions giá dưới QuantLib / Python sử dụng một khối biến động sử dụng ql.SwaptoinVolCube2. Từ tài liệu:

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

Hiện tại, tôi đang băn khoăn không biết hai chỉ số hoán đổi có vai trò nào trong việc này?

Tôi cho rằng nó có liên quan gì đó đến việc tính toán ATM và spread-spread so với ATM, nhưng tôi không hiểu tại sao nó lại yêu cầu hai chỉ số cho việc này.

Cảm ơn cho bất kỳ gợi ý!

Trả lời

3 DavidDuarte Aug 27 2020 at 04:00

Khối lập phương hoán đổi về cơ bản là một loạt các lớp bề mặt, mỗi lớp đề cập đến một đòn đánh nhất định và có các khối lượng cho sự kết hợp của thời hạn tùy chọn và kỳ hạn hoán đổi của cùng một cơ sở: hoán đổi với các quy ước nhất định. Cơ bản đó được xác định bởi swapIndexBase.

Tuy nhiên, đối với các kỳ hạn ngắn hơn, các quy ước thường khác nhau. Ví dụ: bằng Euro, bạn có swap so với 6 triệu Euribor cho kỳ hạn> 1Y và hoán đổi so với Euribor 3M cho kỳ hạn 1Y. Các shortSwapIndexBaseđược sử dụng để xác định thứ hai này nằm bên dưới.

Ví dụ trên readthedocs có thể tốt hơn về mặt đó.