Андрей Филиппович
Андрей Филиппович личный блог
11 мая 2024, 17:20

Гугл-таблица с данными из 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

11 Комментариев
  • nsk54
    11 мая 2024, 17:58
    У меня как-то было более 30 бумаг и для полной прогрузки такого количества запросов гугл таблица без перерыва стояла 2 часа!!!
    У меня, без всякой подгрузки, ТУПО Стартануть файл, занимало более 30 мин. 
    ОПТИМИЗИРОВАЛ… Хуле? 
    ps. минуты три…
    *не гугл-хуюгл, а тупо с компа…
  • qqmber
    11 мая 2024, 18:06
    Честно, я не нашёл способа как подтягивать режим торгов. Он точно есть, но на данный момент у меня нет решения 
    Узнать в каких бордах торгуется нужный 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
    • 0PK
      13 мая 2024, 02:56
      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 (для корпората)
  • IliaM
    11 мая 2024, 18:33
    Как в excel решить проблему с обновлением данных по API? Что-то у меня они не очень хотят обновляться.
    • amberfoxman
      12 мая 2024, 12:47
      IliaM, если правильно помню CTR +ALT+F9 обновляет данные по АПИ.
      Пользоваться осторожно в начале дня — Excel может падать, причём весь, а не только файл, в котором обновляешь данные
      • IliaM
        12 мая 2024, 14:34
        В EXCEL удовлетворительно работает встроенный сервис. Обновления данных проходит корректно, но всегда интересно что-то унивесальное настроить (API). 
  • V.
    11 мая 2024, 22:10
    сам всё сделал на базе гугл таблиц, но в последнее время задумываюсь что как бы не пришлось переезжать на Яндекс таблицы из-за секционных рисков
    • amberfoxman
      12 мая 2024, 12:55
      V., пробовал Excel, Google таблицы, Libre Office, везде есть и плюсы и минусы, однозначного фаворита нет. Яндекс таблицы не пробовал ещё, было бы интересно почитать про чужой опыт. Но, подозреваю, Яндекс таблицы панацеей не станут.

      Из таблиц сейчас думаю остановиться на Libre Offie (дёшево-сердито, нет рисков отключения от сервиса), а по хорошему надо бы полностью свой скрипт писать, на питоне, js или R
  • Ришат Галиуллин
    12 мая 2024, 22:58
    Так не формулы надо использовать, а скрипты. Язык программирования на основе ява скрипта, в документациях есть примеры. Я сам не эксперт, но метод фетч урл аналогичен формуле в примере. А такая долгая загрузка видимо из за того что изменение значения в одной ячейке идёт перерасчёт в других. Скриптом не бывает таких проблем, можно ещё телеграмм бота подключить для оповещения если отправка по емэйлу не катит. Возможностей море, можно и контакты телефона использовать и ии жимини. 
  • Maxstyx
    13 мая 2024, 07:08
    Чтобы не дергать бумаги по одной, я вытаскиваю все с нужных мне режимов торгов, а потом ищу с помощью lookup. Никаких подвисаний по 20 минут не замечено

Активные форумы
Что сейчас обсуждают

Старый дизайн
Старый
дизайн