如何构建用于样本外回测的循环函数?
How to build a loop function for out-of-sample backtesting?
R 中的许多统计库提供了拟合模型的可能性,然后使用优化结果来预测未来一些时期的值。但是,许多人无法对样本外的结果进行回测。
因此,我想构建一个允许我(向前走方法)的 R 函数:
- 使用移动window定义训练集(每个循环时间,删除最旧的观察并添加最新的)
- 运行 优化器从而校准模型
- 使用校准模型生成 n 步提前预测
- 将新预测存储在样本外预测值的向量中(连同预测日期)
- 循环 1-4
我尝试了以下(x是样本外集的长度,n是训练集的固定长度):
for (j in range (0:x)){
append <- vector()
forecast <- vector()
set <- train [j+1:n+j,]
fit <- fit(data = set, model)
forecast <- predict(fit, ahead = 1)
append <- cbind(lubridate::as_date(ts_date[n+j+1]), forecast)
forc <- rbind(forc, append)
}
然而,矩阵forc只包含循环的第一个和最后一个结果。
谁能找出这里的错误?
R 中的范围 returns 只有循环的第一个和最后一个结果
R 中的许多统计库提供了拟合模型的可能性,然后使用优化结果来预测未来一些时期的值。但是,许多人无法对样本外的结果进行回测。
因此,我想构建一个允许我(向前走方法)的 R 函数:
- 使用移动window定义训练集(每个循环时间,删除最旧的观察并添加最新的)
- 运行 优化器从而校准模型
- 使用校准模型生成 n 步提前预测
- 将新预测存储在样本外预测值的向量中(连同预测日期)
- 循环 1-4
我尝试了以下(x是样本外集的长度,n是训练集的固定长度):
for (j in range (0:x)){
append <- vector()
forecast <- vector()
set <- train [j+1:n+j,]
fit <- fit(data = set, model)
forecast <- predict(fit, ahead = 1)
append <- cbind(lubridate::as_date(ts_date[n+j+1]), forecast)
forc <- rbind(forc, append)
}
然而,矩阵forc只包含循环的第一个和最后一个结果。
谁能找出这里的错误?
R 中的范围 returns 只有循环的第一个和最后一个结果