0

嗨,我在看这个网站

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)
}

我的问题是,如果您 embed(x,1) 那么它将时间序列对象(GSPC)转换为矩阵。正确的?

但是如果你将 which.max 函数应用到这个矩阵中,它会不会找到最大值的索引(位置)(例如,在这种情况下,最大音量)?

不是最高价格,因为您正在搜索矩阵中的每个元素。

为什么要减去 1?

他在帖子中解释了它,但我无法理解它是如何工作的......

4

0 回答 0