Функция MOEXFINANCE() для Google Sheets

4 января 2022     3071   

Для того, чтобы посчитать, сколько каких бумаг надо докупить - я веду табличку в google sheets. Это удобнее, чем excel - прежде всего, комфортным доступом с телефона или любого компьютера. Для расчета нужна текущая стоимость (котировка) по каждой бумаге. Копировать их руками - неудобно.

В google sheets есть функция GOOGLEFINANCE(), с помощью которой можно получить котировки по западным бумагам. А вот по российским, торгующимся на ММВБ - нет. Благо google предоставляет возможность написания своих функций, похожую на макросы в экселе, а ММВБ - программный интерфейс доступа к данным API.

Использую это, я написал аналогичную функцию MOEXFINANCE() для акция/ETF/БПИФ, торгуемых на ММВБ (MOEX). С помощью этой функции можно получить последнюю цену закрытия по указанной бумаге или цену закрытия на указанную дату. Код открыт и доступен на GitHub - можно быть уверенным, что ничего противоестественного внутри не происходит.

Использование MOEXFINANCE()
Использование MOEXFINANCE()

Небольшая инструкция как установить и пользоваться доступна здесь.

Самый простой способ - скопировать себе файл, как описано в инструкции - в нем функция MOEXFINANCE() уже работает.

P.S.: иногда при открытии есть задержка обновления данных от MOEX, в ячейке с формулой показывается Loading и гугл приостанавливает выполнение скрипта. Тогда закройте фай и откройте его заново. Если есть идеи как это победить - буду благодарен.

Связанные посты
3 комментария 👇
Konstantin Trunin, Co-founder of IT company, Software Engineer, Project Manager 4 января 2022

Спасибо. Попробую.

JFYI: я пока вот так получаю цену бумаг на мосбирже:

=IFERROR(IMPORTXML("http://iss.moex.com/iss/engines/stock/markets/shares/securities/"&$A5&".xml", "/document/data[@id=""marketdata""]/rows/row[@BOARDID=""TQBR""]/@LAST"),"")

  Развернуть 1 комментарий
Михаил Disputy, Разработчик ПО 4 января 2022

Тогда закройте фай и откройте его заново. Если есть идеи как это победить - буду благодарен.

Перезагрузить данные в ячейке можно используя зависимую ячейку в формуле импорта.

Например делается какой-то

=IMPORTXML(Tratata) & A1

Если вручную, то помещаем в A1 кнопку с галочкой, если автоматом, заводим изменение этой ячейки по таймеру.

  Развернуть 1 комментарий

@Disputy, прикольный вариант - хотя и немного "костыльный" )) Хочется все же доработать до "блеска".

  Развернуть 1 комментарий

😎

Читать можно всем, но комментирование доступно только участникам Клуба.

Что вообще здесь происходит?


Войти