Skip to contents

Данные, предоставленные Центральным Банком РФ

ЦБ РФ предоставляет возможность отправлять запросы для получения данных с их серверов. Они это называют веб-сервис, их несколько:

  • Получение данных, используя XML
  • Веб-сервис для получения ежедневных данных
  • Веб-сервис для регионального раздела
  • Веб-сервис получения информации справочника по кредитным организациям
  • Веб-сервис получения информации по рынку ценных бумаг
  • Веб-сервис для поисковой системы

Пакет cbr позволяет работать c получением данных, используя XML и с веб-сервисом получения информации по рынку ценных бумаг.

Подключаем пакет:

library("cbr")

Получение данных, используя XML

Рассмотрим, какие функции есть:

  • получения котировок на заданный день cbr_cur_ondate(ondate = )
# котировки на 14 июня 2016 года
currency <- cbr_cur_ondate(ondate = "2016-06-14")
head(currency)
##   numcode charcode nominal              name   value vunitrate      id
## 1     036      AUD       1 Australian Dollar 47.9031   47,9031  R01010
## 2     944      AZN       1  Azerbaijan Manat 42.5989   42,5989 R01020A
## 3     826      GBP       1    Pound Sterling 93.4185   93,4185  R01035
## 4     051      AMD     100     Armenian Dram 13.5089  0,135089  R01060
## 5     974      BYR   10000  Belarusian Ruble 32.6600  0,003266  R01090
## 6     975      BGN       1     Bulgarian Lev 37.4141   37,4141  R01100

Здесь необходимо отметить, что в список попадают все котировки, которые на заданную дату выставлены (может быть так, что в один день котировка на вьетнамский донг есть, а в другой - нет).

  • получения динамики котировок cbr_currency(currency = , from = , to = )
currency <- cbr_currency(currency = "R01150", from = "2023-01-05", to = "2024-09-18")
head(currency)
##   units   value       date currency
## 1 10000 29.1760 2023-01-19   R01150
## 2 10000 29.1662 2023-01-20   R01150
## 3 10000 29.0894 2023-01-21   R01150
## 4 10000 29.0738 2023-01-24   R01150
## 5 10000 29.1264 2023-01-25   R01150
## 6 10000 29.2130 2023-01-26   R01150
  • получения динамики сведений об остатках средств на корреспондентских счетах кредитных организаций cbr_balances(from = , to = )
# динамика сведений за указанный период
balances <- cbr_balances(from = "2007-01-01", to = "2013-01-01")
head(balances)
##   russia moscow       date
## 1 638100 481600 2007-01-01
## 2 678400 497200 2007-01-09
## 3 627500 465900 2007-01-10
## 4 572900 412200 2007-01-11
## 5 541500 389700 2007-01-12
## 6 474100 336700 2007-01-15
  • получения динамики котировок драгоценных металлов cbr_metal(from = , to = )
  • получения динамики ставок межбанковского рынка cbr_credit_rates(from = , to = )
  • получения динамики ставок “валютный своп” cbr_swap(from = , to = )
  • получения динамики отпускных цен Банка России на инвестиционные монеты cbr_coins(from = , to = )

Веб-сервис получения информации по рынку ценных бумаг

Посмотрим на вспомогательный датафрейм, в котором содержится информация о всех переменных рынка ценных бумаг с которыми работает пакет cbr:

##                          name  node       type  status
## 1              AuctionsBMRXML   BMR DateFromTo checked
## 2                 AuctionsXML    AU DateFromTo checked
## 3               BankPapersXML    GR   OnToDate checked
## 4      DirRepoAuctionParamXML    DR   OnToDate checked
## 5            FixedStav1DayXML    fs   OnToDate checked
## 6           FixedStav30DayXML    fs   OnToDate checked
## 7            FixedStav7DayXML    fs   OnToDate checked
## 8                  FlikvidXML    FL   OnToDate checked
## 9                      GCurve    GC     OnDate checked
## 10               GCurveParams    GP   OnToDate checked
## 11           GKOOFZ_AnalitXML    GA DateFromTo checked
## 12              GKOOFZ_MR_XML    MR DateFromTo checked
## 13                 IBMRepoXML    IR     OnDate checked
## 14           ItogiDepoAuctXML   Idp   OnToDate checked
## 15               LoansGoldXML    LG   OnToDate checked
## 16            Loansgold_1DXML    RS DateFromTo checked
## 17          Loansgold_365DXML    RS DateFromTo checked
## 18                MosPrimeXML    MP DateFromTo checked
## 19                       NFEA    NF DateFromTo checked
## 20   NonMarketAuctionParamXML nmacp   OnToDate checked
## 21 NonMarketAuctionResultsXML nmacr   OnToDate checked
## 22         NonMarketCreditXML    nc   OnToDate checked
## 23      NonMarketCredit_1DXML    RS DateFromTo checked
## 24    NonMarketCredit_365DXML    RS DateFromTo checked
## 25                     OBRXML   OBR DateFromTo checked
## 26              OpenMarketXML    OM   OnToDate checked
## 27                  REPOFXXML    RP DateFromTo checked
## 28                    REPOXML    RP DateFromTo checked
## 29             RepoSessionXML    RS DateFromTo checked
## 30             Repo_sheduleFX    RS DateFromTo checked
## 31            SecLoansDebtXML    SL   OnToDate checked
## 32              UnSecLoansXML    UL DateFromTo checked
## 33        rates_lombard12mXML    rl   OnToDate checked
## 34         rates_lombard1wXML    rl   OnToDate checked
## 35         rates_lombard2wXML    rl   OnToDate checked
## 36         rates_lombard3mXML    rl   OnToDate checked
## 37         rates_lombard6mXML    rl   OnToDate checked

Давайте посмотрим на данные сессии прямого РЕПО по фиксированной ставке (RepoSessionXML):

repo <- cbr_security_info("RepoSessionXML")
head(repo)

Как можно заметить, данные в очень сыром виде, поэтому необходимо произвести несколько манипуляций, чтобы они были презентабельные, для этого заходим в соответствующий раздел и смотрим, что обозначают переменные

# сделаем дату в нормальном формате
repo[, "D0"] <- as.Date(as.POSIXct(repo[, "D0"])) + 1
# оставим один знак после запятой
repo[, 2:length(names(repo))] <- apply(repo[, 2:length(names(df))], 1, as.numeric)
# обновим названия переменных
names(repo) <- c("Date", "1dayRate", "1dayVolume", "1weekRate", "1weekVolume")
head(repo)