2016-03-20 28 views
1

株価のリストをループしてchartSeriesで印刷したいと思います。それは常に引数を変更するより簡単になります。ここでxtsibleオブジェクト、quantmodでループする

Error in try.xts(x, error = "chartSeries requires an xtsible object"): 
    chartSeries requires an xtsible object 

エラー生成コード:

library(quantmod) 
stocks <- c("FIS", "AXP", "AVB") 
symbols <- (getSymbols(stocks, src='yahoo')) 
for (i in symbols){ 
    chartSeries(i, theme="white", 
     TA="addVo();addBBands();addCCI();addSMA(20, col='blue'); 
     addSMA(5, col='red');addSMA(50, col='black')", subset='last 30 days')  
} 

かだけを:

chartSeries(symbols[1], theme="white", 
     TA="addVo();addBBands();addCCI();addSMA(20, col='blue'); 
     addSMA(5, col='red');addSMA(50, col='black')", subset='last 30 days') 

答えて

0

symbolsがある私はループまたはサブセットにしたいとき、残念ながら私はいつも、エラーが出ます文字ベクトル。これはxtsオブジェクトのリストではありません。文字ベクトルにchartSeriesを呼び出すと、エラーが発生します。

R> chartSeries("OOPS") 
Error in try.xts(x, error = "chartSeries requires an xtsible object") : 
    chartSeries requires an xtsible object 

一つの解決策は、環境内のすべてのオブジェクトにchartSeriesを呼び出し、その後、1つの環境にダウンロードしたすべてのデータを置くことです。

library(quantmod) 
stocks <- c("FIS", "AXP", "AVB") 
stockEnv <- new.env() 
symbols <- getSymbols(stocks, src='yahoo', env=stockEnv) 
for (stock in ls(stockEnv)){ 
    chartSeries(stockEnv[[stock]], theme="white", name=stock, 
     TA="addVo();addBBands();addCCI();addSMA(20, col='blue'); 
     addSMA(5, col='red');addSMA(50, col='black')", subset='last 30 days')  
} 
関連する問題