我用sma退出来测试rsi2策略,但信号是错误的

时间:2016-10-03 15:40:12

标签: r simulation quantmod

我已经在几个平台上对这个策略进行了回溯测试,但我是R的新手。逻辑是正确的,因为它与其他软件一起使用但是它不适用于R.

如果rsi(2)< 10`和收盘价sma(10)

,策略会走多远 你能帮帮我吗?我附上了代码。

getSymbols("spy",from ="1995-01-01", to="2016-05-13")

rsi <- RSI(Cl(SPY),2)
smashort<-SMA(Cl(SPY),10)



signal<-ifelse(Cl(SPY)<smashort &rsi<10,1,ifelse(Lag(signal,1)>0 & Cl(SPY)<smashort, 1,0))

signal<-lag(signal,1)


signal[is.na(signal)] <- 0



ret <- ROC(Cl(SPY))
ret[1] <- 0


equity<-exp(cumsum(ret*signal))

plot(equity)

1 个答案:

答案 0 :(得分:0)

在这里做了很多猜测,因为你没有解释你想要做什么:

library(quantmod)
getSymbols("spy",from ="1995-01-01", to="2016-05-13")
rsi <- RSI(Cl(SPY),2) 
closes <- Cl(SPY)
smashort <- SMA(closes,10)


signal <- ifelse((rsi < 10) & (closes <= smashort), 1, 0)
length(signal[signal == 1]) 
# 535 buy signals where rsi is less than 10 
# and SPY close is less than the 10 period moving average