Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R QuantMod:如何获取表格格式的数据?_R_Dataframe_Xts_Quantmod - Fatal编程技术网

R QuantMod:如何获取表格格式的数据?

R QuantMod:如何获取表格格式的数据?,r,dataframe,xts,quantmod,R,Dataframe,Xts,Quantmod,我为100家公司创建了一个for循环,并绘制了布林带、成交量、商品通道指数、MACD和相对强度指数。对于我提到的所有指标,如何将该表转换为表 对于循环脚本: for (stock in ls(stockEnv)){ chartSeries(stockEnv[[stock]], theme="white", name=stock, TA="addVo();addBBands();addCCI();addSMA(20, col='blue'); add

我为100家公司创建了一个for循环,并绘制了布林带、成交量、商品通道指数、MACD和相对强度指数。对于我提到的所有指标,如何将该表转换为表

对于循环脚本:

for (stock in ls(stockEnv)){
  chartSeries(stockEnv[[stock]], theme="white", name=stock,
              TA="addVo();addBBands();addCCI();addSMA(20, col='blue');
        addSMA(5, col='red');addMACD();addRSI();addROC()", subset='last 30 days')     
}

情节附呈。我试图做的是将我拥有的其他99个股票代码的所有数据绑定到一个表格格式中,用于您在图中看到的指标

我发现您的代码来源于此

我认为这种方法应该适合你

library(quantmod)
library(data.table)
stockEnv <- new.env()
stocks <- c("AAPL","MSFT","FB")
getSymbols(stocks, src='yahoo', env=stockEnv)
您还可以轻松添加任何其他
TTR
函数。您只需要知道它接受哪些列作为输入以及输出多少列

对于MACD:

Result[,(c("macd","signal")):= 
         apply(MACD(.SD,type="EMA"),2,function(x){as.list(x)}),
       by = "Symbol",
       .SDcols = c("Close")]
注:单列输出有轻微变化,如
CCI

因此,对于商品渠道指数

Result[,(c("CCI")):= list(as.vector(CCI(.SD))),by = "Symbol", .SDcols = c("High","Low","Close")]
或相对强度指数

Result[,(c("RSI")):= list(as.vector(RSI(.SD, maType="EMA"))),by = "Symbol", .SDcols = c("Close")]

查看所有其他
TTR
函数的帮助,例如
help(SMA)

stockEnv因此这是有效的,但仅适用于for loopah中最后一个完成此操作的股票代码,非常感谢您。现在我看到我们有8列,但是我们有没有办法从图中看到的布林带中提取数据,或者我可以自己用R或SQL创建这些计算?不,这太神奇了。再次感谢你。我无法表达我的感激之情。我能把你用BBAND做的同样逻辑应用到其他指标上吗,如CCI、RSI、MACD等?抱歉,我很抱歉被窃听了,但是我在努力对付RSI,因为据我所知,RSI公式使用的是移动平均数。好吧,我真的认为这次我们做到了。如果不起作用,请告诉我。
Result[,(c("CCI")):= list(as.vector(CCI(.SD))),by = "Symbol", .SDcols = c("High","Low","Close")]
Result[,(c("RSI")):= list(as.vector(RSI(.SD, maType="EMA"))),by = "Symbol", .SDcols = c("Close")]