问题自已已经解决。
解决方法如下:
1、在 MATLAB 命令窗口输入 Settle=repmat(datenum('date'),[N 1]);date 表示结算日,N 表示债券个数。
2、接着 :先在excel处理一下,="'"&TEXT(H1,"dd-mmm-yyyy hh:mm:ss")&"'"
也就是转换成文本,再加两个单引号,这样就可以复制到matlab里了。
把这列文本需要导入到matlab的部分复制一下,在matlab命令行里,输入
ts={;然后按Ctrl+V粘贴;再输入一个 } 回车。
这样把时间的文本形式保存到ts变量里了。
用方括号得到的是字符矩阵,用大括号得到的是cell类型。
之后,可以用datenum(ts)把时间字符串转换成数值,
3、再把债券的价格和利率导入, 输入如下命令:
X=xlsread(a.xls.xlsx)
CleanPrice=x(:,1)
CouponRate=x(:,3)
4、在将债券包含的信息集合在一起,输入如下命令:
Instruments = [Settle Maturity CleanPrice CouponRate]
用 IRFunctionCurve.fitSvensson命令即可估计利率期限结构:
SvenssonModel =IRFunctionCurve.fitSvensson('Zero', datenum('date'),Instruments);