Опции
Просмотр
К последнему сообщению К первому непрочитанному
fn601196  
#1 Оставлено : 6 июля 2018 г. 23:16:39(UTC)
fn601196

Статус: Посетитель

Группы: Участник
Зарегистрирован: 15.12.2017(UTC)
Сообщений: 2

Добрый день. Посоветуйте, пожалуйста, как могу решить следующую проблему.

Раньше (в начале года) выкачивал историю цен на ETF с Финама с помощью такого кода в R.

Код:

library(quantmod)
library(xts)
library(zoo)
library(rusquant)
library(TTR)

etf_env <- new.env()
start_date = as.Date("2017-06-01")
end_date = Sys.Date()-1

available_etf_list = c("FXMM", "FXCN", "FXIT", "FXJP", "FXDE", "FXUS", "FXAU", "FXUK", "FXRB", "FXRL", "FXRU")

setDefaults(getSymbols, env = etf_env, src = "Finam")
setDefaults(getSymbols.Finam, env = etf_env, from = start_date, to = end_date, period = "day")

getSymbols(available_etf_list, auto.assign = TRUE)


И вот раньше после этого получалась Environment с историей цен на каждый из инструментов. А теперь получаю только истории первых трех инструментов. И ошибку:

Код:

Error in download.file(stock.URL, destfile = tmp, quiet = !verbose) : 
  cannot open URL 'http://export.finam.ru/table.csv?d=d&market=1&f=table&e=.csv&dtf=1&tmf=1&MSOR=0&sep=1&sep2=1&at=1&p=8&em=181751&df=1&mf=5&yf=2017&dt=5&mt=6&yt=2018&cn=FXJP&datf=1'
In addition: Warning message:
In download.file(stock.URL, destfile = tmp, quiet = !verbose) :
  cannot open URL 'http://export.finam.ru/table.csv?d=d&market=1&f=table&e=.csv&dtf=1&tmf=1&MSOR=0&sep=1&sep2=1&at=1&p=8&em=181751&df=1&mf=5&yf=2017&dt=5&mt=6&yt=2018&cn=FXJP&datf=1': HTTP status was '403 Forbidden'


При этом, если копирую адрес, который не удалось скачать R, в браузер - файл скачивается. Вероятно, Финам стал ограничивать выдачу на автоматические запросы? Хотя quantmod должен по умолчанию делать паузы, чтобы не перегрузать сервер...

Посоветуйте, пожалуйста, как мне исправить эту ошибку и получить все истории.

Заранее большое спасибо!
HelpDesk  
#2 Оставлено : 9 июля 2018 г. 11:52:36(UTC)
HelpDesk

Статус: Активный написатель

Группы: Участник
Зарегистрирован: 11.02.2017(UTC)
Сообщений: 578

В ответ на Ваше обращение сообщаем, что сервис экспорта котировок не предназначен для автоматизированного использования. Мы не можем проконсультировать Вас по написанию стороннего скрипта.

Спасибо за обращение!
fn601196  
#3 Оставлено : 10 июля 2018 г. 8:49:04(UTC)
fn601196

Статус: Посетитель

Группы: Участник
Зарегистрирован: 15.12.2017(UTC)
Сообщений: 2

Расскажу, как удалось решить проблему - наверняка кому-то пригодится.

В файле getSymbols.R (который находится в C:\Users\[пользователь]\Documents\R\win-library\3.3\rusquant\R) в описании функции getSymbols.Finam начиная со строки 475 был такой код:

Код:

       if(i >= 5 && length(Symbols) > 5) {
         message("pausing 1 second between requests for more than 5 symbols")
         Sys.sleep(1)


По всей видимости, раньше Финам давал до пяти символов выкачивать без перерыва. А теперь - судя по наблюдениям из первого сообщения - дает не больше трех. Поэтому проблему удалось решить, изменив код на указанный ниже (с двумя секундами - больше для подстраховки, наверняка и одну можно было оставить) и засорсив новый файл:

Код:

       if(i >= 3 && length(Symbols) > 3) {
         message("pausing 2 second between requests for more than 3 symbols")
         Sys.sleep(2)
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
Guest
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.

© 2007–2017 Холдинг «ФИНАМ»Форум YAF.NET 2.3.0 BETA 20160808 | YAF.NET © 2003-2024, Yet Another Forum.NET
Страница сгенерирована за 0.427 секунды.