Как импортировать котировки акций в Excel: от ручного ввода до API

Импорт биржевых котировок в Excel или Google Таблицы — задача, с которой сталкиваются как начинающие инвесторы, так и профессиональные трейдеры. Без актуальных данных о ценах акций, индексах или валютах невозможно строить графики, рассчитывать доходность портфеля или тестировать торговые стратегии. Однако не все знают, что Microsoft Excel предлагает несколько способов автоматизации этого процесса — от простого копирования с финансовых сайтов до подключения к биржевым API через Power Query.

В этой статье мы разберём 5 проверенных методов импорта котировок, включая бесплатные и платные решения, с учётом особенностей российского рынка (Московская биржа, СПБ Биржа) и зарубежных площадок (NYSE, NASDAQ). Вы узнаете, как обновить данные в один клик, избежать ошибок при парсинге и даже настроить автоматическое обновление цен каждые 15 минут. А для тех, кто работает с большими объёмами данных, мы покажем, как использовать Python прямо из Excel через надстройку XLWings.

1. Ручной ввод и копирование данных с финансовых сайтов

Самый простой, но и самый трудоёмкий способ — скопировать котировки с сайтов вроде Investing.com, Yahoo Finance или Московской биржи и вставить их в Excel. Этот метод подходит для разовых задач, когда нужно проанализировать исторические данные за конкретный день или неделю.

Чтобы минимизировать ошибки при копировании, следуйте алгоритму:

  • 📌 Выделите на сайте только числовые данные (цены, объёмы, изменения в %), исключая заголовки столбцов.
  • 📋 Используйте комбинацию Ctrl + CCtrl + V, но после вставки выберите опцию Специальная вставка → Текст (чтобы избежать форматирования).
  • 🔍 Проверьте, не скопировались ли вместе с цифрами символы валют (например, "$" или "₽") — их придётся удалять вручную или через функцию =ПОДСТАВИТЬ().
⚠️ Внимание: При копировании с Yahoo Finance данные могут отображаться в формате локали (например, разделитель тысяч — запятая вместо точки). Используйте функцию =ЗАМЕНИТЬ(A1; ","; ""), чтобы привести числа к стандартному виду.

Для исторических данных Московской биржи удобно использовать ISS MOEX — официальный сервис с возможностью экспорта в .csv. Например, чтобы скачать котировки Газпрома (GAZP) за последний месяц:

  1. Перейдите на страницу истории торгов.
  2. Укажите даты в формате DD.MM.YYYY.
  3. Нажмите Экспорт → CSV и сохраните файл.
  4. В Excel откройте файл через Данные → Из текста/CSV.
📊 Как часто вы обновляете котировки в Excel?
Ежедневно
Раз в неделю
Раз в месяц
Только для отчётов
Не обновляю

2. Использование функции WEBSERVICE и FILTERXML (для Excel 2013+)

Если вам нужны автоматически обновляемые котировки без ручного копирования, воспользуйтесь встроенными функциями Excel для работы с веб-запросами. Этот метод работает для акций, валют и криптовалют, но требует знания XPath — языка запросов к XML/HTML-страницам.

Пример формулы для получения текущей цены акций Apple (AAPL) с Yahoo Finance:

=FILTERXML(WEBSERVICE("https://finance.yahoo.com/quote/AAPL?p=AAPL&.tsrc=fin-srch"), "//fin-streamer[@data-field='regularMarketPrice']")

Разберём, как это работает:

  • 🌐 WEBSERVICE — загружает HTML-код страницы по URL.
  • 🔍 FILTERXML — извлекает конкретный элемент из кода с помощью XPath.
  • 📊 //fin-streamer[@data-field='regularMarketPrice'] — путь к элементу с текущей ценой на Yahoo Finance.

Для Московской биржи XPath будет другим. Например, чтобы получить цену Сбербанка (SBER):

=FILTERXML(WEBSERVICE("https://iss.moex.com/iss/engines/stock/markets/shares/boardgroups/57/securities/SBER.xml?iss.meta=off&iss.only=marketdata"), "//rows/row/@LAST")
⚠️ Внимание: Некоторые сайты (например, Investing.com) блокируют запросы от WEBSERVICE как подозрительную активность. В этом случае используйте Power Query (см. следующий раздел) или официальные API.

3. Автоматизация через Power Query (рекомендуемый метод)

Power Query — самый мощный инструмент Excel для импорта и преобразования данных. Он позволяет подключаться к веб-страницам, API, базам данных и обновлять информацию по расписанию. Для котировок акций это идеальное решение, так как:

  • ⚡ Данные обновляются в один клик (или автоматически).
  • 📊 Можно импортировать исторические ряды за годы.
  • 🔄 Поддерживаются Московская биржа, Yahoo Finance, Alpha Vantage и другие источники.

