Найти тему

Как узнать текущую цену на акции Мосбиржи через гугл-таблицы

Оглавление

В предыдущей статье я упоминала альтернативный способ получения цен на акции для тех российских бумаг, которые GoogleFinance не дает. В основном это относится к привилегированным акциям и ETF.

Формула

=IMPORTxml("https://iss.moex.com/iss/engines/stock/markets/shares/boards/TQBR/securities.xml?iss.meta=off&iss.only=marketdata&marketdata.columns=SECID,LAST", concatenate("//row[@SECID='",ТИКЕР,"']/@LAST"))

Посмотрите, как это работает в таблице — оттуда можно скопировать формулу или использовать таблицу как шаблон.

Выглядит страшновато, но это не мешает использовать формулу в работе.
Выглядит страшновато, но это не мешает использовать формулу в работе.

Обратите внимание, что для получения данных по API таблица должна быть настроена в американском формате. Об этом я подробно написала в статье Как настроить таблицу для корректного получения данных.

Как это работает

-2

В ячейку, где хотим увидеть цену, вставляем вышеприведенную формулу и заменяем слово ТИКЕР на адрес ячейки с нужным тикером: А2.

Для другого инструмента нужно заменить А2 на адрес другой ячейки с соответствующим тикером или просто скопировать обычным способом, "протянув" за ячейку вниз, если акций много, адреса ячеек заменятся автоматически.

Для получения цены для Ростелеком-преф, указываем в формуле адрес ячейки с соответствующим тикером RTKMP — А3 .
Для получения цены для Ростелеком-преф, указываем в формуле адрес ячейки с соответствующим тикером RTKMP — А3 .

Этот способ подходит для всех акций Московской биржи.

Для ETF формула выглядит немного иначе:

=IMPORTxml("https://iss.moex.com/iss/engines/stock/markets/shares/boards/TQTF/securities.xml?iss.meta=off&iss.only=marketdata&marketdata.columns=SECID,LAST", concatenate("//row[@SECID='",A10,"']/@LAST"))

По этой формуле получаем последнюю цену сделки по акции иностранного биржевого инвестиционного фонда.

Основное отличие запросов для акций и ETF — это идентификатор режима торгов. Его можно узнать на сайте Мосбиржи в карточке инструмента:

-4

Таким образом, в формуле указываем идентификатор

для акций — TQBR

для ETF с расчетами в рубляхTQTF, например #FXRU #VTBE #SBSP

для ETF с расчетами в $TQTD, например #TECH #TGLD #AKSP #FXIM

для ETF с расчетами в €TQTE, например #TEUR #AKEU

и указываем соответствующую ячейку с тикером бумаги, цена которой нас интересует. Также вместо адреса ячейки можно указать тикер явно, вместо адреса ячейки пишем тикер в кавычках, например "RTKMP".

Здесь можно посмотреть все запросы, которые можно отправить к API Московской биржи.

Итак, в общем виде формула выглядит так:

=IMPORTxml("https://iss.moex.com/iss/engines/stock/markets/shares/boards/РЕЖИМ ТОРГОВ/securities.xml?iss.meta=off&iss.only=marketdata&marketdata.columns=SECID,ПАРАМЕТР", concatenate("//row[@SECID='",A10,"']/@ПАРАМЕТР"))

Здесь описание всех возможных параметров, которые можно получить таким способом (смотрите раздел marketdata).

Можно также извлекать данные из раздела securities и других, для этого в формуле нужно заменить marketdata на securities, trade и тд.

Цена иностранных акций на Московской бирже

С 24 августа 2020 года инвесторы могут заключать сделки с некоторыми акциями, входящими в индекс S&P500 с расчетами в рублях. Эти акции имеют тикер вида ТИКЕР-RM, например #AAPL-RM

Для этих акций акциям получаем цену в рублях по такой формуле:

=IMPORTxml("https://iss.moex.com/iss/engines/stock/markets/foreignshares/boards/FQBR/securities.xml?iss.meta=off&iss.only=marketdata&marketdata.columns=SECID,LAST", concatenate("//row[@SECID='",A8,"']/@LAST"))

Формула отличается только рынком — вместо shares указываем foreignshares (иностранные ц.б.), и идентификатор для иностранных акций указываем FQBR.

Цена на облигации

Для облигаций, торгующихся на Мосбирже, формула также несколько отличается — в адресе вместо shares пишем bonds и идентификатор меняем на TQOB, остальное без изменений:

=IMPORTxml("https://iss.moex.com/iss/engines/stock/markets/bonds/boards/TQOB/securities.xml?iss.meta=off&iss.only=marketdata&marketdata.columns=SECID,LAST", concatenate("//row[@SECID='",A4,"']/@LAST"))

Особенности API Мосбиржи

Во первых, как и в способе с GoogleFinance, есть задержка по времени до 20 минут, перед сделкой обязательно смотрите текущие цены у брокера.

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

Поэтому обычно я использую функцию GoogleFinance, а API Мосбиржи только для привилегированных акций, ETF и некоторых обыкновенных российских акций, например ВТБ. Это связано с тем, что GoogleFinance округляет цену до двух знаков после точки. Например, цена акций ВТБ равна 0.03774, а функция GoogleFinance отобразит 0.04, и это значительно повлияет на точность расчетов.

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

👍Если статья была вам полезна, поставьте лайк и подпишитесь на канал, чтобы не пропустить ничего важного. Все анонсы статей и небольшие заметки я публикую в телеграм-канале @justcountit.

👩‍💻Если у вас остались вопросы, с радостью отвечу на них в комментариях.

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