我有OHLC (Open/High/Low/Close)
我们可以使用Finance API和所有数据获得的数据。
我想创建一个目标指标(-1,0,1)
,以此建立股票分类模型。
创建此目标变量。
我需要创建另一个指标log(tomorrow's CLOSE/today's CLOSE)
哪个会给我带来价值(从-inf到inf)。
现在,我想从breaks = c(-Inf,创建label = c(-1,0,1) log(明天的CLOSE /今天的CLOSE)的range_start,range_end,Inf。
我的第一个问题是不查看未来数据就创建此目标变量,因为我的公式log(tomorrow's CLOSE/today's CLOSE)
面向未来,这是错误的,我想将数据框/输入向后移动一个排行,将今天当作明天,依此类推。
然后,根据我将定义的range_start,range_end和breaks -1、0,1来计算目标类别。
我的第二个问题是如何以最佳方式定义它,这个值,我现在将其设为-0.0015,0.0015。
在这里需要一些评论和建议,谢谢。
masterDF_close <- masterDF %>% dplyr::select('Date', 'Close')
# create a one-row matrix the same length as data
temprow <- matrix(c(rep.int(NA,length(masterDF))),nrow=1,ncol=length(masterDF))
# make it a data.frame and give cols the same names as data
newrow <- data.frame(temprow)
colnames(newrow) <- colnames(masterDF)
# rbind the empty row to data
masterDF <- rbind(newrow,masterDF)
###View(masterDF)
temprow2 <- matrix(c(rep.int(NA,length(masterDF_close))),nrow=1,ncol=length(masterDF_close))
# make it a data.frame and give cols the same names as data
newrow2 <- data.frame(temprow2)
colnames(newrow2) <- colnames(masterDF_close)
# rbind the empty row to data
masterDF_close <- rbind(masterDF_close, newrow2)
masterDF['Close_unshifted'] = masterDF_close$Close
###View(masterDF)
# Shifting data backwards, assuming today Close as tomorrow Close and yesterday Close as today Close
# close <- masterDF$Close
# lead_close <- lag(close, k = -1)
#
# close[1:10]
# lead_close[1:10]
#
# log(close/lead_close)
#
# plot(log(close/lead_close))
masterDF['TargetIndicator'] <- log(masterDF$Close_unshifted/masterDF$Close)
###View(masterDF)
masterDF = masterDF[-1,]
masterDF$TargetIndicator[is.na(masterDF$TargetIndicator)] <- 0
masterDF_ <- masterDF %>% mutate(category=cut(TargetIndicator,
breaks=c(-Inf, range_start, range_end, Inf),
labels=c(-1, 0, 1)))
这是两个操作,我正在执行代码。