Блог им. AndreyFilippovich

Гугл-таблица с данными из API Московской биржи. Подготовка таблицы

С таблицами excel разобрались, но у нас есть ещё большой пласт информации по гугл таблицам.

Тут также необходимо подготовка так как без неё у вас могут не подгружаться данные.

Вся подготовка заключается в изменении региональных настроек.

Переходим в «Файл» -> «Настройки»
Гугл-таблица с данными из API Московской биржи. Подготовка таблицы
Далее в «Региональные настройки» меняем регион на «Соединенные Штаты». Нажимаем «Сохранить настройки»
Гугл-таблица с данными из API Московской биржи. Подготовка таблицы

Это автоматически включит все настройки, которые нам необходимы, больше ничего не требуется.

Как работать с таблицей?

Всё работает примерно по такой же схеме как и в двух предыдущих статьях по Excel. Вот первая статья, а вот вторая. Предлагаю прежде ознакомиться с ними, чтобы двигаться дальше.

Для примера вы можете использовать мою таблицу-пример, которая находится тут: https://t.me/filippovich_money/652

В гугл таблицах есть несколько отличий от таблиц excel:

1- при входе у вас будут спрашивать про обмен данными с третьими сторонами. Вам надо разрешить доступ.

Гугл-таблица с данными из API Московской биржи. Подготовка таблицы

2- у гугл таблиц формулы немного отличаются

Она выглядит следующим образом:

=IMPORTxml(«iss.moex.com/iss/engines/stock/markets/bonds/boards/РЕЖИМ_ТОРГОВ/securities.xml?iss.meta=off&iss.only=РАЗДЕЛ&РАЗДЕЛ.columns=SECID,ДАННЫЕ», concatenate("//row[@SECID='",ISIN,"']/@ДАННЫЕ"))

Пойдём по порядку.

Режим торгов

Честно, я не нашёл способа как подтягивать режим торгов. Он точно есть, но на данный момент у меня нет решения 😑

Поэтому режим торгов необходимо проставлять руками… В будущем обязательно надо исправить косяк.

Для того чтобы найти режим торгов бумаги нам необходимо зайти на сайт Московской биржи и в поиске ввести ISIN бумаги. Сайт найдёте по ссылке: https://www.moex.com/

Для примера возьмём бумагу Контрол Лизинг выпуск 2 с ISIN RU000A1086N2

Вводим в поиске сайта и переходим
Гугл-таблица с данными из API Московской биржи. Подготовка таблицы
При переходе на страницу бумаги прокручиваем немного вниз и находим поле Идентификатор режима торгов. Это то, что нам нужно.
Гугл-таблица с данными из API Московской биржи. Подготовка таблицы

С режимом торгов разобрались, теперь посмотрим ещё раз на формулу

=IMPORTxml(«iss.moex.com/iss/engines/stock/markets/bonds/boards/РЕЖИМ_ТОРГОВ/securities.xml?iss.meta=off&iss.only=РАЗДЕЛ&РАЗДЕЛ.columns=SECID,ДАННЫЕ», concatenate("//row[@SECID='",ISIN,"']/@ДАННЫЕ"))

Сейчас разберём, что такое РАЗДЕЛ и ДАННЫЕ.

Это мы ищем на специальном сайте для API Московской биржи. Вот ссылка: https://iss.moex.com/iss/engines/stock/markets/bonds/

Например, нам надо узнать НКД у бумаги, на сайте он расположен так:
Гугл-таблица с данными из API Московской биржи. Подготовка таблицы

Securities- это раздел, где находится множество всевозможных данных.

ACCRUEDINT - это название тех данных, которые нам нужны. В данном случае так называется НКД

Теперь нам известны ISIN, режим торгов, раздел и данные. Подставим всё это в формулу:

=IMPORTxml(«iss.moex.com/iss/engines/stock/markets/bonds/boards/TQCB/securities.xml?iss.meta=off&iss.only=Securities&Securities.columns=SECID,ACCRUEDINT», concatenate("//row[@SECID='",RU000A1086N2,"']/@ACCRUEDINT"))

В приведённом примере эта формула располагается в ячейке F2

Гугл-таблица с данными из API Московской биржи. Подготовка таблицы

Прошу обратить внимание на ту же самую формулу, но для другой бумаги:

=IMPORTxml(«iss.moex.com/iss/engines/stock/markets/bonds/boards/TQIR/securities.xml?iss.meta=off&iss.only=securities&securities.columns=SECID,ACCRUEDINT», concatenate("//row[@SECID='",A3,"']/@ACCRUEDINT"))

