0

我想使用 matlab 中的优化工具来校准利率树。需要一些指导。

利率树如下所示:

在此处输入图像描述

这个怎么运作:

3.73% = 2.5%*exp(2*0.2)

96.40453 = (0.5*100 + 0.5*100)/(1+3.73%)

94.15801 = (0.5*96.40453+ 0.5*97.56098)/(1+2.50%)

2.5%的值是任意的,上层节点乘以2*volatility的指数(这里是20%)。

我需要通过改变较低节点的不同值来优化问题。

如何在 Matlab 中进行这种优化?

到目前为止我尝试了什么?

InterestTree{1}(1,1) = 0.03;
InterestTree{3-1}(1,3-1)= 2.5/100;
InterestTree{3}(2,:) = 100;
InterestTree{3-1}(1,3-2)= (2.5*exp(2*0.2))/100;
InterestTree{3-1}(2,3-1)=(0.5*InterestTree{3}(2,3)+0.5*InterestTree{3}(2,3-1))/(1+InterestTree{3-1}(1,3-1));
j = 3-2;
InterestTree{3-1}(2,3-2)=(0.5*InterestTree{3}(2,j+1)+0.5*InterestTree{3}(2,j))/(1+InterestTree{3-1}(1,j));
InterestTree{3-2}(2,3-2)=(0.5*InterestTree{3-1}(2,j+1)+0.5*InterestTree{3-1}(2,j))/(1+InterestTree{3-2}(1,j));

但我不确定如何进行优化。任何改进代码的建议,请告诉我..需要一些指导..

4

1 回答 1

0

你期待这棵树变大吗?或者您只是在优化“2.5%”参数的值?

如果是后者,有两种方法。第一种是使用封闭形式的表达式对树进行建模,将 2.5% 替换为x,这对于树是可能的。Matlab 中有可用的非线性优化工具箱(例如,这里有更多),但是我已经太久没有这样做了,无法给您更详细的答案。

秒是我会立即做的方法。我正在解释您给出的示例,因此我使用的方程式可能不正确-但是,使用 for 循环的原理是相同的。

vol = 0.2;
maxival = 100;
val1 = zeros(1,maxival); %Preallocate
finalval = zeros(1,maxival);
for ival=1:maxival
  val1(ival) = i/1000; %Use any scaling you want.  This will go from 0.1% to 10%
  val2=val1(ival)*exp(2*vol);
  x1 = (0.5*100+0.5*100)/(1+val2); %Based on the equation you gave
  x2 = (0.5*100+0.5*100)/(1+val1(ival)); %I'm assuming this is how you calculate the bottom node
  finalval(ival) = x1*0.5+x2*0.5/(1+...);  %The example you gave isn't clear, so replace this with whatever it should be
end

[maxval, indmaxval] = max(finalval);

最大值在 maxval 中,最大化它的兴趣在 val1(indmaxval) 中。

于 2014-02-07T03:22:28.520 回答