Введение в пакет cbr
Артем Симакин
2024-09-22
cbr_intro.RmdДанные, предоставленные Центральным Банком РФ
ЦБ РФ предоставляет возможность отправлять запросы для получения данных с их серверов. Они это называют веб-сервис, их несколько:
- Получение данных, используя 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)