Блог им. Wolffrr

Импорт данных с Московской биржи в Google Sheets

Привет, друзья!

По мотивам поста от Тимофея о том, насколько полезен ChatGPT в нашей жизни. Все освоил за 5 минут! Далее статья с решением, которую я опубликовал на своем сайте https://osaengine.ru/2024/08/02/%D1%83%D1%87%D0%B8%D0%BC-smartlab-chatgpt.html

Импорт данных с Московской биржи в Google Sheets

Шаг 1: Создание нового документа в Google Sheets

Первым шагом необходимо создать новый документ Google Sheets. Перейдите на сайт Google Sheets и создайте новый документ или откройте существующий.

Шаг 2: Открытие редактора сценариев

В вашем документе Google Sheets перейдите в меню “Расширения” и выберите “Apps Script”. Это откроет редактор сценариев, где вы сможете написать и выполнить скрипт для импорта данных.

Шаг 3: Написание скрипта для импорта данных

В редакторе сценариев удалите все существующие скрипты и вставьте следующий код:

<code>function importMoexData() {
  var url = 'https://iss.moex.com/iss/engines/stock/markets/shares/boards/TQBR/securities.xml';
  try {
    var response = UrlFetchApp. <a name="cut"></a> fetch(url);
    var xml = response.getContentText();
    var document = XmlService.parse(xml);
    var root = document.getRootElement();
    var dataElements = root.getChildren('data');
    var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
    sheet.clear();

    dataElements.forEach(function(dataElement) {
      var rows = dataElement.getChild('rows').getChildren('row');

      // Добавляем заголовки
      if (rows.length > 0) {
        var headers = rows[0].getAttributes().map(function(attr) {
          return attr.getName();
        });
        sheet.appendRow(headers);
      }

      // Добавляем данные
      rows.forEach(function(row) {
        var data = row.getAttributes().map(function(attr) {
          var value = attr.getValue();
          // Заменяем точки на запятые в значениях
          if (!isNaN(value.replace('.', '').replace(',', ''))) {
            value = value.replace('.', ',');
          }
          return value;
        });
        sheet.appendRow(data);
      });
    });
  } catch (e) {
    Logger.log('Error: ' + e.message);
  }
}
</code>

Этот скрипт извлекает данные с сайта Московской биржи в формате XML и импортирует их в ваш Google Sheet, заменяя точки на запятые в числовых значениях.

Шаг 4: Выполнение скрипта

Сохраните скрипт, нажав на значок диска в верхней части редактора. Затем выполните скрипт, нажав на значок треугольника (выполнить). Скрипт загрузит данные с указанного URL и импортирует их в ваш Google Sheet.

Заключение

Таким образом, всего за несколько минут вы можете настроить автоматический импорт данных с Московской биржи в Google Sheets, используя Google Apps Script. Этот метод позволяет экономить время и автоматизировать рутинные задачи, что особенно полезно для трейдеров и аналитиков.

Хотя вопрос был задан Тимофеем на Smart-Lab, этот метод может быть полезен многим, кто ищет эффективные способы работы с финансовыми данными. Надеюсь, эта статья поможет вам в ваших начинаниях!

Данная публикация является личным мнением автора. Мнение владельца сайта может не совпадать с мнением автора.
6.6К | ★21
11 комментариев
Молодец!
avatar
Большое спасибо!
Круто! А если я хочу исторические данные за последние 30 дней по каждому тикеру импортнуть?
avatar
I II, надо поменять URL
Ришат Галиуллин, 
    var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
Hepaботает

пишет это
ИнформацияError: Cannot read properties of null (reading 'getActiveSheet')

 
avatar
cern, не бери активную таблицу, а задай либо таблицу с айди либо с именем. Так же задай имя листа, а лучше номер (нумерация идет слева начиная с 0). У тебя же же получается дословно «возьми активную книгу.возьми активный лист.» а надо либо«возьми книгу с именем '...'.возьми лист с именем '...' » либо «возьми книгу с ID.возьми лист [0].
Ришат Галиуллин, как это выглядит в скрипте непойму, я тот вставил мне выдал ошибку
avatar
Можно поставить еще триггер, например, обновлять данные каждый день в 9.00-10.00
Спасибо, большое!

Скажите, пожалуйста, как импортировать котировки по отдельным компаниям (по списку)?
avatar
А как фьючерс получить таким же способом?

Читайте на SMART-LAB:
Фото
Облигации с Call-опционами: как избежать рисков убытков
Во 2-ом эшелоне и сегменте ВДО немало облигаций с Call-опционами (право досрочного погашения эмитента в определенную дату). Если эмитент решит...
Фото
Замечаете движение только после того, как цена уже ушла?
Проблема не всегда в скорости реакции. Часто трейдер просто не понимает, какие признаки искать до импульса , как отличить настоящую...
Фото
Что такое фиксинги иностранных ценных бумаг и зачем они нужны?
Торговля фьючерсами на иностранные ценные бумаги на Московской Бирже давно стала привычным делом для многих инвесторов. Эти инструменты...
Фото
Ростелеком. МСФО за Q2 2026г. Пора ли менять рейтинг компании?
Компания Ростелеком опубликовала финансовые результаты за 2 квартал 2026г.: 👉Выручка — 226,8 млрд руб. (+11,4% г/г) 👉Операционные...

теги блога Gambler <osaengine.ru>

....все тэги



UPDONW
Новый дизайн