rusquant

Пакет rusquant – список процедур созданных специально для анализа Российского финансового рынка.
В данном разделе размещена актуальная информация о пакете rusquant и примерах его применения.
Официальная страница проекта: http://r-forge.r-project.org/projects/rusquant/
Информация по пакету с персональной страницы Сергея Едунова: http://www.algorithmist.ru/p/rusquant.html

Установка пакета
Пакет можно установить 3 способами:
1. Наверное самый простой способ: вводим команду install.packages(“rusquant”, repos=”http://R-Forge.R-project.org”), которая устанавливает пакет на компьютер
2. Идем в меню “Пакеты -> Определить хранилища…”, добавляем репозиторий R-forge. После этого “Пакеты -> Установить пакет(ы)…”, находим пакет rusquant и нажимаем “Ок”
3. Иногда возникают проблемы с подключение к интернету через R (особенно, если компьютер находится в корпоративной прокси), тогда первые два способа не подходят. Идем по ссылке https://r-forge.r-project.org/R/?group_id=1175. По этой ссылке хранятся наиболее актуальная версия пакета. Скачиваем zip файл. После этого заходим в “Пакеты -> Установить пакет(ы) из локальных zip-файлов…”, выбираем скачанный zip файл и таким образом устанавливается пакет.

Включаем пакет в текущем пространстве имен 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
  • Google
  • FRED
  • Rogov
  • Alpari

Задание периода выгрузки информации

Примеры использования загрузки данных

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>