股票技术指标 MFI 错误系列包含非领先 NA

如何解决股票技术指标 MFI 错误系列包含非领先 NA

我正在创建用于技术分析的股票技术指标。除 MFI 外,大多数指标都运行良好。代码到达 MFI 的那一刻,我得到以下错误

系列包含非领先的 NA

我已经确认股票系列中没有非领先的 NA。我仍然收到这个错误。下面是一个可重现的代码。感谢您的帮助。

library(ggplot2) 
library(quantmod) 
library(xts) 
library(timeSeries) 
library(rpart)
library(ROCR)


get_indicators <- function(stock,period){
  stock <- na.locf(stock)
  price_change <- Ad(lag(stock,-period)) - Ad(stock)
  response <- ifelse(price_change > 0,"Up","Down")
  
  #Simple Moving Average
  sma15 <- SMA(Ad(stock),n=15)
  sma50 <- SMA(Ad(stock),n=50)

  #Exponential Moving Average
  ema15 <- EMA(Ad(stock),n=15)
  ema50 <- EMA(Ad(stock),n=50)
  
  #Moving Average Convergence Divergence
  macd <- MACD(Ad(stock),nFast=12,nSlow=26,nSig=9,maType= "EMA")  

  #Relative Strength Index
  rsi <- RSI(Ad(stock),n=14,maType= "EMA")
  
  #High,Low,and Adjusted Close xts object
  hlac <- as.xts(data.frame(x=Hi(stock),y=Lo(stock),z=Ad(stock)))
  
  #Stochastic Oscillator
  sto <- stoch(hlac,nFastK = 14) *100
  
  #Commodity Channel Index
  cci <-CCI(hlac,n = 20,c = 0.015)
  
  #Price Rate of Change
  proc <- ROC(Ad(stock),n=14) *100
  
  #Momentum
  mom <- momentum(Ad(stock),n=14)
  
  #Bollinger Bands
  bb <- BBands(Ad(stock),n=20,sd = 2)
  
  #Average True Range
  atr <- ATR(hlac,n=14)
  
  #On Balance Volume
  obv <- OBV(Ad(stock),Vo(stock))
  
  print(anyNA(stock))
  print(sum(is.na(stock)))
  
  
  #Money Flow Index
  mfi <- MFI(hlac,Vo(stock),n=14)
  
  #Feature Aggregation: Combine all derived indicators for model buuilding
  indicators <- data.frame(sma15,sma50,ema15,ema50,macd,rsi,sto,cci,proc,mom,bb$mavg,atr$atr,obv,response)
  colnames(indicators) <- c("SMA.15","SMA.50","EMA.15","EMA.50","MACD","MACDSignal","RSI","StoFASTK","StoFASTD","StoSLOWD","CCI.20","PROCR","MOM.14","BB","ATR","OBV","Response")
  
 
  return(indicators)
}
start.date <-'2015-01-01'
end.date <-'2020-01-01'
quantmod::getSymbols("SBIN.NS",src="yahoo",from=start.date,to=end.date,periodicity="daily")
stoci <- get_indicators(SBIN.NS,20)
stoci

解决方法

问题似乎出在您的 hlac 对象上。使用调整后的收盘价而不是实际收盘价可能是原因。

问题代码在使用 quantmod::HLC() 对象时工作正常。

