Блог им. tradingloop

Строим дашборд на API бирже

Заметил, что совсем немного постов освещают тему API Мосбиржи. Вместе с тем, Мосбиржа позволяет не только отгружать котировки акций, но и например, забирать данные по кривой ОФЗ, коэффициентам корреляции, индексам и многое другое. Замечательно, что биржа отдает данные в csv и json, что позволяет легко настроить их автоматическое импортирование. Например, можно импортировать их в Google Sheets и создавать там онлайн-дашборды. 

Один такой дашборд я построил для рынка ОФЗ, выведя на панель данные о спредах, исторической динамике и индексе облигаций. Для того чтобы вся эта красота работала необходимо 4 простых шага:
  • создать запрос с помощью API в формате CSV (Google Sheets не умеет в json, а сторонние костыли не всегда справляются)
  • импортировать данные в Google Sheets с помощью функции ImportData используя ссылку из пункта 1
  • Распарсить импортированные строки на столбцы
  • Прикрутить графики
Строим дашборд на API бирже

Несколько важных моментов:
  1. Для того чтобы сразу вытаскивать нужные столбцы и не таскать легенду, к строке запроса необходимо добавить iss.meta=off&iss.only=название таблицы&название_таблицы.columns=список_нужных_столбцов"
  2. Google подтягивает данные при открытие таблицы, а обновляет их раз в час, для более частого обновления, нужен скрипт.
  3. Живые котировки биржа задерживает на 15 мин.
Так выглядит базовый запрос по индексу: https://iss.moex.com//iss/history/engines/stock/markets/index/securities/RGBITR.json
В нем много ненужной легенды и расчет начинается с 2012, а не с актуальных значений.

Так выглядит запрос с нужной мне информацией: https://iss.moex.com//iss/history/engines/stock/markets/index/securities/RGBITR.json?sort_order=desc&iss.meta=off&iss.only=history&history.columns=TRADEDATE,CLOSE,YIELD

Для импорта в Google Sheets достаточно заменить json на csv.

Мой дашборд по ОФЗ, канал в Телеграм.
★30
14 комментариев
  • создать запрос с помощью API в формате CSV (Google Sheets не умеет в json, а сторонние костыли не всегда справляются)
  • импортировать данные в Google Sheets с помощью функции ImportData использу
Попробуйте через XML. Давно так делаю.
=IMPORTXML(«iss.moex.co.....

т
олько период опроса какой то невнятный
avatar
Андрей К, период данных можно менять либо аргументом from, либо start, либо first. Так как сервер часто отдает ограниченный набор данных, нужно несколько запросов. Соединение всего этого в google sheets сложнее, поэтому здесь я не заморачивался. А вот для выгрузки всей истории через цикл, самое то. 
avatar
А как ты это сам раскопал?
Тимофей Мартынов, зачем копать, всё есть на сайте мосбиржи - https://www.moex.com/a2193
avatar
Макс Обухов, даже все сделки есть? — круто!
avatar
Тимофей Мартынов, вообще все началось с этого поста https://habr.com/ru/post/486716/.
avatar
Тимофей Мартынов, а актуальные данные по числу акций, выручке/прибыли и прочей нашей канители — ты ведь не с Мосбиржи берёшь, из каких-то других источников? Я видел у тебя ссылки на e-disclosure. И это всё?
Владимир Рожанковский, сами забиваем руками
самое полезное  на  смартлабе  за  последние 5  лет -)))
По спб такого нет?
avatar
На сайте написано, что бесплатно — с задержкой.
А если платно — то цена какая?
Нигде не нашел
avatar
тут ещё примеры использования moex api есть voischev.ru/t/moex-api/
avatar
Так и не нашел в API Мосбиржи возможности получения торгового календаря.  Похоже пока буду искать потеряю только время. Выгоднее было бы работать на Binance, чем на этой бирже 
Виктор Бондаренко, это?)) — iss.moex.com/iss/engines/stock.xml

теги блога tradingloop

....все тэги



UPDONW
Новый дизайн