使用 R 中的 sde 包来模拟具有杠杆作用的 SV 模型

机器算法验证 r 模拟 随机过程
2022-03-25 09:22:43

使用 R 中的 sde 包,我想模拟以下股票价格模型pt

dσt2=(θ1θ2σt2)dt+θ3σtdWσ,t (用于随机波动率的 CIR 模型)

dlogpt=σtdWp,t

之间的相关性Wp,tWσ,t可能非零。

问:这可能吗?是否可以像在 S+FinMetrics 中使用gensim函数那样模拟“sde”包中的多变量 SDE?R中是否有另一个包可以做到这一点?

我可以使用以下代码简单地模拟方差过程:

library(sde)
sig2 <- sde.sim(X0=0.04,  theta=c(0.3141, 8.0369, 0.43),  model="CIR")

然后我可以使用以下方法模拟价格系列(从初始价格 = 100 开始):

logr <- rnorm(n=length(sig2),sd=sqrt(sig2))
logp <- cumsum(c(log(100),logr))
p <- exp(logp)

但是这种方法似乎不必要地笨重,并且无法捕捉布朗运动之间的非零相关性。

1个回答

Hull-White/Vasicek 模型:dX(t) = 3*(2-x)*dt+ 2*dw(t)

> library(Sim.DiffProc)
> drift <- expression( (3*(2-x)) )
> diffusion <- expression( (2) )
> snssde(N=1000,M=1,T=1,t0=0,x0=10,Dt=0.001,drift,diffusion,Output=FALSE)

欧拉方案的OU过程的多个轨迹

> snssde(N=1000,M=50,T=1,t0=0,x0=10,Dt=0.001,drift,diffusion,Output=FALSE)

您还可以使用包Sim.DiffProcGUI(用于模拟扩散过程的图形用户界面)。