上一篇文章我们介绍了金融行业惯例和QuantPlus基本输入类型之后,本篇将介绍QuantPlus如何对特定金融工具进行定价。总体使用QuantPlus对金融工具进行定价总体可以分为步骤:两大定义(金融工具定义和市场数据定义)和两大设定(估值日设定和定价引擎设定),按照这个流程就可以轻松对各类金融工具进行定价了。下面以债券定价作为示例展示这个过程。
Step 1:创建固定利率债券对象
选中一个空白单元格,在QuantPlus tab栏点击“创建对象”图标,会弹出“创建对象”对话框。
选择对象类型—“Financial”,子对象类型—“Bonds”,子子对象类型—“FixedRateBond”,其他选项用默认(后续会花详细的时间探讨其他选项的作用),点击“创建对象模版”。
会在选中的单元格创建固定利率债券对象和依赖对象(这里是支付计划对象)。用户可以修改对应的参数,来修改固定利率债券的属性(起息日、到期日、付息频率、币种等等),返回obj_00001@0000说明对象创建成功。
Step 2:创建市场数据对象
这里以平的远期收益率曲线作为市场数据对象的简单示例。同样,选中一个空白单元格,在QuantPlus tab栏点击“创建对象”图标,会弹出“创建对象”对话框。
选择对象类型—“Financial”,子对象类型—“TermStructure”,子子对象类型—“FlatForward”,其他选项用默认(后续会花详细的时间探讨其他选项的作用),点击“创建对象模版”。
会在对应选择的单元格区域附近创建平的远期收益率曲线对象,返回obj_00002@0000说明市场数据对象创建成功。
Step 3 创建估值日和创建定价引擎
首先,输入某个估值日,在空白单元格区域输入日期2018-9-29。然后,在空白区域创建债券的定价引擎对象。在QuantPlus tab栏点击“创建对象”图标,会弹出“创建对象”对话框。选择对象类型—“Financial”,子对象类型—“Pricing Engines”,子子对象类型—“BondEngine”,其他选项用默认(后续会花详细的时间探讨其他选项的作用),点击“创建对象模版”。
这时qpBondEngine函数会返回#NUM!错误,这里还需在YieldCurve参数处引用qpFlatForward对象,会返回obj_00003@0001说明债券定价引擎对象创建成功。
Step 4 设定估值日和设定定价引擎
首选,设定估值日。在空白单元格区域输入函数= qpSettingsSetEvaluationDate(),shift+F3弹出插入函数对话框,引用具体估值日如F19,会返回True表示估值日设定成功,这里如果不输入具体日期会将当前系统日期作为默认估值日。
然后,在一个新的单元格区域输入=qpInstrumentSetPricingEngine(),shift+F3弹出插入函数对话框,这里需要引用两个对象,第一个函数参数ObjectID引用金融工具对象,这里是债券对象B1单元格,第二个函数参数引用定价引擎对象单元格H19,函数返回True说明定价引擎设定完毕。
最后可以通过统一的金融工具定价函数qpInstrumentNPV(B1),引用金融工具对象单元格B1作为参数,返回99.2942即为债券的NPV。任何金融工具的定价都可以以该步骤来实现。
我们会持续更新和发布更多有关QuantPlus Analytics相关的产品应用示例、贴士与技巧、背景理论知识、培训和教学视频等精彩内容,欢迎大家关注我们的公众号来获取更多更新的产品资讯。申请QuantPlus Analytics试用的,请点击“申请试用链接”。