QuantPlus Analytics为用户提供了便于调试模型的的功能,该功能能够方便用户快速定位错误的类型,找到解决错误的办法。QuantPlus Analytics内置了一个函数ooRangeRetrieveError。该函数能够返回qp函数中的各类错误提示,方便用户在Excel环境下对模型进行调试。下面我们通过一个示例,来学习如何使用这个函数来迅速定位各类错误。

在附件ooRangeRetrieveError.xlsx中会看到构成的两个对象,schedule object(支付周期对象)和fixedratebond Object(固定利率债券对象)。其中,固定利率债券对象依赖支付周期对象。打开这个文件,会发现c3单元格qpSchedule函数显示#NUM!错误。在Excel中,这个返回错误的意思是“公式或者函数中某个数字有问题就会产生错误值”。

image

粗略一看qpSchedule都成功引用了构成该对象所需要的参数,本身输入似乎没有错误。可以借用ooRangeRetrieveError这个函数来帮助定位一下错误。在c4单元格插入这个函数,并且引用c3单元格作为错误的结果。会发现该函数返回一个错误提示“qpSchedule - effective date (January 1st, 2007) later than or equal to termination date (January 1st, 2002)”——有效日期大于或者等于终止日。原来在错误在于有效期应该小于终止日。将c7单元格改成2012/1/1,日期大于c6=2007/1/1,c3提示显示返回一个对象。并且c4包含ooRangeRetrieveError函数的单元格不返回任何值,表示错误修改正确。

但是,我们发现f3单元格也返回了#NUM!错误。f4处同样插入ooRangeRetrieveError函数,返回“qpFixedRateBond - operToVectorImpl: error converting parameter 'Coupons' to type 'double' : Unable to convert type 'class ”——票面利息类型错误。仔细排查发现,f11单元格输入了“1a%”,是个输入类型错误。

image

应该是f11处输入的类型错误,应该输入10%而不是1a%。利用好ooRangeRetrieveError函数可以很快排查到错误发生的原因,希望大家在建模过程中用好这个函数。

Attachments

发表评论

邮箱地址不会被公开。 必填项已用*标注

填写此字段
填写此字段
请输入正确的邮箱地址。
您需要同意我们的使用条款

菜单