【问题标题】:Use a lag on an specific function在特定功能上使用滞后
【发布时间】:2021-09-08 21:54:20
【问题描述】:

我正在编写一个函数来完成示例模拟。我的功能如下:

oos <- function(alpha, rho,rv){
  ar_oos <-(alpha + rho*rv)
  return(ar_oos)
}

我现在任意定义 alpha 和 rho 的值:

rho <-0.4
alpha <- 45

让我们创建一个矩阵来保存我们的结果:

results <- matrix(NA, nrow=(1239), ncol=1)

前 240 个值将是固定时间序列:

results[1:240] <- rnorm(240, 0, 2)

我现在需要的是一个循环,它采用前一个值并重新计算函数 oos,直到我填充了我的矩阵的 1,239 个值:

results[241] <- oos(alpha, rho, rv[240])
results[242] <- oos(alpha, rho, rv[241])
results[243] <- oos(alpha, rho, rv[242])
results[244] <- oos(alpha, rho, rv[243])

有人有想法吗?

非常感谢!

【问题讨论】:

  • 什么是向量rv
  • 在原始模型中是投资组合的超额收益。对于这个例子,我只是使用了一个固定过程
  • 问题中没有定义 rv 的 R 代码。

标签: r quantitative-finance momentum


【解决方案1】:

你可以用一个简单的for循环来写:

for (i in 241:length(results)) {
  results[i] <- oos(alpha, rho, rv[i-1])
}

【讨论】:

  • 您需要先用值填充rv。我不知道它有什么分布,也不知道它是如何定义的,但如果我们遵循原始问题中的最后一个代码,这应该是循环。
猜你喜欢
  • 1970-01-01
  • 2015-12-10
  • 1970-01-01
  • 2023-04-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-06-23
  • 1970-01-01
相关资源
最近更新 更多