模拟利率

模拟利率

所有模拟方法都需要通过指定的期数指定时间网格(NPeriods)。您还可以选择指定严格正的时间增量的标量或向量(DeltaTime)和中间体的时间步长(NSteps)。这些参数,和与该物体相关联的初始采样时间沿(开始时间),唯一地确定的在该状态向量被采样时间序列。因此,仿真方法让你从开始到结束(即从左至右)遍历时间网格。

相比之下,插值方法让你穿越时间格以任何顺序,允许时间向前和向后运动。它们允许你指定的插值倍的元素不必是唯一的一个载体。

许多人提到定义布朗桥作为条件模拟具有遍历时间格,有效地合并两个不同的算法方案相结合。与此相反,这里提供的内插方法通过有意地分离所述算法提供额外的灵活性。在该方法中,用于移动围绕时间格,则通过随机内插执行初始蒙特卡罗模拟在终端时间采样状态,然后依次样品的中间状态。前几个样本确定的路径的整体行为,而后面的样品逐渐缩小的结构。这样的算法通常被称为方差减少技术。该算法是简单的时内插的次数是2的幂。在这种情况下,每个插补落在两个已知状态之间的中间位置,提炼使用像二等分的方法中的内插。这个例子通过实现电力的两本算法凸显精致插值的灵活性。

  1. 加载数据。加载的三个月期Euribor利率,每天观察,并通过对应的2006年4月24日,从2001年2月7日,跨越的时间间隔交易日期的史料载:

    加载Data_GlobalIdx2图(红枣,100 * Dataset.EB3M)datetick('X'),xlabel(“日期”),ylabel('每天产率(%)')标题(“3个月期Euribor作为每日有效收率”)

  2. 拟合模型的数据。现在安装一个简单的单变量瓦塞克模型三个月期Euribor数据的日常相当的产量:

    d X t = 年代 ( l X t ) d t + σ d W t

    给定初始条件,短期汇率在某一时刻的分布T在未来的高斯均值为:

    E ( X T ) = X 0 e 年代 T + l ( 1 e 年代 T )

    和方差:

    V a r ( X T ) = σ 2 ( 1 e 年代 T ) / 2 年代

    要校正这种简单的短期利率模型,把它改写在更熟悉的回归格式:

    y t = α + β x t + ε t

    哪里:

    y t = d X t , α = 年代 l d t , β = 年代 d t

    执行普通的线性回归,其中模型的波动是成正比的残差的标准误差:

    σ = V a r ( ε t ) / d t

    收益率= Dataset.EB3M;回归量=[1(长度(收益率)- 1,1)收益率(1:end-1)];[系数,区间,残差]=回归(diff(收益率),解释变量);dt = 1;%时间增量=1天速度= -coefficients(2)/ dt的;级= -coefficients(1)/系数(2);西格玛= STD(残差)/ SQRT(DT);
  3. 创建一个对象并设置它的初始StartState。创建HWV与对象将startState设置为最近观测到的短期汇率:

    OBJ = HWV(速度,水平,西格玛,“StartState”,产率(结束))
    OBJ =类HWV:赫尔白色/瓦西塞克----------------------------------------外形尺寸:状态= 1,布朗= 1 ----------------------------------------开始时间:0将startState:7.70408e-05 Correlation: 1 Drift: drift rate function F(t,X(t)) Diffusion: diffusion rate function G(t,X(t)) Simulation: simulation method/function simByEuler Sigma: 4.77637e-07 Level: 6.00424e-05 Speed: 0.00228854
  4. 模拟拟合模型。例如,假设您在64 (26)的交易日,使用一个精致的布朗桥与两的力量的算法,而不是通常的开始到结束蒙特卡罗模拟方法。此外,假设初始时间和状态与历史数据的最后一次观测结果一致,并且最终状态是Vasicek模型未来64天的期望值。在这种情况下,您可以评估所有共享相同初始和最终状态的各种路径的行为,可能是为了支持三个月间隔的路径相关利率选项的定价。万博1manbetx

    创建的内插次向量通过移动在时间向前和向后遍历时间网格。具体地,第一内插时间被设置为最近的短期速率观测时间,所述第二内插时间被设置为所述终端的时间,和随后的内插时间依次样品的中间状态:

    T = 64;次=(1:T)';T = NaN的(长度(时间)+ 1,1);T(1)= obj.StartTime;T(2)= T;增量= T;JMAX = 1;ICOUNT = 3;对于K = 1:LOG2(T)I =增量/ 2;对于j = 1:jMax t(iCount) =乘以(i);i = i +;iCount = iCount + 1;结束JMAX = 2 * JMAX;增量=增量/ 2;结束
  5. 绘制插值倍。检查由该算法生成的插值时间序列:

    茎(1:长度(T),T,'填充')xlabel('指数'),ylabel(“插值时间(天)”)标题(“抽样方法幂的两种算法”)

    前几个样品广泛分离的时间和确定的路径的过程结构。后来采样间隔紧密,并逐步细化的详细结构。

  6. 初始化时间序列网格。现在您已经生成了插值时间序列,初始化一个课程时间序列网格来开始插值。抽样过程始于从历史短期利率系列中提取的最后一次观察时间和状态,并以64天以后的预期值结束瓦塞克模型从校准参数中导出:

    平均= obj.StartState * EXP(速* T)+水平*(1  -  EXP(速* T));X = [obj.StartState;平均];
  7. 生成五个样本路径。生成五个样本的路径,设置瑞风输入标志真正将每一个新的插值状态插入到时间序列网格中。在逐次试验的基础上执行插值。因为输入时间序列X有五个试验(其中,所述三维时间序列的每一页代表独立的试验)时,内插输出系列Y也有五页:

    nTrials = 5;RNG(63349,“旋风”) Y = obj. ate(t, X(:,:,ones(nTrials,1))“纽约时报”,(obj。年代tartTime T],“完善”,真正的);
  8. 绘制所得样品路径。由于插值时间不单调增加,排序的时间和重新安排相应的短期利率:

    (t,我)= (t)进行排序;Y =紧缩(Y);Y = Y(我:);plot(t, 100 * Y), hold('上')情节(吨([1个端]),100 * Y([1个端],1),”。黑色的,'MarkerSize',20)xlabel(“插时间(天到未来)”)ylabel('产量 (%)'),保持(“关”)标题(“从布朗桥插值欧元利率的收益率”)

    在此图中的短率表示共享同一初始和终值替代样品路径。它们说明一个特殊的,虽然简单,案件被称为更广泛的采样技术分层抽样。对于分层抽样的一个更复杂的示例,请参见分层抽样

    虽然这个简单的例子模拟了单变量瓦塞克利率模型,它适用于任何维度的问题。

