在 Quantmod R 中使用 csv 获取符号
getSymbols with csv in Quantmod R
我正在尝试使用 quantmod::getSymbols
.
将一组符号上传到包 quantstrat 中
我正在加载的代码在 Yahoo 上不可用(它们是南非股票),因此我需要从本地目录和 .csv 文件加载它们。
我的符号文件如下所示:
head(symbols)
[1] "SHFJ" "FSRJ" "RDFJ" "GRTJ" "MTNJ" "SLMJ"....
我的符号价格历史记录在单独的 csv 文件中,每个文件都包含一个日期列和 OHLC 列,header 仅用于 OHLC 价格。
我使用函数getSymbols.csv
函数如下:
getSymbols.csv(symbols, env, dir="E:/data/CData_Files_NB/", return.class = "xts", extension="csv")
但我收到以下错误消息
loading SHFJ .....done.
Error in `colnames<-`(`*tmp*`, value = c("SHFJ.Open", "SHFJ.High","SHFJ.Low", : length of 'dimnames' [2] not equal to array extent
如果有人能告诉我我做错了什么,我将不胜感激。我不确定是否有其他方法可以将股票价格加载到 quantstrat 包中。
getsymbols.csv 需要六列:开盘价、最高价、最低价、收盘价、成交量、调整后
您的数据没有 "Adjusted" 列;它有 5 个列名而不是 6 个,这会导致您看到的 dimnames 错误。
如果您可以修改本地数据文件,请尝试添加一个空的 "Adjusted" 列(通过在 LibreOffice 或 Excel 中打开 CSV 即可轻松完成)
或尝试复制 getsymbols.csv() 函数并更改:
colnames(fr) <- paste(toupper(gsub("\^", "", Symbols[[i]])),
c("Open", "High", "Low", "Close", "Volume", "Adjusted"),
sep = ".")
到
colnames(fr) <- paste(toupper(gsub("\^", "", Symbols[[i]])),
c("Open", "High", "Low", "Close", "Volume"),
sep = ".")
为了支持你的数据。
试试下面的代码:
library("quantmod")
Stocks<-c("JSE:APN","JSE:BAT","JSE:CPI","JSE:DSY","JSE:NPN","JSE:DST")
getSymbols(Stocks,src="google",auto.assign=TRUE)
get("JSE:NPN")
JSE:NPN - "Johannesburg Stock Exchange : Share code"(Naspers - NPN)
(数据可在google财经)
我正在尝试使用 quantmod::getSymbols
.
我正在加载的代码在 Yahoo 上不可用(它们是南非股票),因此我需要从本地目录和 .csv 文件加载它们。
我的符号文件如下所示:
head(symbols)
[1] "SHFJ" "FSRJ" "RDFJ" "GRTJ" "MTNJ" "SLMJ"....
我的符号价格历史记录在单独的 csv 文件中,每个文件都包含一个日期列和 OHLC 列,header 仅用于 OHLC 价格。
我使用函数getSymbols.csv
函数如下:
getSymbols.csv(symbols, env, dir="E:/data/CData_Files_NB/", return.class = "xts", extension="csv")
但我收到以下错误消息
loading SHFJ .....done.
Error in `colnames<-`(`*tmp*`, value = c("SHFJ.Open", "SHFJ.High","SHFJ.Low", : length of 'dimnames' [2] not equal to array extent
如果有人能告诉我我做错了什么,我将不胜感激。我不确定是否有其他方法可以将股票价格加载到 quantstrat 包中。
getsymbols.csv 需要六列:开盘价、最高价、最低价、收盘价、成交量、调整后
您的数据没有 "Adjusted" 列;它有 5 个列名而不是 6 个,这会导致您看到的 dimnames 错误。
如果您可以修改本地数据文件,请尝试添加一个空的 "Adjusted" 列(通过在 LibreOffice 或 Excel 中打开 CSV 即可轻松完成)
或尝试复制 getsymbols.csv() 函数并更改:
colnames(fr) <- paste(toupper(gsub("\^", "", Symbols[[i]])),
c("Open", "High", "Low", "Close", "Volume", "Adjusted"),
sep = ".")
到
colnames(fr) <- paste(toupper(gsub("\^", "", Symbols[[i]])),
c("Open", "High", "Low", "Close", "Volume"),
sep = ".")
为了支持你的数据。
试试下面的代码:
library("quantmod")
Stocks<-c("JSE:APN","JSE:BAT","JSE:CPI","JSE:DSY","JSE:NPN","JSE:DST")
getSymbols(Stocks,src="google",auto.assign=TRUE)
get("JSE:NPN")
JSE:NPN - "Johannesburg Stock Exchange : Share code"(Naspers - NPN)
(数据可在google财经)