【问题标题】:Issue with XTS index and trading daysXTS 指数和交易日的问题
【发布时间】:2013-07-16 00:30:12
【问题描述】:

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

问题是xts 索引正在计算周末。因此,例如,您会在 7 月 12 日星期五得到 index = 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)

【问题讨论】:

    标签: r xts quantmod


    【解决方案1】:

    使用lag 计算在+x 天的收盘价。您可能需要将k 的值更改为-(x+1),具体取决于您实际所需的逻辑(信号发出后5 天或开仓后5 天卖出)。

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

    【讨论】:

    • 非常感谢!这完美地工作并且更有意义:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-03-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-08-12
    相关资源
    最近更新 更多