创建一个列表来计算函数中多个代码的连续天数

问题描述 投票:0回答:0

以下代码适用于单一股票 (AAPL)

 library("quantmod")
 library("reshape")
 library("gplots")

 #Control Parameters
 dataStartDate = as.Date("2020-04-01")
 symbol<-  "AAPL"

#Function to turn a boolean vector into a vector containing the consecutive num of trues or    falses seen
#Will be used to calculate the consecutive number of up and down days
 
consecutiveTruesExtractor <- function(data){
genNumOfConsecutiveTrues <- function(x, y) { (x+y)*y  } #Y is either 0 or 1
upDaysCount <- Reduce(genNumOfConsecutiveTrues,data,accumulate=TRUE)
upDaysCount <- as.vector(Lag(upDaysCount))
upDaysCount[is.na(upDaysCount)] <- 0

downDaysCount <- Reduce(genNumOfConsecutiveTrues,!data,accumulate=TRUE)
downDaysCount <- as.vector(Lag(downDaysCount))
downDaysCount[is.na(downDaysCount)] <- 0
consecutiveTruesExtractor <- upDaysCount-downDaysCount
}


#Download the data
symbolData <- new.env() #Make a new environment for quantmod to store data in
getSymbols(symbol, env = symbolData, src = "yahoo", from = dataStartDate)
mktdata <- eval(parse(text=paste("symbolData$",sub("^","",symbol,fixed=TRUE))))
opClRet <- (Cl(mktdata)/Op(mktdata))-1
consecutiveDir <- consecutiveTruesExtractor(as.matrix(opClRet>0))
completeData<- cbind(opClRet,consecutiveDir)
colnames(completeData) <- c("OpClRet","ConsecutiveDir")

mktdata$Consecutive <- completeData$ConsecutiveDir

View(mktdata)

我想要一个代码列表而不是一个代码。试图创建一个列表但出现了一些错误。

符号<- c("AMD","A","AAL","ABBV","ABT","ACAD","ADBE","AAPL")

我的问题是:如何让它适用于股票清单?例如:(“AMD”,“A”,“AAL”,“ABBV”,“ABT”,“ACAD”,“ADBE”,“AAPL”)

r list quantmod
© www.soinside.com 2019 - 2024. All rights reserved.