结构化产品(场外衍生品和结构化存款)相关函数
大约 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
)为枚举值,需参考具体定义。 - 默认值:未明确说明的参数通常有默认值,可根据需求调整。