Основные функции пакета
В первую очередь пакет дает возможность доступа к различным информационным источникам.
В большинстве случаев используется широко известная функция getSymbols.
Кроме того, с помощью команды getStockList можно скачать подробную информацию о торгуемых инструментах на Московской бирже.
Наибольший интерес представляет то, что R стал способен обмениваться данными с торговыми терминалами.
Наиболее важный аспект связанный с пропускной способностью живого потока данных был решен в данном пакете.
Установка пакета
Официальная и наиболее протестированная версия пакета rusquant находится на сервере CRAN.
Кроме того, существуют версии пакета на стадии разработки на R-forge и Github.
Версии можно установить 3 способами:
1. Загружаем библиотеку devtools, : вводим команду install_git(‘arbuzovv/rusquant’), которая устанавливает пакет на компьютер
2. Вводим команду install.packages(“rusquant”, repos=”http://R-Forge.R-project.org”), которая устанавливает пакет на компьютер
2. Идем в меню “Пакеты -> Определить хранилища…”, добавляем репозиторий R-forge. После этого “Пакеты -> Установить пакет(ы)…”, находим пакет rusquant и нажимаем “Ок”
Включаем пакет в текущем пространстве имен R
Пакет подключается к текущему пространству командой library(rusquant)
В случае успешного выполнения этапа установки пакета будет выдано следующее сообщение:
>Загрузка требуемого пакета: quantmod
>Загрузка требуемого пакета: xts
>Загрузка требуемого пакета: zoo
>
>Присоединяю пакет: ‘zoo’
>
>The following objects are masked from ‘package:base’:
>
> as.Date, as.Date.numeric
>
>Загрузка требуемого пакета: TTR
>Version 0.4-0 included new data defaults. See ?getSymbols.
Возможные проблемы при установке
В случае возникновения проблем при установке (или переустановке) рекомендуется удалить ранее установленную версию пакета командой remove.packages(‘rusquant’) и после этого повторить пункт установка пакета.
P.S. в случае необходимости обновления пакета рекомендуется также сперва удалить пакет, а после этого установить наиболее свежую версию.
Загрузка данных и возможные проблемы
Загрузка данных происходит с помощью простой команды getSymbols. Например
>getSymbols(‘AFLT’,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
[1] “AFLT”
В случае возникновения проблем при загрузке, проверьте соединение с интернетом и отсутствие прокси при подключению к интернету. В случае, если имеется прокси, необходимо будет настроить подключение к интернету. Можно это сделать 2 способами:
1. Заходим в свойства ярлыка R. Там мы увидим путь до исполняемого файла. К этому пути добавим настройки прокси. Строка должна получиться следующего вида: “C:\Program Files\R\your_R_version\bin\Rgui.exe” http_proxy=http://user_id:passwod@your_proxy:your_port/
2. Заходим в “Свойства компьютера -> Дополнительные параметры системы -> Переменные среды”. Создаем 2 переменные среда пользователя.
- Имя переменной: http_proxy, Значение переменной: http://proxy.company.ru:port
- Имя переменной: http_proxy_user, Значение переменной: login:password
После этого перезагружаем компьютер и радуемся, что любая версия R подключается через прокси.
Замечание для работающих в RStudio
В Rstudio по прежнему не решили проблему подключения к интернету через прокси, поэтому пытаться загрузить данные из интернета через RStudio через прокси бесполезно. Но если найдете способ, сообщите мне.
Список источников данных
Пакет rusquant зависит от quantmod и одноименной функцией getSymbols можно пользоваться как для загрузки данных с зарубежных рынков, так и отечественных. Кроме того, доступны и другие источники финансовой информации. Выбор источника осуществляется с использованием параметра src. Рассмотрим более подробно работу с источниками данных:
- Finam – один из наиболее известных финансовых источников информации в России (http://www.finam.ru/). Кроме аналитических материалов, предоставляет также архивные данные по всему российскому рынку и небольшой части зарубежного. Как работать? Заходим на сайте на вкладку “Про рынок” -> “Экспорт данных” (http://www.finam.ru/analysis/profile041CA00007/). Выбираем необходимый для анализа рынок и инструмент. В поле “Имя контракта” появляется идентификатор инструмента (например GAZP) и именного этот идентификатор мы используем в качестве аргумента вызываемого инструмента. Например: getSymbols(‘GAZP’,src=’Finam’). Хотя через Finam можно загружать достаточно широкий список инструментов, существует максимально количество строк, доступных для выгрузки, т.е. если выбирать минутные цены например с 2007 года, то файл приходит пустой. Такой специфика архивных данных у Финама. В таком случае удобнее пользоваться источником данных с сайта mfd (об этом в следующем пункте.Кроме того, существуют некоторые проблемы связанные с API, которые приводят к тому, что загрузка иногда становится невозможной. Команда разработчиков пакета старается оперативно вносить правки в программный код rusquant. Период или загружаемые таймфрейм можно задать параметром period. Доступные периоды для загрузки:
- “tick”
- “secs”
- “seconds”
- “mins”
- “hours”
- “days”
- “weeks”
- “months”
- “quarters”
- “years”
- MFD – достаточно известный российский портал посвященный финансам (mfd.ru). Полный список инструментов для загрузки можно посмотреть перейдя на сайт в раздел “Котировки -> Экспорт в MetaStock” (http://mfd.ru/export/) мы увидим список доступных инструментов. Для загрузки данных с сайта для аргумента название инструмента мы вставляем написание инструмента с сайта mfd. Например для акций Аэрофлота, команда будет выглядеть следующим образом:
getSymbols(“Аэрофлот”,src=”
mfd“,period=”1min”,from=”2007- 01-01″) Доступны периоды для загрузки:“tick”
“1min”
“5min”
“10min”
“15min”
“30min”
“hour”
“day”
“week”
“month”Для поиска названия тикера можно воспользоваться встроенной переменнойtickers, которая представляет из себя список всех инструментов с соответствующими индикаторами для API mfd. Подгружаем в пространство имен командой data(“tickers”). После этого ищем в этой переменной похожие инструменты:tickers[grep(“SiZ3″,tickers[,4]),]
Находим нужно нам название:“SiZ3 (12.2013)”После выполняем следующую команду:getSymbols(“SiZ3 (12.2013)”,src=”mfd“,period=”1min”,from=”2007-01-01″,auto. assign=FALSE)->x Кстати, про параметр auto.assign — он отвечает за автоприсвоение имени переменной. Я предпочитаю задавать значение auto.assign=FALSE для того, чтобы работать с привычными мне названиями переменных.(в случае примера выше x) а не переменной “SiZ3 (12.2013)” - Oanda – наиболее авторитетный форекс брокер (http://oanda.com/) на зарубежном рынке. Предоставляет различные сервисы связанные валютными расчетами (перевод из одной валюты в другую, экспорт данных и т.д.).Функция загрузки данных была реализована в пакете quantmod.
- Yahoo
- FRED
- Rogov
- Alpari
Задание периода выгрузки информации
Примеры использования загрузки данных