Пошаговая инструкция для импорта котировок Лукойла (LKOH) с Московской биржи:

  1. Перейдите на вкладку Данные → Получить данные → Из других источников → Из веб.
  2. Вставьте URL:
    https://iss.moex.com/iss/engines/stock/markets/shares/boardgroups/57/securities/LKOH/history.csv?from=2026-01-01
  3. В открывшемся окне Power Query нажмите Преобразовать данные.
  4. Удалите ненужные столбцы (например, OPEN, HIGH, если нужна только цена закрытия CLOSE).
  5. Нажмите Закрыть и загрузить.

Теперь данные будут обновляться при нажатии Данные → Обновить все. Чтобы настроить автоматическое обновление:

  1. Правой кнопкой по таблице → Свойства диапазона.
  2. Установите флажок Обновлять каждые и выберите интервал (например, 15 минут).

Указать правильный URL источника|Удалить лишние столбцы в редакторе|Преобразовать даты в формат Excel|Настроить автоматическое обновление|Проверить отсутствие ошибок #VALUE!-->

4. Подключение к API бирж (для продвинутых пользователей)

Для профессиональной работы с котировками лучше использовать официальные API. Они предоставляют структурированные данные в формате JSON или CSV, поддерживают исторические ряды и реальный время (real-time). Ниже — обзор популярных API и примеры интеграции с Excel.

API Бесплатный тариф Поддерживаемые биржи Особенности
Alpha Vantage 5 запросов/мин, 500/день NYSE, NASDAQ, MOEX (ограничено) Простой JSON, исторические данные с 1990 г.
Finnhub 60 запросов/мин US, EU, Азия Реальное время для акций и криптовалют
Twelve Data 8 запросов/мин MOEX, LSE, TSE Поддержка Russian RUB, исторические данные

Чтобы импортировать данные из Alpha Vantage в Excel:

  1. Зарегистрируйтесь на сайте и получите бесплатный API ключ.
  2. Сформируйте URL-запрос. Например, для котировок Татнефти (TATN):
    https://www.alphavantage.co/query?function=TIME_SERIES_DAILY&symbol=TATN.ME&apikey=ВАШ_КЛЮЧ
  3. В Excel перейдите в Данные → Получить данные → Из других источников → Из веб и вставьте URL.
  4. В редакторе Power Query разверните столбцы с данными (они будут в формате JSON).
⚠️ Внимание: Бесплатные ключи API часто имеют ограничения по количеству запросов. Например, Alpha Vantage блокирует IP при превышении лимита. Для постоянной работы рассмотрите платные тарифы (от $50/месяц).
Как обойти ограничения бесплатных API?

Используйте несколько аккаунтов с разными API-ключами и распределяйте запросы между ними через Power Query. Альтернатива — кэшировать данные в Google Sheets с помощью скриптов Apps Script, а затем импортировать их в Excel через =IMPORTDATA().

5. Импорт котировок через Google Таблицы (с синхронизацией в Excel)

Если вы работаете в Google Таблицах, импорт котировок упрощается благодаря встроенным функциям =GOOGLEFINANCE() и =IMPORTDATA(). Главное преимущество — данные обновляются в реальном времени (с задержкой 15–20 минут). Затем вы можете экспортировать их в Excel или подключиться к таблице как к внешнему источнику.

Примеры формул:

  • 📈 Текущая цена Магнита (MGNT) на Московской бирже:
    =GOOGLEFINANCE("MOEX:MGNT", "price")
  • 📉 Исторические данные за месяц:
    =GOOGLEFINANCE("MOEX:GAZP", "all", TODAY()-30, TODAY())
  • 💱 Курс доллара ЦБ РФ:
    =IMPORTXML("https://www.cbr.ru/currency_base/daily/", "//*[@id='val_1']/td[5]")

Чтобы перенести данные в Excel:

  1. Опубликуйте Google Таблицу в веб (Файл → Опубликовать в веб → CSV).
  2. В Excel используйте Данные → Из веб и вставьте ссылку на опубликованный CSV.
  3. Настройте автоматическое обновление (например, каждые 30 минут).

6. Продвинутые методы: Python + Excel (XLWings, Pandas)

Для аналитиков, работающих с большими массивами данных, ручные методы импорта котировок не подходят. В этом случае поможет интеграция Python с Excel через библиотеки Pandas и XLWings. Этот подход позволяет:

  • 📊 Загружать исторические данные за 10+ лет.
  • 🔄 Обновлять цены по расписанию (например, каждую минуту).
  • 🛠️ Обрабатывать данные перед импортом (сглаживание, расчёт скользящих средних).

