eqDividendCurveBuilder

语法

eqDividendCurveBuilder(referenceDate, termDates, method, [futPrices], [callPrices], [putPrices], [strikes], spot, discountCurve, dayCountConvention='Actual365', [curveName])

详情

构建权益类期权分红曲线。

参数

referenceDate DATE 类型标量,表示曲线的生成日期。

termDates DATE 类型向量,表示曲线的期限日期,要求严格单调递增,且大于 referenceDate

method STRING 类型标量,可选 “CallPutParity” 和 “FuturesPrice”:

  • method = “CallPutParity”,需要使用 callPricesputPricesstrikes

  • method = “FuturesPrice”,需要使用 futPrices

futPrices 可选参数,DOUBLE 类型向量,正数,表示标的期货合约价格。

callPrices 可选参数,DOUBLE 类型矩阵,正数,表示看涨期权的价格矩阵。

putPrices 可选参数,DOUBLE 类型矩阵,正数,表示看跌期权的价格矩阵。

strikes 可选参数,DOUBLE 类型矩阵,表示执行价,要求严格单调递增。

  • callPricesputPricesstrikes 三者形状一致且列数与 termDates 等长。

  • futPrices 也与 termDates 等长。

spot DOUBLE 类型标量,正数,表示标的的即期价格。

discountCurve MKTDATA 类型标量,一个 IrYieldCurve 对象,表示折现曲线。

dayCountConvention STRING 类型标量,表示计息日数惯例。可选值为:

  • "Actual365"(默认):实际/365

  • "Actual360":实际/360

  • "Thirty360US":US (NASD) 30/360

  • "Thirty360EU":欧洲 30/360

  • "ActualActualISMA":实际/实际(ISMA 规则)

  • "ActualActualISDA":实际/实际(ISDA 规则)

curveName 可选参数,STRING 类型标量,表示曲线名称。

返回值

一个 DividendCurve 类型对象。

例子

CallPutParity

referenceDate = 2019.07.08
spot = 2.924
termDates = [2019.07.24, 2019.08.28, 2019.09.25, 2019.12.25]
callPrices = matrix(
    [0.2806, 0.2326, 0.1861, 0.1424, 0.1016, 0.0698, 0.0457, 0.0281, 0.0098, 0.0038],
    [0.2586, 0.2186, 0.1814, 0.1506, 0.1204, 0.0959, 0.0752, 0.0440, 0.0255, 0.0140],
    [0.3202, 0.2801, 0.2417, 0.2068, 0.1754, 0.1474, 0.1234, 0.1030, 0.0697, 0.0465],
    [0.3731, 0.3366, 0.3032, 0.2721, 0.2441, 0.2182, 0.1935, 0.1717, 0.1337, 0.1030]
)
putPrices = matrix(
    [0.0023, 0.0044, 0.0072, 0.0131, 0.0239, 0.0409, 0.0660, 0.1000, 0.1803, 0.2760],
    [0.0189, 0.0284, 0.0413, 0.0589, 0.0796, 0.1047, 0.1346, 0.2031, 0.2835, 0.3760],
    [0.0240, 0.0340, 0.0456, 0.0604, 0.0785, 0.1004, 0.1234, 0.1545, 0.2202, 0.2964],
    [0.0534, 0.0675, 0.0836, 0.1020, 0.1233, 0.1465, 0.1712, 0.1986, 0.2593, 0.3277]
)
strikes = matrix(
    [2.65, 2.7, 2.75, 2.8, 2.85, 2.9, 2.95, 3, 3.1, 3.2],
    [2.65, 2.7, 2.75, 2.8, 2.85, 2.9, 2.95, 3, 3.1, 3.2],
    [2.65, 2.7, 2.75, 2.8, 2.85, 2.9, 2.95, 3, 3.1, 3.2],
    [2.65, 2.7, 2.75, 2.8, 2.85, 2.9, 2.95, 3, 3.1, 3.2]
)
discountCurveDict = {
    "mktDataType": "Curve",
    "curveType": "IrYieldCurve",
    "curveName": "CNY_FR_007",
    "referenceDate": referenceDate,
    "currency": "CNY",
    "dayCountConvention": "Actual365",
    "compounding": "Continuous",
    "interpMethod": "Linear",
    "extrapMethod": "Flat",
    "dates": [
        2019.07.10, 2019.07.16, 2019.10.09, 2020.01.09, 2020.04.09,
        2020.07.09, 2021.07.09, 2022.07.11, 2023.07.10, 2024.07.09,
        2026.07.09, 2029.07.09
    ],
    "values":[
        0.0145994, 0.0229076, 0.0253021, 0.0257565, 0.0259751,
        0.0260355, 0.0265336, 0.0272721, 0.0282024, 0.0290231,
        0.0304665, 0.0319855
    ]
}
discountCurve = parseMktData(discountCurveDict)
dividendCurve = eqDividendCurveBuilder(referenceDate, termDates, "CallPutParity", ,
    callPrices, putPrices, strikes, spot, discountCurve, "Actual365", "50ETF")
print(dividendCurve)

FuturesPrice

referenceDate = 2019.07.08
spot = 3050
termDates = [2019.07.24, 2019.08.28, 2019.09.25, 2019.12.25]
futPrices = [3080, 3090, 3100, 3110]
discountCurveDict = {
    "mktDataType": "Curve",
    "curveType": "IrYieldCurve",
    "curveName": "CNY_FR_007",
    "referenceDate": referenceDate,
    "currency": "CNY",
    "dayCountConvention": "Actual365",
    "compounding": "Continuous",
    "interpMethod": "Linear",
    "extrapMethod": "Flat",
    "dates": [
        2019.07.10, 2019.07.16, 2019.10.09, 2020.01.09, 2020.04.09,
        2020.07.09, 2021.07.09, 2022.07.11, 2023.07.10, 2024.07.09,
        2026.07.09, 2029.07.09
    ],
    "values":[
        0.0145994, 0.0229076, 0.0253021, 0.0257565, 0.0259751,
        0.0260355, 0.0265336, 0.0272721, 0.0282024, 0.0290231,
        0.0304665, 0.0319855
    ]
}
discountCurve = parseMktData(discountCurveDict)
dividendCurve = eqDividendCurveBuilder(referenceDate, termDates, "FuturesPrice", futPrices,
    , , , spot, discountCurve, "Actual365", "HS300")
print(dividendCurve)

相关函数parseMktData