我有一个XTS包含许多股票收盘价的数据集,称为:dataset。然后,我想通过找出他们的回报是否有任何相关性cor(),但是我收到一条错误消息:Error in cor(RETS) : 'x' must be numeric。
这是我所做的:
RETS <- CalculateReturns(dataset, method= c("log")) # Calculate returns Via PerformanceAnalytics
RETS<- na.locf(RETS) #Solves missing NAs by carrying forward last observation
RETS[is.na(RETS)] <- "0" #I then fill the rest of the NAs by adding "0"
Run Code Online (Sandbox Code Playgroud)
这是一个样本 RETS
row.names A.Close AA.Close AADR.Close AAIT.Close AAL.Close
1 2013-01-01 0 0 0 0 0
2 2013-01-02 0.0035 0.0088 0.0044 -0.00842 0
3 2013-01-03 0.0195 0.0207 -0.002848 -0.00494 0 …Run Code Online (Sandbox Code Playgroud) 如何使用R将刻度数据转换为OHLC数据?我在这里看到了几个示例,但是我遇到的问题是转换各个时间戳的实际时间。例如,第一个时间戳是2013-07-29 15:30:00。
x <-read.delim(header = TRUE,stringsAsFactor = FALSE,“ http://hopey.netfonds.no/tradedump.php?date=20130729&paper=AAPL.O&csv_format=txt ”)
xx <-xts(x [,c(2:3)],as.POSIXct(x [,1],“ UTC”,“%Y%m%dT%H%M%S”))
to.period(xx,“ seconds”,5)
我在R中测试布林带策略时遇到了麻烦.逻辑是,如果收盘价大于上限,我想做一个空头头寸,然后当它超过平均线时关闭仓位.如果Close低于Lower Band,我也想采取Long位置,当它超过Average时关闭位置.到目前为止,这就是我所拥有的:
bbands <- BBands(stock$Close, n=20,sd=2)
sig1 <- Lag(ifelse((stock$Close >bbands$up),-1,0))
sig2 <- Lag(ifelse((stock$Close <bbands$dn),1,0))
sig3 <- Lag(ifelse((stock$Close > bbands$mavg),1,-1))
sig <- sig1 + sig2
...这就是我被困住的地方,我如何使用它sig3来获得理想的结果?