我设法使用@Pete 关于使用 dylpr lag 函数的建议来解决这个问题。这是我的最终结果:
Rule3 <- function(lagH3,lagL3,lagH2,lagL2)
{ifelse(lagH3 & lagL3>lagH2 & lagL2,1,0)}
add.indicator(strategy=strategyname,name="lag",
arguments=list(x=quote(mktdata$High),n=3L),label="lagH3")
add.indicator(strategy=strategyname,name="lag",
arguments=list(x=quote(mktdata$Low),n=3L),label="lagL3")
add.indicator(strategy=strategyname,name="lag",
arguments=list(x=quote(mktdata$High),n=2L),label="lagH2")
add.indicator(strategy=strategyname,name="lag",
arguments=list(x=quote(mktdata$Low),n=2L),label="lagL2")
add.indicator(strategyname, name="Rule3", arguments=list(lagH3=quote(mktdata$High.lagH3),
lagL3=quote(mktdata$Low.lagL3),Close=quote(mktdata$Close),lagH2=quote(mktdata$High.lagH2),
lagL2=quote(mktdata$Low.lagL2)), label="Rule3Signal")