Пример скрипта на Python для загрузки котировок Ростелекома (RTKM) с Moex ISS:

import pandas as pd

import xlwings as xw

Загружаем данные

url = "https://iss.moex.com/iss/engines/stock/markets/shares/boardgroups/57/securities/RTKM/history.csv?from=2026-01-01"

df = pd.read_csv(url, sep=';')

Обработка данных

df['TRADEDATE'] = pd.to_datetime(df['TRADEDATE'], format='%Y-%m-%d')

df = df[['TRADEDATE', 'CLOSE']].rename(columns={'CLOSE': 'Price'})

Экспорт в Excel

wb = xw.Book('котировки.xlsx') # Открываем файл

wb.sheets['Лист1'].range('A1').value = df # Записываем данные

wb.save() # Сохраняем

Чтобы запустить этот скрипт из Excel:

  1. Установите Python (версия 3.8+) и библиотеки:
    pip install pandas xlwings
  2. В Excel установите надстройку XLWings (Файл → Параметры → Надстройки → XLWings).
  3. Создайте кнопку для запуска макроса (через Разработчик → Вставить → Кнопка).

Сравнение методов импорта котировок

Выбор способа импорта зависит от ваших задач, технических навыков и требований к актуальности данных. Ниже — сравнительная таблица:

Метод Сложность Обновление Подходит для Ограничения
Ручной ввод Вручную Разовые задачи, небольшие объёмы Трудоёмко, ошибки при копировании
WEBSERVICE + FILTERXML ⭐⭐ Вручную или по таймеру Текущие цены, простые дашборды Не все сайты поддерживают XPath
Power Query ⭐⭐⭐ Автоматически История, мультивалютные портфели Сложно настроить для реального времени
API (Alpha Vantage, Finnhub) ⭐⭐⭐⭐ Реальное время Профессиональный анализ, боты Ограничения по запросам, платные тарифы
Python + XLWings ⭐⭐⭐⭐⭐ Гибкая настройка Большие данные, сложные расчёты Требует знания Python

Для большинства частных инвесторов оптимальным решением будет Power Query (для истории) + Google Таблицы (для текущих цен). Профессионалам стоит рассмотреть Python или платные API.

FAQ: Частые вопросы по импорту котировок

Можно ли импортировать котировки в реальном времени бесплатно?

Да, но с ограничениями. Google Таблицы обновляют данные с задержкой 15–20 минут для US-акций (через =GOOGLEFINANCE()). Для Московской биржи реальное время доступно только через платные API (например, Moex ISS Pro) или терминалы брокеров (например, Tinkoff API, Interactive Brokers).

Почему в Excel отображаются ошибки #VALUE! при импорте котировок?

Чаще всего это связано с:

  • 🔢 Неправильным форматом чисел (запятая вместо точки как разделитель). Используйте =ЗАМЕНИТЬ(A1; ","; ".").
  • 🌍 Региональными настройками Excel (например, даты в формате ММ/ДД/ГГГГ вместо ДД.ММ.ГГГГ).
  • 🔗 Изменением структуры веб-страницы (если используете FILTERXML). Обновите XPath.
Как импортировать котировки для всего портфеля акций?

Создайте таблицу с тикерами в одном столбце (например, A2:A10). Затем:

  1. Добавьте рядом столбец с формулой =FILTERXML(WEBSERVICE("URL"&A2), XPath), где A2 — ячейка с тикером.
  2. Растяните формулу на все строки.
  3. Для Power Query используйте параметр тикера в URL (например, ".../securities/"&[Ticker]&"/history.csv").
Можно ли импортировать котировки фьючерсов или опционов?

Да, но источники данных отличаются. Для фьючерсов на Московской бирже используйте раздел /markets/futures в Moex ISS. Например:

https://iss.moex.com/iss/engines/futures/markets/forts/securities/Si-12.24/history.csv

Для опционов CME Group (США) подойдёт Alpha Vantage с функцией TIME_SERIES_INTRADAY.

Как автоматически рассчитывать доходность портфеля на основе импортированных котировок?

После импорта цен используйте формулы:

  • 📈 Доходность за период: =((Цена_текущая - Цена_покупки) / Цена_покупки) * 100.
  • 💰 Общая доходность портфеля: =СУММПРОИЗВ(Количество_акций; Текущая_цена - Цена_покупки) / СУММПРОИЗВ(Количество_акций; Цена_покупки).
  • 📊 Для динамики по дням используйте Power Pivot или сводные таблицы.