【发布时间】:2018-05-31 16:46:09
【问题描述】:
我正在尝试做的事情的概述: 我目前正在使用我设法在 R 中编写的特定函数来模拟股票价格:
for(i in 2:252){
X[1]<- 83.26
X[i] <- X[i-1]*(1+mu*dt)+sigma*X[i-1]*sqrt(dt)*rnorm(1)}
我正在模拟 252 天以生成一条轨迹。以上工作完美。
我现在需要使用上述代码生成 100 条轨迹,并被告知围绕上述代码添加一个额外的 for 循环,以便生成 100 条轨迹并将结果保存在矩阵中。
到目前为止我有:
Y<- matrix(NA, nrow=100, ncol=252)
for(j in 1:dim(X)[1]){
for(i in 2:dim(X)[2]){
X[1]<- 83.26
X[i] <- X[i-1]*(1+mu*dt)+sigma*X[i-1]*sqrt(dt)*rnorm(1)}
}
这不起作用也不做任何事情。
基本上我想要做的是创建一个包含 252 列(代表不同股票价格的日子)和 100 行(代表 100 条不同生成路径)的矩阵
任何有关如何执行此操作的帮助将不胜感激。
mu=0.0009646
sigma=0.0001471
dt=0.00796813
编辑:
我现在需要能够将矩阵的每一行创建为图表上的单独线。 IE。绘制每个轨迹与时间 t 的关系。
【问题讨论】:
-
你应该使用
replicate函数 -
您也可以考虑一次生成 25,200 个
rnorm绘制,而不是重复调用rnorm(这比只调用一次要慢) -
您也应该向我们提供您正在使用的
mu、sigma和dt的值 :)
标签: r for-loop matrix row nested-loops