使用R for循环创建时间序列

使用R for循环创建时间序列,r,for-loop,R,For Loop,我预测一个股票价格'St1',从'Stt=10'开始,时间t。日期并不重要。我想使用以下公式计算接下来的100个价格: St1 <- Stt*exp((r-0.5*sigma^2)*T/n+sigma*E*sqrt(T/n)) St1一种方法是 r = 0.15 sigma = 0.2 T = 1 n = 100 E = 0.15 Stt<- rep(NA,n) # preallocate Stt[1] <- 10 for (i in 2:100) { Stt[i]

我预测一个股票价格'St1',从'Stt=10'开始,时间t。日期并不重要。我想使用以下公式计算接下来的100个价格:

St1 <- Stt*exp((r-0.5*sigma^2)*T/n+sigma*E*sqrt(T/n))
St1一种方法是

r = 0.15
sigma = 0.2
T = 1
n = 100
E = 0.15

Stt<- rep(NA,n) # preallocate
Stt[1] <- 10
for (i in 2:100)
{
    Stt[i] <- Stt[i-1]*exp((r-0.5*sigma^2)*T/n+sigma*E*sqrt(T/n))
}

请添加一个可复制的例子作品像一个魅力,tnx很多!如果我想让E成为一个普通的随机变量呢?rnorm(100)-在公式中给我错误消息“要替换的项目数不是替换长度的倍数”,E被E替换为E[i],因为E是向量。顺便说一下,我建议你把整个公式矢量化。
r = 0.15
sigma = 0.2
T = 1
n = 100
E = 0.15

Stt<- rep(NA,n) # preallocate
Stt[1] <- 10
for (i in 2:100)
{
    Stt[i] <- Stt[i-1]*exp((r-0.5*sigma^2)*T/n+sigma*E*sqrt(T/n))
}
# for fixed E of length one
Stt <- cumprod(c(10,rep(exp((r-0.5*sigma^2)*T/n+sigma*E*sqrt(T/n)), n-1)))

# for random vector E 
E <- rnorm(n-1, mean=0.15, sd=0.01)
Stt <- cumprod(c(10, exp((r-0.5*sigma^2)*T/n+sigma*E*sqrt(T/n))))