提示

brown -bridge方法还应用了更一般的降低方差的技术。有关更多信息,请参见分层抽样

确保利率为正

所有模拟和插值方法允许你指定的功能或后台进程的序列,在每个采样时间段的结束评估。这个周期包括由可选的确定的任何中间的时间步长NSteps输入,在所讨论的优化精度:关于求解精度和错误。这些函数被指定为时间和状态可调用的函数,并且必须返回一个更新的状态向量Xt:

X t = f ( t , X t )

必须将多个处理函数指定为函数的单元格数组。这些函数是按照它们在单元格数组中出现的顺序调用的。

处理功能不需要使用时间(t)或州(Xt)。它们也不需要更新或更改输入状态向量。实际上,模拟和插值方法不知道任何实现细节,在这方面,它们只遵循一个已发布的接口。

这些处理功能为解决各种问题提供了强大的建模工具。例如,这些函数允许您指定边界条件、累积统计信息、绘图图形和价格路径相关的选项。

除了布朗运动(BM)模型,模拟的状态向量的各个部件通常代表变量,它们的真实世界同行本质上是积极的数量,如资产价格或利率。但是,默认,这里的大多数提供的模拟和内插法建模为缩放的(可能是多变量)连续采样时间之间的过渡高斯绘制。所以,近似在离散时间连续时间处理时,所述状态向量可以不保持为正。唯一的例外是simBySolution对于GBM对象和simBySolution对于HWV对象,可分离几何布朗运动模型的对数变换。此外,在默认情况下,仿真和插值方法都不会对状态向量进行调整。因此,您有责任确保状态向量的所有组件适当地保持为正。

幸运的是,指定非负状态可以确保简单的期末处理调整。虽然这种调整是广泛适用的,但当它应用于单变量时,它是有启示意义的CIR平方根扩散模型:

d X t = 0.25 ( 0.1 X t ) d t + 0.2 X t 1 2 d W t = 年代 ( l X t ) d t + σ X t 1 2 d W t

也许单变量的主要吸引力CIR模型的地方:

2 年代 l σ 2

是短期利率保持为正。然而,短期利率的积极仅持有为底层连续时间模型。

  1. 模拟每日的短期汇率CIR模型。为了说明后者的说法,模拟日常的短期利率CIR模型,用CIR,一个历年(约250个交易日):

    rng (14151617,“旋风”) obj = cir(0.25,@(t,X)0.1,0.2,“StartState”,0.02);[X, T] = simByEuler (obj, 250,'的DeltaTime',1/250,'nTrials',5);sprintf的(' % 0.4 f \ t % 0.4 f + i % 0.4 f \ n ',(T (195:205) ';真正的(X(195:205,1,4))“;IMAG(X(195:205,1,4))'])
    ANS =“0.7760 0.0003 + i0.0000 0.7800 0.0004 + i0.0000 0.7840 0.0002 + i0.0000 0.7880 -0.0000 + i0.0000 0.7920 0.0001 + i0.0000 0.7960 0.0002 + 0.8000 i0.0000 0.0002 + i0.0000 0.8040 0.0008 + I00.0001 0.8080 0.0004 + i0.0001 0.8120 0.0008 + 0.8160 i0.0001 0.0008 + i0.0001“

    如果得到的路径模拟离散时间利率可能为负值。此外,由于CIR模型包含一个平方根扩散项,短期利率甚至可能变得复杂。

  2. 与处理功能重复的模拟。重复仿真,这次指定的处理功能,是以短速率的绝对幅度在每个周期的结束。您可以通过时间和状态(访问处理功能t,Xt),但只使用的短期利率状态向量Xt:

    rng (14151617,“旋风”) [Y,T] = simByEuler(obj,250,'的DeltaTime',1/250,'nTrials'5,“流程”,@(T,X)ABS(X));
  3. 比较调整和未调整的路径。通过使用结束期间的处理功能在感兴趣的时间跨度比较图形未经调整的路径的幅度相应的路径保持正(负和复数!):

    CLF情节(T,100个* ABS(X(:,1,4)),“红色”,T,100 * Y(:,1,4),'蓝色')轴([0.75 1 0 0.4])xlabel(的时间(年)),ylabel('短期利率(%)')标题(“单变量CIR短期利率”)图例({“负/情结价格”“阳性率”},'位置',“最佳”)

提示

您可以使用此方法来获得更精确的SDE解决方案。万博 尤文图斯有关更多信息,请参见性能注意事项

也可以看看

||||||||||||||||||||

相关的例子

更多关于