7

Yahooからダウンロードするのではなく、csvファイルを使用して複数のシンボルを読み込もうとしています。元のコードはうまく機能し、

load.packages('quantmod')
tickers = spl('TLT,IWM,GLD')
data <- new.env()
getSymbols(tickers, src = 'yahoo', from = '1980-01-01', env = data,
           auto.assign = T)

ただし、以下のコードを使用しようとすると、スクリプトの後半で「添え字の範囲外」エラーが発生します。

load.packages('quantmod')
tickers = spl('TLT,IWM,GLD')
data <- new.env()
getSymbols(tickers, src="csv", dir= "C:/Users/Admiral/Downloads/",
           env = data, auto.assign = T)

2番目のコードセットが機能しない理由を誰かが考えていますか?テストするために、Yahooからcsvデータをダウンロードし、ローカル(Windows)に保存しました。1つのcsvファイルを使用しただけでは、添え字エラーは発生しません。以下のコードも試しましたが、スクリプトの後半で同じエラーが発生します。

setSymbolLookup(tickers=list(src="csv", dir= "C:/Users/Admiral/Downloads/"))
getSymbols(tickers, auto.assign = T, from = '1980-01-01', env=data)
4

1 に答える 1

3

FinancialInstrumentパッケージを使用してこれを行います

require('quantmod')
require('FinancialInstrument')
tickers <- c("TLT", "IWM", "GLD")
data <- new.env()
getSymbols(tickers, src = 'yahoo', from = '1980-01-01', env = data)

# Now save the data in a directory
tmpdir <- tempdir()
saveSymbols.common(tickers, tmpdir, env=data)

#remove the data    
rm(list=tickers, pos=data)
ls(data) # see that there is nothing there
# Now load the data back from disk
getSymbols(tickers, src='FI', dir=tmpdir, env=data, split_method='common')
ls(data)

を使用する場合getSymbols.csv、データには日付と6列が必要です(OHLCVA)

#write data to csv files on disk
for (i in seq_along(tickers)) {      
  write.zoo(get(tickers[i], pos=data), file=paste0(tmpdir, "/", tickers[i], ".csv"), sep=",")
}
rm(list=tickers, pos=data) #remove from memory
getSymbols(tickers, src='csv', dir=tmpdir)#, env=data)  #load from csv files
于 2012-09-02T19:19:44.467 に答える