У неё режим торгов другой. Примерно процентов 70 по гугл-таблице именно из-за такой мелочи. Будьте внимательны!

Почему мне сильно не нравится работать с таблицей в гугл таблицах

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

Этой вещью является ограничение на количество отправляемых запросов. Бесконечные Loading...

Из-за этого отправка более 5-10 запросов разом может превратиться и в 20 минут ожидания. А 5-10 запросов- это даже не 1 строка данных, которые я собираю, то есть 1 бумага.

У меня как-то было более 30 бумаг и для полной прогрузки такого количества запросов гугл таблица без перерыва стояла 2 часа!!!

Иногда и на 2 запросах гугл таблицы могут грузиться 10 минут. Это крайне неудобно, когда тебе надо быстренько зайти, прогрузить информацию и выйти, а тут тебе надо долго ждать.

В Excel таблицах такого ограничения нет и вы можете хоть 1000 бумаг разом грузить, никаких ограничений не будет.

 

В общем, много кому именно гугл таблицы и нужны, поэтому появилась эта таблица.

Если вам был полезен урок, то ставьте лайк и подписывайтесь на меня. А также подписывайтесь на меня в телеграм: https://t.me/filippovich_money

★28
11 комментариев
У меня как-то было более 30 бумаг и для полной прогрузки такого количества запросов гугл таблица без перерыва стояла 2 часа!!!
У меня, без всякой подгрузки, ТУПО Стартануть файл, занимало более 30 мин. 
ОПТИМИЗИРОВАЛ… Хуле? 
ps. минуты три…
*не гугл-хуюгл, а тупо с компа…
avatar
Честно, я не нашёл способа как подтягивать режим торгов. Он точно есть, но на данный момент у меня нет решения 
Узнать в каких бордах торгуется нужный ISIN очень просто, например
iss.moex.com/iss/engines/stock/markets/bonds/securities/SU26234RMFS3?iss.only=securities&securities.columns=SECID,SHORTNAME,BOARDID
Описание режимов тоже доступно 
iss.moex.com/iss/engines/stock/markets/bonds/boards
avatar
qqmber,
Спасибо помогли.
=IMPORTxml(СЦЕПИТЬ(«iss.moex.com/iss/engines/stock/markets/bonds/securities/»,B8,"? iss.only=securities&securities.columns=SECID,BOARDID,MARKETCODE,CURRENCYID"), СЦЕПИТЬ("//row[@CURRENCYID='SUR'and @MARKETCODE='FNDT']/@BOARDID"))

В8 — ячейка где прописан тикер (для офз)/isin (для корпората)
avatar
Как в excel решить проблему с обновлением данных по API? Что-то у меня они не очень хотят обновляться.
avatar
IliaM, если правильно помню CTR +ALT+F9 обновляет данные по АПИ.
Пользоваться осторожно в начале дня — Excel может падать, причём весь, а не только файл, в котором обновляешь данные
avatar
В EXCEL удовлетворительно работает встроенный сервис. Обновления данных проходит корректно, но всегда интересно что-то унивесальное настроить (API). 
avatar
сам всё сделал на базе гугл таблиц, но в последнее время задумываюсь что как бы не пришлось переезжать на Яндекс таблицы из-за секционных рисков
avatar
V., пробовал Excel, Google таблицы, Libre Office, везде есть и плюсы и минусы, однозначного фаворита нет. Яндекс таблицы не пробовал ещё, было бы интересно почитать про чужой опыт. Но, подозреваю, Яндекс таблицы панацеей не станут.

Из таблиц сейчас думаю остановиться на Libre Offie (дёшево-сердито, нет рисков отключения от сервиса), а по хорошему надо бы полностью свой скрипт писать, на питоне, js или R
avatar
Так не формулы надо использовать, а скрипты. Язык программирования на основе ява скрипта, в документациях есть примеры. Я сам не эксперт, но метод фетч урл аналогичен формуле в примере. А такая долгая загрузка видимо из за того что изменение значения в одной ячейке идёт перерасчёт в других. Скриптом не бывает таких проблем, можно ещё телеграмм бота подключить для оповещения если отправка по емэйлу не катит. Возможностей море, можно и контакты телефона использовать и ии жимини. 
Чтобы не дергать бумаги по одной, я вытаскиваю все с нужных мне режимов торгов, а потом ищу с помощью lookup. Никаких подвисаний по 20 минут не замечено
avatar

теги блога Андрей Филиппович

....все тэги



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