结构化产品(场外衍生品和结构化存款)相关函数
大约 4 分钟
结构化产品(场外衍生品和结构化存款)相关函数
构建函数
Excel: =McpStructureDef(packageName, structure, schedule1, payoff, schedule2)
Python: McpStructureDef(pkg_name, structure, schedules, payoff)
- 功能:定义结构化产品的结构。
- 参数:
packageName:包名。structure:结构定义,包含以下字段:Dates:日期定义。Strikes:执行价定义。StrikesStructure:执行价条件。Arguments:利率、本金等参数。Calendar:节假日。Basis:计息规则。
schedule1:周期定义 1,包含以下字段:ScheduleName:周期定义的名称。StartDate:开始日期。EndDate:结束日期。Frequency:频率。Calendar:节假日。DateAdjuster:日期调整规则。EndtoEnd:月末规则。LongStub:长残端。EndStub:末端残端。
payoff:Payoff 定义,定义具体的逻辑。schedule2:周期定义 2(通过周期定义 1 生成)。
- 返回:结构化产品定义对象。
Excel: =McpXScriptStructure(args1, args2, args3, args4, args5, fmt='VP|HD')
Python: McpXScriptStructure(*args)
- 功能:构造 XScriptStructure 对象。
- 参数:
args1~args5或*args:参数组,包含以下字段:Underlying:产品。ReferenceDate:交易日或估值日。PackageName:包名。Spot:即期价格。BuySell:买卖方向(buy或sell)。StartDate:开始日期。ExpiryDate:到期日。PremiumDate:期权费支付日期。Calendar:节假日。LowerBarrier:触碰下限价格。UpperBarrier:触碰上限价格。HighYield:高收益。MidYield:中收益。LowYield:低收益。Notional:本金。ObservationSchedule/Frequency:周期定义中的频率。ObservationSchedule/StartDate:周期定义中的开始时间。ObservationSchedule/EndDate:周期定义中的结束时间。NumSimulation:模拟次数。LocalVol:LocalVol 对象。LogLevel:日志级别。DiscountRateCurve:折现曲线。
fmt:参数格式(默认VP|HD),Excel专用参数。
- 返回:XScriptStructure 对象。
使用函数
Excel: =XssPrice(obj, isAmount=True)
Python: Price(isAmount=True)
- 功能:计算期权费。
- 参数:
obj:XScriptStructure 对象,Python Api不需要这个参数。isAmount:是否返回金额(默认True,返回金额;False时返回费率)。
- 返回:期权费。
Excel: =XssAnnualizedPrice(obj)
Python: AnnualizedPrice()
- 功能:计算年化收益率。
- 参数:
obj:XScriptStructure 对象,Python Api不需要这个参数。
- 返回:年化收益率。
Excel: =XssMarketValue(obj, isAmount=True)
Python: MarketValue(isAmount=True)
- 功能:计算市场价值。
- 参数:
obj:XScriptStructure 对象,Python Api不需要这个参数。isAmount:是否返回金额(默认True)。
- 返回:市场价值。
Excel: =XssDelta(obj, isCCY2=True, isAmount=True)
Python: Delta(isCCY2=False, isAmount=True)
- 功能:计算 Delta。
- 参数:
obj:XScriptStructure 对象,Python Api不需要这个参数。isCCY2:是否以 CCY2 计价(默认True)。isAmount:是否返回金额(默认True)。
- 返回:Delta。
Excel: =XssForwardDelta(obj, isCCY2=True, isAmount=True)
Python: ForwardDelta(isCCY2=False, isAmount=True)
- 功能:计算 Forward Delta。
- 参数:
obj:XScriptStructure 对象,Python Api不需要这个参数。isCCY2:是否以 CCY2 计价(默认True)。isAmount:是否返回金额(默认True)。
- 返回:Forward Delta。
Excel: =XssGamma(obj, isCCY2=True, isAmount=True)
Python: Gamma(isCCY2=False, isAmount=True)
- 功能:计算 Gamma。
- 参数:
obj:XScriptStructure 对象,Python Api不需要这个参数。isCCY2:是否以 CCY2 计价(默认True)。isAmount:是否返回金额(默认True)。
- 返回:Gamma。
Excel: =XssTheta(obj, isCCY2=True, isAmount=True)
Python: Theta(isCCY2=False, isAmount=True)
- 功能:计算 Theta。
- 参数:
obj:XScriptStructure 对象,Python Api不需要这个参数。isCCY2:是否以 CCY2 计价(默认True)。isAmount:是否返回金额(默认True)。
- 返回:Theta。
Excel: =XssRho(obj, isCCY2=True, isAmount=True)
Python: Rho(isCCY2=False, isAmount=True)
- 功能:计算 Rho。
- 参数:
obj:XScriptStructure 对象,Python Api不需要这个参数。isCCY2:是否以 CCY2 计价(默认True)。isAmount:是否返回金额(默认True)。
- 返回:Rho。
Excel: =XssVanna(obj, isCCY2=True, isAmount=True)
Python: Vanna(isCCY2=False, isAmount=True)
- 功能:计算 Vanna。
- 参数:
obj:XScriptStructure 对象,Python Api不需要这个参数。isCCY2:是否以 CCY2 计价(默认True)。isAmount:是否返回金额(默认True)。
- 返回:Vanna。
Excel: =XssVolga(obj, isCCY2=True, isAmount=True)
Python: Volga(isCCY2=False, isAmount=True)
- 功能:计算 Volga。
- 参数:
obj:XScriptStructure 对象,Python Api不需要这个参数。isCCY2:是否以 CCY2 计价(默认True)。isAmount:是否返回金额(默认True)。
- 返回:Volga。
Excel: =XssVega(obj, isCCY2=True, isAmount=True)
Python: Vega(isCCY2=False, isAmount=True)
- 功能:计算 Vega。
- 参数:
obj:XScriptStructure 对象,Python Api不需要这个参数。isCCY2:是否以 CCY2 计价(默认True)。isAmount:是否返回金额(默认True)。
- 返回:Vega。
Excel: =XssPV(obj, isAmount=True)
Python: PV(isAmount)
- 功能:计算XScriptStructure对象的现值。
- 参数:
obj:XScriptStructure对象,用于计算现值;Python Api不需要这个参数。isAmount:布尔值,默认值为True,表示是否按金额计算。
- 返回:现值计算结果。
Excel: =McpProductEvents(prod)
- 功能:生成 Payoff。
- 参数:
prod:XScriptStructure 对象。
- 返回:Payoff 结果。
Excel: =SolverFromPremium(priceObj, premium, targetField, x0=1.0, bracket=(-100, 100), method='bisect', options={'maxiter': 50, 'xtol': 1e-6}, isAnnualized=False)
- 功能:根据期权费或年化利率反算目标值。
- 参数:
priceObj:XScriptStructure 对象。premium:期权费或年化利率。targetField:计算目标对应的字段。x0:初始预估值(默认1.0)。bracket:猜测值的范围(默认(-100, 100))。method:Solver 方法(默认bisect)。options:最大循环次数(默认50),容忍精度(默认1e-6)。isAnnualized:是否为年化利率(默认False)。
- 返回:反算结果。
注意事项
- 参数格式:
fmt参数用于指定参数格式,默认值为VP|HD。 - 枚举值:部分参数(如
BuySell、DateAdjuster)为枚举值,需参考具体定义。 - 默认值:未明确说明的参数通常有默认值,可根据需求调整。
