Попытка сопоставить биржевые тикеры с откорректированной ценой. - PullRequest
0 голосов
/ 05 июня 2018

У меня есть сценарий ниже, который показывает исторические цены акций просто отлично, но я не могу получить список тикеров по дате с корректированными ценами.Я получаю 25 акций и заголовки, которые выглядят следующим образом: $ df.tickers, price.open, price.high, price.low, price.close, объемная цена.Я не понимаю, что когда я набираю 'out', я получаю набор данных, но когда я печатаю dim (out), я получаю ноль.Это не имеет никакого смысла.В любом случае, я пытаюсь запустить код по ссылке ниже.

http://programmingforfinance.com/2017/10/portfolio-optimization-with-r/

Вот код, с которым я работаю.

library(BatchGetSymbols)
library(sqldf)
library(dplyr)

# set dates
first.date <- Sys.Date() - 360
last.date <- Sys.Date()

# set tickers
tickers <- c('MMM','ABT','ABBV','ABMD',
'ACN','ATVI','AYI','ADBE','AMD','AAP',
'AES','AET','AMG','AFL','A','APD','AKAM',
'ALK','ALB','ARE','ALXN','ALGN','ALLE','AGN','ADS')

out <- BatchGetSymbols(tickers = tickers, 
                         first.date = first.date,
                         last.date = last.date, 
                         cache.folder = file.path(tempdir(), 
                                                  'BGS_Cache') ) # cache in tempdir()

# dim(out$df.tickers)
# 6175 10


# After downloading the data, we can check the success of the process for each ticker. 
# Notice that the last ticker does not exist in yahoo finance or google and therefore 
# results in an error. All information regarding the download process is provided in the dataframe df.control:

# print(out$df.control)
price_adjusted <- as.data.frame(out)
price_final <- subset(price_adjusted, select = c(df.control.ticker, df.tickers.price.adjusted, df.tickers.ref.date))
#    df_final <- subset(price_final, df.control.ticker == 'MMM', select = c("df.control.ticker","df.tickers.price.adjusted","df.tickers.ref.date"))

Я считаю, что API Google был отключен в прошлом году, и поэтому вы больше не можете получать исторические цены акций от Google.Есть мысли о том, как заставить это работать?Спасибо!

1 Ответ

0 голосов
/ 05 июня 2018

В учебнике используются данные в формате временных рядов 'xts'.Чтобы преобразовать ваши данные как таковые,

library(BatchGetSymbols)
library(tidyr)
library(quantmod)

# set dates
first.date <- Sys.Date() - 360
last.date <- Sys.Date()

# set tickers
tickers <- c('MMM','ABT','ABBV','ABMD',
             'ACN','ATVI','AYI','ADBE','AMD','AAP',
             'AES','AET','AMG','AFL','A','APD','AKAM',
             'ALK','ALB','ARE','ALXN','ALGN','ALLE','AGN','ADS')

out <- BatchGetSymbols(tickers = tickers, 
                       first.date = first.date,
                       last.date = last.date, 
                       cache.folder = file.path(tempdir(), 
                                                'BGS_Cache') ) 
out<-out$df.tickers
out<-out[,c("ref.date","ticker", "price.adjusted")]
q <- spread(out, ticker, price.adjusted)
portfolioPrices <- xts(q[,-1], order.by=q[,1])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...