나는 rbresearch에 의해 기세 전략을 S & P 500 기업으로 복제하려고했습니다. 그러나 그것은 getSymbols
모든 시세에 대한 가격 데이터를 잡을 수 없음을 밝혀와 나는 단지 사용하여 약 300 주식을 가지고 : R - xts 객체가 문자열을 만나는 것은 표준 모호하지 않은 형식이 아닙니다
getSymbols(symbols, src='yahoo', index.class=c("POSIXt","POSIXct"), from='2000-01-01', to = '2015-12-31')
내가 "이
thread는이 문제에 대해 논의하고 소스에서 오는 될 수 발견 chart.yahoo.com ". 그러므로 나는
jlhoward에 의해 제안 된 방법을 채택하고 경고없이 완벽하게 작동하는 것처럼 보였다.
업데이트 : quantmod
패키지를 확인한 후, 지금도 ichart.yahoo.com에서 데이터를 가져 오는 중임을 발견했습니다. 이 월별 가까운 계산에 관해서
그러나, 오류가 여기에
Error in try.xts(x) :
Error in as.POSIXlt.character(x, tz, ...) : character string is not in a standard unambiguous format
Called from: try.xts(x)
내 질문입니다, 같이 읽고 이해가 안 무엇 :
1) 가능한 방법이 있나요 더 신뢰할 수있는 따옴표를 제공하는 "ichart.yahoo.com"에 getSymbols를 지정 하시겠습니까?
2) 모든 심볼을 xts 객체로 변환하여 try.xts에서 오류가 발생한 이유는 무엇입니까?
3) ISO 8601 형식이 아닌 날짜가 있다고 생각합니다. 그러나 날짜는 일 (day)에 불과하기 때문에 날짜를 POSIXct로 변환하는 방법을 찾지 못했습니다.
4) 코드에 대한 모든 의견을 보내 주시면 감사하겠습니다.
코드가 첨부되어 있고 sp500components.csv는 here에서 다운로드 할 수 있습니다.
시간과 친절한 도움에 감사드립니다. 모두 제일 좋다.
library(quantstrat)
library(FinancialInstrument)
library(TTR)
symbols <- read.table("sp500components.csv", header = FALSE, sep = ",")$V1
symbols <- as.character(symbols)
currency("USD")
stock(symbols, currency="USD",multiplier=1)
MonthlyAd <- function(x){
# Converts daily data to monthly and returns only the monthly close
# Note: only used with Yahoo Finance data so far
# Thanks to Joshua Ulrich for the Monthly Ad function
#
# args:
# x = daily price data from Yahoo Finance
#
# Returns:
# xts object with the monthly adjusted close prices
sym <- sub("\\..*$", "", names(x)[1])
Ad(to.monthly(x, indexAt = 'lastof', drop.time = TRUE, name = sym))
}
symEnv <- new.env()
f <- function(x) {
uri <- "http://ichart.yahoo.com/table.csv"
symbol <- paste("s",x,sep="=")
from <- "a=1&b=1&c=2000"
to <- "d=31&e=12&f=2015"
period <- "g=d"
ignore <- "ignore=.csv"
query <- paste(symbol,from,to,period,ignore,sep="&")
url <- paste(uri,query,sep="?")
try(assign(x,read.csv(url),envir=symEnv))
}
lapply(symbols,f)
ts <- function(x) {
x["Date"] <- as.Date.character(x[["Date"]], "%Y-%m-%d")
x <- xts(x[,-1], order.by = x$Date)
colnames(x) <- gsub("Adj", "Adjusted", colnames(x))
assign(symbol, x)
}
eapply(symEnv, ts)
symbols.close <- do.call(merge, eapply(symEnv, MonthlyAd))