RusQuant



Для пользователей R 3.0

Если у вас не получается установить rusquant стандартным способом, попробуйте установку их исходников:
 install.packages("rusquant", repos="http://R-Forge.R-project.org", type="source")



RusQuant это модуль расширение для программной среды R, разработанное для того, чтобы упростить работу с данными Российских площадок РТС и ММВБ.

RusQuant дополняет собой модуль quantmod, реализуя стандартные интерфейсы для получения данных из открытых источников.

Как установить RusQuant? Нет ничего проще, запускаем R и выполняем команду:

install.packages("rusquant", repos="http://R-Forge.R-project.org")

История изменений


v 0.1
Реализована автоматическая загрузка исторических данных с Finam. Доступны временные интервалы начиная с минутного и заканчивая месячным.

v 0.2
Автоматическая загрузка исторических данных с сайта РТС. Доступны только дневные данные с задержкой 15 минут.

Автоматическая загрузка доски опционов с сайта РТС.

v 0.3
Добавлены тиковые данные с сайта Finam

v 0.3.3
Добавлены дивиденды с сайта Тройка Диалог

Планы


Добавить вычисление скорректированных цен акций, с учетом дивидендов.

Добавить статистику.

Примеры


Примеры работы с rusquant можно посмотреть в статьях:

Исследуем Российский рынок ценных бумаг с помощью R
Обновление rusquant 0.2
Тиковые данные rusquant 0.3
Дивиденды rusquant 0.3.3



