Добавить в корзинуПозвонить
Найти в Дзене
Дневник трейдера в юбке

Получаю данные с API Мосбиржи себе в гугл таблицу

Когда я смотрю на один конкретный актив, то я могу легко оценить как меняются его котировки, насколько он проигрывает индексу Московской биржи или наоборот обыгрывает его. Когда мне надо что-то сказать про портфель из 10 активов, то можно потратить время и провести такой же анализ. Когда в портфеле 25 активов, то уже становится жалко тратить время и начинаешь задавать себе вопрос, а надо ли вообще проводить такой анализ, мол я и так примерно понимаю динамику котировок. Но это "примерно понимаю" может легко оказаться плюс-минус 15%. Я для себя решила, что хочу научиться подгружать данные в автоматическом режиме с сервиса Московской биржи. А вот что с ними дальше делать у меня очень много разных идей. О них я расскажу отдельно, когда у меня будет уже красивая картинка, а заодно и скриншот. А пока просто показываю как подгрузить котировки и что можно с ними сделать из простого. Магия Московской биржи заключается в том, что котировки акций, БПИФ корпоративных облигаций и ОФЗ получаются п
Оглавление

Когда я смотрю на один конкретный актив, то я могу легко оценить как меняются его котировки, насколько он проигрывает индексу Московской биржи или наоборот обыгрывает его. Когда мне надо что-то сказать про портфель из 10 активов, то можно потратить время и провести такой же анализ. Когда в портфеле 25 активов, то уже становится жалко тратить время и начинаешь задавать себе вопрос, а надо ли вообще проводить такой анализ, мол я и так примерно понимаю динамику котировок. Но это "примерно понимаю" может легко оказаться плюс-минус 15%.

Я для себя решила, что хочу научиться подгружать данные в автоматическом режиме с сервиса Московской биржи. А вот что с ними дальше делать у меня очень много разных идей. О них я расскажу отдельно, когда у меня будет уже красивая картинка, а заодно и скриншот. А пока просто показываю как подгрузить котировки и что можно с ними сделать из простого.

Получаю котировки по акциям

Магия Московской биржи заключается в том, что котировки акций, БПИФ корпоративных облигаций и ОФЗ получаются по-разному! То есть тут надо использовать 4 разных запроса. В чем тут логика не понятно. Более того, данные по облигациям и ОФЗ корректно подгружаются только в основную торговую сессию. И это конечно очень сильно затрудняет реализацию того, что я хотела для себя сделать.

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

И опять же, можно попробовать выгружать данные не с API Московской биржи, а откуда-то еще, просто научившись парсить страницу. О таком варианте я читала на просторах интернета, но это уже куда сложнее. И тут вопрос глубокого смысла и предполагаемой отдачи.

Но вернемся к API, чтобы подгрузить текущие котировки по акциям, надо написать короткий текст:

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

В ячейки В3 должен находиться тикер актива. Саму формулу можно запихнуть в любую ячейку. У меня это выглядит вот так.

-2

Получаю котировки по фондам

Котировки по фондам можно получить в любой момент. И вот какой код для этого надо вставить:

= IMPORTxml ( "https://iss.moex.com/iss/engines/stock/markets/shares/boards/TQTF/securities.xml?iss.meta=off&iss.only=marketdata&marketdata.columns=SECID,LAST" , СЦЕПИТЬ ( "//row[@SECID='" , B1 , "']/@LAST" ) )

И кстати, если у вас есть какие-то сомнения по тикеру, можете просто заглянуть по адресу ссылки, который дан в коде - http://iss.moex.... С фондами-то более ли менее понятно, а вот у ОФЗ тикеры которые знают далеко не все инвесторы.

https://iss.moex.com/iss/engines/stock/markets/shares/boards/TQTF/securities.xml?iss.meta=off&iss.only=marketdata&marketdata.columns=SECID,LAST
https://iss.moex.com/iss/engines/stock/markets/shares/boards/TQTF/securities.xml?iss.meta=off&iss.only=marketdata&marketdata.columns=SECID,LAST

Котировки по ОФЗ

Чтобы получить котировки по ОФЗ надо вставить вот этот код. Тикер должен быть прописан в ячейке В1. Повторюсь, этот код работает не 24 часа 7 дней в неделю и это обидно.

= IMPORTxml ( "https://iss.moex.com/iss/engines/stock/markets/bonds/boards/TQOB/securities.xml?iss.meta=off&iss.only=marketdata&marketdata.columns=SECID,LAST" , СЦЕПИТЬ ( "//row[@SECID='" , B1 , "']/@LAST" ) )

Покажу сколько-то тикеров по ОФЗ. Собственно не каждый брокер их транслирует, поэтому проще их подсмотреть на сайте Московской биржи.

https://iss.moex.com/iss/engines/stock/markets/bonds/boards/TQOB/securities.xml?iss.meta=off&iss.only=marketdata&marketdata.columns=SECID,LAST
https://iss.moex.com/iss/engines/stock/markets/bonds/boards/TQOB/securities.xml?iss.meta=off&iss.only=marketdata&marketdata.columns=SECID,LAST

Котировки по корпоративным облигациям

И заключительный пункт программы - котировки по корпоративным облигациям и код для Google docs:

= IMPORTxml ( "https://iss.moex.com/iss/engines/stock/markets/shares/boards/TQTF/securities.xml?iss.meta=off&iss.only=marketdata&marketdata.columns=SECID,LAST" , СЦЕПИТЬ ( "//row[@SECID='" , B1 , "']/@LAST" ) )

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

Какие еще данные можно вытащить из API можно посмотреть вот тут. Судя по всему можно вытащить даже индекс Мосбиржи, но у меня руки до этого еще не дошли.

Что дальше?

Данные я получила, но что дальше? Дальше их можно использовать для анализа в автоматическом режиме и тут может быть масса вариантов. Вот, например, самый простой - посчитать как изменились котировки в годовых процентах. Для этого мне всего лишь надо из текущей стоимости вычесть цену покупки, потом это все поделить на цену покупки. Далее это умножается на 365 дней и делится на число дней, прошедшее с момента приобретения актива. А число дней опять же можно получить в автоматическом режиме, вычтя из сегодняшней даты дату покупки.

-5

А главное на словах описание формулы выглядит длинным, а для кого-то может даже страшным. Но сама формула очень короткая:

=ОКРУГЛ((F3-E3)/E3*365/((СЕГОДНЯ()-D3)),4)

И по картинке выше можно понять что где находится. Например, в ячейку F3 подставляется текущая цена актива на бирже, в Е3 хранится цена покупки, которую я вписываю ручками. В D3 хранится дата покупки и вот с ней я намучалась. Гугл хочет, чтобы она записывалась именно так, как у меня на картинке. В противном случае он не вычитает дату из даты. Можно конечно это записать как угодно, нагородить сверху формул, но мне лень. Мне проще дату писать в этом формате месяц/дата/год.

Да и в целом с этим API я уже намучалась... Я вот поняла как подгружать котировки на определенную дату, подготовила таблицу, написала несколько тикеров, формулу, потянула ее, для половины тикеров все посчиталось, для половины нет. Открываю адрес из ссылки в браузере, вижу, что там есть информация по нужному мне тикеру, но Google пишет:

#N/A. Нет данных для импорта.

И пока я не могу разобраться, что с этим делать.

-6

Поэтому у меня конечно наполеоновские планы, но тут не все так просто, как мне хотелось бы...

Ну и напоследок приглашаю подписываться на мой закрытый канал на Дзене, в понедельник там вышла статью про крипту.

Как условно безопасно обменять крипту на рубли
Дневник трейдера в юбке28 июля 2025