我正在尝试在 quantstrat 中编写自己的信号函数。我正在努力解决的逻辑与其他 R 操作中使用的逻辑相同。
data[,colNums[1]] 等返回一个值向量。
sigPair <- function( label, data = mktdata, columns )
{
ret_sig = FALSE
colNums <- match.names(columns, colnames(data))
ratio_minus_dn <- data[, colNums[1]] - data[, colNums[3]]
ret_sig <- do.call(">", list(data[, colNums[1]], data[, colNums[2]]))
ret_sig <- ifelse( min(tail(ratio_minus_dn, 400)) < 0, ret_sig, FALSE )
colnames(ret_sig) <- label
return(ret_sig)
}
就是这一行:
ret_sig <- ifelse( min(tail(ratio_minus_dn, 400)) < 0, ret_sig, FALSE )
这给我带来了问题。
我得到的错误是:colnames<-
( *tmp*
, value = "cross.up") 中的错误:尝试在小于二维的对象上设置 colnames
我的目的是检查 ratio_minus_dn 在最后 400 个元素中是否为 <0,并在这种情况下返回 true。
什么是完成这项任务的好方法?
感谢所有提示!