33 comments:

  1. Полезный пакет, спасибо!
    До сегодняшнего дня (пока наткнулся на Ваш блог=) загружал данные с помощью vba и api альфадиректа в текстовые файлы, а потом уже крутил в R.

    ReplyDelete
  2. Котировки с Финама перестали грузиться. Кажется, Финам поменял URL для загрузки. Планируете фикс?

    Спасибо за блог! Очень интересно и доходчиво вы рассказываете про машинное обучение и его применение на бирже.

    ReplyDelete
  3. valinn, пришлите пожалуйста пример скрипта, который Вы используете, я только что проверил пару простых скриптов типа
    getSymbols('SBER', src='Finam') и все грузится. Возможно были временные проблемы на финаме? И, да, пару месяцев назад они меняли URL после чего пришлось обновить версию библиотеки, так что если у Вас стоит старая версия, то рекомендую обновиться.

    ReplyDelete
    Replies
    1. Оказалось, проблема была с RStudio: она не хотела выходить в интернет. Починил. Вопрос снимаю. Спасибо!

      Delete
    2. Очень полезный пакет. С новой версией R 3.0.0 перестал работать. Просьба к автору пересобрать пакет заново.

      Delete
  4. Сергей, добрый день!
    Спасибо за замечательный пакет. Планируете ли вы его обновление для версии R 3.0?
    Он, к сожалению, перестал работать.
    Александр

    ReplyDelete
  5. Добрый день!

    Очень нужный пакет, большое спасибо!

    Есть, кажется, проблема с тикерами, содержащими символы типа "&", такими, как "MICEX O&G" (индекс нефтегазовой отрасль).

    Я пробовал вот как:

    > setSymbolLookup(MICEXOG = list(name="MICEXO&G",src="Finam"))
    > getSymbols('MICEXOG', from = dti, to = dtf, per = "1min", verbose = T)

    При этом в то в HTTP-запрос попадает параметр cn=MICEXO&G и закачивается файл без заголовков, с которым программа не может работать дальше.
    Error in `[.data.frame`(fr, , (5:9)) : undefined columns selected

    Для того, чтобы закачивался "правильный" файл с заголовками, нужно чтобы в URL было не cn=MICEXO&G, а cn=MICEXO%26G
    Однако если написать
    > setSymbolLookup(MICEXOG = list(name="MICEXO%26G",src="Finam"))
    > getSymbols('MICEXOG', from = dti, to = dtf, per = "1min", verbose = T)
    то возникает ошибка "Don't know about MICEXOG" (видимо, под этим именем тикер не находится в общем списке)

    Буду очень благодарен за любую подсказку - как действовать дальше?

    С уважением,
    Александр

    ReplyDelete
  6. Добрый день. Очень полезный пакет, большое спасибо! Помогите, пожалуйста, разобраться с закачкой исторических данных по фьючерсам РТС. Если для скачивания склеенных данных необходимо указать SPFB.RTS или SPFB.BR, то как скачать данные по RIU3, BRU3 или BRV3 - неясно. Пробовал указывать как SPFB.BRU3, так и просто BRU3 - всё одинаково, котировки не закачиваются. :( А очень хочется проверить ряд идей с фьючами, но выкачивать их всевозможные комбинации руками с Финама и потом закачивать в R - совсем не весело.

    С уважением, Константин.

    ReplyDelete
  7. не получается получить данные с Финама

    > getSymbols('SPFB.RTS', from='2013-10-01', to='2013-11-08', src='Finam')
    As of 0.4-0, ‘getSymbols’ uses env=parent.frame() and
    auto.assign=TRUE by default.

    This behavior will be phased out in 0.5-0 when the call will
    default to use auto.assign=FALSE. getOption("getSymbols.env") and
    getOptions("getSymbols.auto.assign") are now checked for alternate defaults

    This message is shown once per session and may be disabled by setting
    options("getSymbols.warning4.0"=FALSE). See ?getSymbol for more details
    Ошибка в names(res) <- unlist(names) :
    атрибут 'names' [10715] должен быть той же длины, что и вектор [10714]

    ReplyDelete
  8. Обновил пакет. Проблема была в списке инструментов с сайта Finam. Теперь работает. Добавил возможность скачивать с сайта mfd.ru
    На данный момент все детали обновления (и примеры использования загрузки данных с mfd.ru) здесь: http://r-group.mifit.ru/
    Вопросы можно задавать на почту arbuzov1989@gmail.com.
    В будущем надеюсь загрузим обновление на r-forge.

    ReplyDelete
  9. Сергей, добрый день!
    У меня возникает ошибка при получении данных. Прошу помощи!

    > getSymbols("SPFB.RTS", from="2011-01-01", src="Finam")
    Ошибка в names(res) <- unlist(names) :
    атрибут 'names' [10972] должен быть той же длины, что и вектор [10971]

    ReplyDelete
    Replies
    1. Должно быть исправлено в версии 0.3.7, которая в ближайшие сутки появится на сайт

      Delete
  10. У меня на mac os x 10.8.2 с R 3.1.1 поставилось только так:
    install.packages("rusquant", repos="http://download.r-forge.r-project.org/", type="source")

    ReplyDelete
  11. В связи с удалением пакета Defaults с CRANa возникла проблема установке пакета rusquant.
    Поправил проблему. На данный момент актуальные исходники находятся на r-forge но пока еще не собранные.
    Исправленную версию пакета можно установить из zip архива:
    https://www.dropbox.com/sh/rbx294u738m26c8/AAB-bVB5VjLrD6NQT9-872hqa?dl=0 (ссылка на архив)

    ReplyDelete
  12. Добрый день! Опять изменился список инструментов Финам (добавился ещё один).

    Ошибка аналогичная той, которую упоминал Ole Mub - November 18, 2013 at 1:46 PM.

    ReplyDelete
  13. Со вчерашнего дня новая ошибка

    > SBER <- getSymbols("SBER", from="2009-01-01", to="2009-12-31", src="Finam", period="5min", auto.assign=FALSE)
    Error in data.frame(names, res, markets) :
    arguments imply differing number of rows: 11684, 11685

    Видимо Финам опять что-то подправил(

    ReplyDelete
  14. Добрый день,
    Давно пользуюсь quantmod и quantstrat библиотеками, только что наткнулся на реализацию для нашего рынка. Финам поменял список инструментов, обновите пакет пожалуйста.
    Огромное спасибо!

    ReplyDelete
  15. Я у себя поправил исходники, и переустановил библиотеку из архива. Если кому надо, качайте отсюда https://www.dropbox.com/s/du23e8pzi7yh638/rusquant_0.3.8.tar.gz?dl=0
    Научите меня обновлять библиотеку в репозитории, я и там поправлю:)

    ReplyDelete
  16. Добрый день,
    Установка пакета с https://www.dropbox.com/s/du23e8pzi7yh638/rusquant_0.3.8.tar.gz?dl=0 не решила проблему.
    Есть какие-нибудь решения?

    ReplyDelete
  17. Извиняюсь...
    во всем виноваты кривые руки. все работает. Огромное спасибо и за пакет, и за исправления.

    ReplyDelete
  18. Ошибка в выдаче данных все еще присутствует.
    Кто-то знает решение?

    getSymbols("SPFB.RTS", from=Sys.Date()-5, src="Finam", period="5min")

    Ошибка в data.frame(names, res, markets) :
    arguments imply differing number of rows: 11742, 11743

    ReplyDelete
  19. Спасибо, все работает, данные из Финама импортируются

    ReplyDelete
  20. работает? странно. у меня последние 2 недели пстоянно ошибкаОшибка в data.frame(names, res, markets) :
    arguments imply differing number of rows: 11753, 11754

    ReplyDelete
  21. Последнее время Финам постоянно изменяет файл со списком инструментов, поэтому библиотека перестает работать. Попробуйте обновить пакет, если не работает. Создал страницу с описанием основных возможностей пакета rusquant:
    http://r-group.mifit.ru/?page_id=141

    ReplyDelete
  22. Error in data.frame(names, res, markets) :
    arguments imply differing number of rows: 12008, 12009

    Можно с этим что-то сделать?

    ReplyDelete
  23. > install.packages("rusquant")
    Warning in install.packages :
    package ‘rusquant’ is not available (for R version 3.2.3)

    ReplyDelete
  24. > install.packages("rusquant", repos="http://R-Forge.R-project.org", type="source")
    Installing package into ‘C:/Users/ekharchenko/Documents/R/win-library/3.2’
    (as ‘lib’ is unspecified)
    Warning in install.packages :
    package ‘rusquant’ is not available (for R version 3.2.2)

    ReplyDelete
    Replies
    1. Hа новых версиях R, rusquant не хочет устанавливаться из репозитория, качайте файл rusquant_0.3.9.zip руками и устанавливайте, выбирая в качестве источника не репозиторий CRAN, а файл zip. Затем устанавливаем зависимые от него пакеты.

      Delete
  25. С финама не грузиться NASDAQ 100, так как в имени пробел, с MFD S&P 500, из-за символа &. Есть ли возможность добавить функцию для загрузки данных по Tickers ID?

    ReplyDelete
  26. Обновил R до версии 3.3.1, установил вручную rusquant 0.4.0, но увы, что-то поломалось:
    При попытке использования getSymbols с источником Finam получаю это:
    Error in data.frame(names, res, markets) :
    arguments imply differing number of rows: 13754, 13756

    ReplyDelete
    Replies
    1. подебажил немного.
      проблема в "loadStockList" последних двух версий файла /pkg/R/getSymbols.R
      Во-первых, после чтения данных и парсинга, почему-то names короче на 1 чем markets и ids, возможно проблема в исходных данных, глубоко не разбирался.

      Но вот это я совсем не понял:

      names[[1]]->names
      names[-(11414)]->names

      В итоге взял эту функцию из версии файла 31 (https://r-forge.r-project.org/scm/viewvc.php/pkg/R/getSymbols.R?view=markup&root=rusquant&pathrev=31), она работает.

      Delete
  27. Похоже финам опять поменял свой айпи. Перестало работать(

    ReplyDelete
  28. в дропбоксе для виндоус, а на линукс он не ставится(((

    ReplyDelete