Tuesday, September 6, 2011

Обновление rusquant 0.2

Небольшая библиотека для работы с Российскими фондовыми рынками в R пополнилась новыми возможностями. Теперь, помимо доступа к данным с Финама, прямо из R вы можете получить доступ к котировкам фьючерсов и опционов Forts, доступным на сайте rts.ru

Итак, для тех что еще не установил себе rusquant - ставим, для тех, кто уже установил - обновляемся командой:

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

Что новенького?

1. Стала доступной доска опционов:

library(rusquant)
rts <- getOptionChain("RTS-9.11", "2011-09-15", src="Forts", session = "MAIN")
В качестве параметров передается название базового инструмента, дата экспирации и источник данных src="Forts", кроме того, можно указать сессию session = "MAIN" - основную или session = "EVENING" - вечернюю. Для примера, построим улыбку волатильности. Замечу, что ожидаемая волатильность в данном примере считается биржей и точной методики расчета мне найти не удалось.
plot(cbind(rts$calls[,'Strike'], rts$calls[,'IV']), type='l', main="Implied Volatility", ylab="Volatility", xlab="Strike")
Графики открытого интереса:
plot(cbind(rts$calls[,'Strike'], rts$calls[,'OI']), type='l', col='blue', main="Open Interest", ylab="R", xlab="Strike")
lines(cbind(rts$puts[,'Strike'], rts$puts[,'OI']), type='l', col='red')
2. Стали доступны дневные исторические данные по опционам:
getSymbols("RTS-9.11M150911CA 185000", from="2011-03-21", src="Forts")
chartSeries(RTS911M150911CA185000)


Планы на будущее: добавить дивиденды, статистику и тиковые данные.

7 comments:

  1. Спасибо за обновление. Тиковые данные с РТС будут весьма кстати. :)

    ReplyDelete
  2. что-то оно качает только по отдельности символы

    ReplyDelete
    Replies
    1. Александр, приведите пожалуйста пример вызова, у меня вроде качает по несколько:

      > getSymbols(c('SBER','GAZP'), src='Finam')
      [1] "SBER" "GAZP"

      Delete
  3. Приветствую!
    Прежде всего - благодарю за создание rusquant!

    Замечание: при выполнении примера возникает ошибка

    > rts <- getOptionChain("RTS-9.11", "2011-09-15", src="Forts", session = "MAIN")
    Ошибка в read.table(file = file, header = header, sep = sep, quote = quote, :
    no lines available in input



    ReplyDelete
    Replies
    1. А вы не пробовали посмотреть на имя контракта?
      Может такого уже вообще нет и он в архиве где-то.
      Наверно RTS-9.11 это сентябрь 2011года все-таки...

      Delete
    2. Как-то даже не подумал о таком варианте, т.к. к примеру конкретный колл (а не вся доска) на тот же самый контракт, выгружается и рисуется без ошибок:
      getSymbols("RTS-9.11M150911CA 185000", from="2011-03-21", src="Forts")
      chartSeries(RTS911M150911CA185000)

      Но возможно Ваша правда на счет архива. (Замечание было для приведенного примера, с доской опционов на контракты текущего года - проблем не возникало.)

      Delete
  4. Добрый день, давно нашел Ваш блог, очень полезный спасибо!
    Столкнулся с такой проблемой, при скачивании данных с Финама отраслевых тикеров (MICEXO&G, MICEXM&M) символ & распознается как выбор колонки, (Ошибка в `[.data.frame`(fr, , (5:9)) : undefined columns selected). Есть ли какой то способ на время отменить свойство этого символа?

    ReplyDelete