嗨,我正在看这个网站
http://www.r-bloggers.com/backtesting-a-simple-stock-trading-strategy/
但我无法理解下面的代码:
require(quantmod)
getSymbols('^GSPC',from='1900-01-01')
daysSinceHigh <- function(x, n){
apply(embed(x, n), 1, which.max)-1
}
myStrat <- function(x, nHold=100, nHigh=200) {
position <- ifelse(daysSinceHigh(x, nHigh)<=nHold,1,0)
c(rep(0,nHigh-1),position)
}
我的问题是,如果你嵌入(x,1),那么它会将时间序列对象(GSPC)转换为矩阵。对?
但是如果你将which.max函数应用到这个矩阵中它不会找到最大值的索引(位置)(例如,在这种情况下是最大音量)?
因为您在搜索矩阵中的每个元素,所以不是最高价格。
为什么你减去1呢?
他在帖子中解释过,但我无法理解它是如何运作的......