``` r
library(quantmod)
#> Loading required package: xts
#> Loading required package: zoo
#> 
#> Attaching package: 'zoo'
#> The following objects are masked from 'package:base':
#> 
#>     as.Date,as.Date.numeric
#> Loading required package: TTR
#> Registered S3 method overwritten by 'quantmod':
#>   method            from
#>   as.zoo.data.frame zoo
#> Version 0.4-0 included new data defaults. See ?getSymbols.

from <-'2015-01-01'
to <-'2020-01-01'
stock <- "SBIN.NS"

getSymbols(stock,from = from,to = to,src = 'yahoo')
### Messages removed ###
#> [1] "SBIN.NS"

SBIN.NS <- na.locf(SBIN.NS)
sum(is.na(SBIN.NS))
#> [1] 0

#hlac <- as.xts(data.frame(x=Hi(SBIN.NS),y=Lo(SBIN.NS),z=Ad(SBIN.NS)))

hlc <- HLC(SBIN.NS)

mfi <- MFI(hlc,Vo(SBIN.NS),n=10)

head(mfi,n = 20)
#>                 mfi
#> 2015-01-01       NA
#> 2015-01-02       NA
#> 2015-01-05       NA
#> 2015-01-06       NA
#> 2015-01-07       NA
#> 2015-01-08       NA
#> 2015-01-09       NA
#> 2015-01-12       NA
#> 2015-01-13       NA
#> 2015-01-14       NA
#> 2015-01-15 53.58373
#> 2015-01-16 41.74790
#> 2015-01-19 41.48900
#> 2015-01-20 51.62824
#> 2015-01-21 64.43703
#> 2015-01-22 65.38013
#> 2015-01-23 74.19176
#> 2015-01-27 75.15463
#> 2015-01-28 76.77622
#> 2015-01-29 73.79739

reprex package (v0.3.0) 于 2020 年 12 月 22 日创建

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


依赖报错 idea导入项目后依赖报错,解决方案:https://blog.csdn.net/weixin_42420249/article/details/81191861 依赖版本报错:更换其他版本 无法下载依赖可参考:https://blog.csdn.net/weixin_42628809/a
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下 2021-12-03 13:33:33.927 ERROR 7228 [ main] o.s.b.d.LoggingFailureAnalysisReporter : *************************** APPL
错误1:gradle项目控制台输出为乱码 # 解决方案:https://blog.csdn.net/weixin_43501566/article/details/112482302 # 在gradle-wrapper.properties 添加以下内容 org.gradle.jvmargs=-Df
错误还原:在查询的过程中,传入的workType为0时,该条件不起作用 &lt;select id=&quot;xxx&quot;&gt; SELECT di.id, di.name, di.work_type, di.updated... &lt;where&gt; &lt;if test=&qu
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct redisServer’没有名为‘server_cpulist’的成员 redisSetCpuAffinity(server.server_cpulist); ^ server.c: 在函数‘hasActiveC
解决方案1 1、改项目中.idea/workspace.xml配置文件,增加dynamic.classpath参数 2、搜索PropertiesComponent,添加如下 &lt;property name=&quot;dynamic.classpath&quot; value=&quot;tru
删除根组件app.vue中的默认代码后报错:Module Error (from ./node_modules/eslint-loader/index.js): 解决方案:关闭ESlint代码检测,在项目根目录创建vue.config.js,在文件中添加 module.exports = { lin
查看spark默认的python版本 [root@master day27]# pyspark /home/software/spark-2.3.4-bin-hadoop2.7/conf/spark-env.sh: line 2: /usr/local/hadoop/bin/hadoop: No s
使用本地python环境可以成功执行 import pandas as pd import matplotlib.pyplot as plt # 设置字体 plt.rcParams[&#39;font.sans-serif&#39;] = [&#39;SimHei&#39;] # 能正确显示负号 p
错误1:Request method ‘DELETE‘ not supported 错误还原:controller层有一个接口,访问该接口时报错:Request method ‘DELETE‘ not supported 错误原因:没有接收到前端传入的参数,修改为如下 参考 错误2:cannot r
错误1:启动docker镜像时报错:Error response from daemon: driver failed programming external connectivity on endpoint quirky_allen 解决方法:重启docker -&gt; systemctl r
错误1:private field ‘xxx‘ is never assigned 按Altʾnter快捷键,选择第2项 参考:https://blog.csdn.net/shi_hong_fei_hei/article/details/88814070 错误2:启动时报错,不能找到主启动类 #
报错如下,通过源不能下载,最后警告pip需升级版本 Requirement already satisfied: pip in c:\users\ychen\appdata\local\programs\python\python310\lib\site-packages (22.0.4) Coll
错误1:maven打包报错 错误还原:使用maven打包项目时报错如下 [ERROR] Failed to execute goal org.apache.maven.plugins:maven-resources-plugin:3.2.0:resources (default-resources)
错误1:服务调用时报错 服务消费者模块assess通过openFeign调用服务提供者模块hires 如下为服务提供者模块hires的控制层接口 @RestController @RequestMapping(&quot;/hires&quot;) public class FeignControl
错误1:运行项目后报如下错误 解决方案 报错2:Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.8.1:compile (default-compile) on project sb 解决方案:在pom.
参考 错误原因 过滤器或拦截器在生效时,redisTemplate还没有注入 解决方案:在注入容器时就生效 @Component //项目运行时就注入Spring容器 public class RedisBean { @Resource private RedisTemplate&lt;String
使用vite构建项目报错 C:\Users\ychen\work&gt;npm init @vitejs/app @vitejs/create-app is deprecated, use npm init vite instead C:\Users\ychen\AppData\Local\npm-