В предыдущей статье я упоминала альтернативный способ получения цен на акции для тех российских бумаг, которые 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 на адрес другой ячейки с соответствующим тикером или просто скопировать обычным способом, "протянув" за ячейку вниз, если акций много, адреса ячеек заменятся автоматически.
Этот способ подходит для всех акций Московской биржи.
Для 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 — это идентификатор режима торгов. Его можно узнать на сайте Мосбиржи в карточке инструмента:
Таким образом, в формуле указываем идентификатор
для акций — 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.
👩💻Если у вас остались вопросы, с радостью отвечу на них в комментариях.
Ценные бумаги и другие финансовые инструменты, упомянутые в данном обзоре, приведены исключительно в информационных целях; обзор не является инвестиционной идеей, советом, рекомендацией, предложением купить или продать ценные бумаги и другие финансовые инструменты.