XTS指数和交易日的问题

时间:2013-07-15 16:17:51

标签: r xts quantmod

我真的很想找到解决方案。 如果你查看最后一行代码,你就会明白我想在下次开启时买入并在5天后卖出(x = 5)。

问题是xts索引正在计算周末。所以例如你在7月12日星期五得到指数= 1但是在7月15日星期一,指数= 4.我希望它等于2,这是+1交易日。

我可以修改索引或使用除Cl(SPY)[index(SPY) + x]以外的其他方法来获得x + 5个交易日吗?

提前感谢您对此

的任何提示
# Variable d'optimisation
x <- 5

library(quantmod)

# Get data from Yahoo, then adjust
getSymbols("SPY", from = "1990-01-01")

# add RSI3 column
SPY$RSI3 <- RSI(Cl(SPY), n = 3)

# Add buy sig
SPY$buySig <- ifelse(SPY$RSI3 > 90, 1, 0)

# If signal, buy tomorrow at open, sell at close x days later
# PnL Calculation here : 
PnL <- ifelse(lag(SPY$buySig) == 1, Cl(SPY)[index(SPY) + x] - Op(SPY), NA)

1 个答案:

答案 0 :(得分:2)

使用lag计算+x天的结算时间。您可能需要将k的值更改为-(x+1),具体取决于您的实际所需逻辑(在信号发出后5天或在该职位开启后5天内出售)。

SPY$Lag.Cl <- lag(Cl(SPY),-x)
PnL <- lag(SPY$buySig) * (SPY$Lag.Cl - Op(SPY))
相关问题