Блог им. 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.

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

т
олько период опроса какой то невнятный
avatar

Андрей К

Андрей К, период данных можно менять либо аргументом from, либо start, либо first. Так как сервер часто отдает ограниченный набор данных, нужно несколько запросов. Соединение всего этого в google sheets сложнее, поэтому здесь я не заморачивался. А вот для выгрузки всей истории через цикл, самое то. 
avatar

tradingloop

А как ты это сам раскопал?
Тимофей Мартынов, зачем копать, всё есть на сайте мосбиржи - https://www.moex.com/a2193
avatar

Макс Обухов

Макс Обухов, даже все сделки есть? — круто!
avatar

VladMih

Тимофей Мартынов, вообще все началось с этого поста https://habr.com/ru/post/486716/.
avatar

tradingloop

самое полезное  на  смартлабе  за  последние 5  лет -)))

теги блога tradingloop

....все тэги



2010-2020
UPDONW