Зачем трейдерам и инвесторам котировки в Excel?
Работа с биржевыми данными в Microsoft Excel или Google Таблицах открывает возможности для глубокого анализа, которых нет в стандартных терминалах брокеров. Здесь вы можете строить кастомные графики, применять сложные формулы для расчёта волатильности, корреляций между активами или тестировать собственные торговые стратегии на исторических данных. Например, комбинация функций СМЕЩ и ТЕНДЕНЦИЯ позволяет прогнозировать ценовые каналы, а сводные таблицы помогают выявлять сезонные паттерны.
Но главное преимущество Excel — автоматизация. Вместо того чтобы вручную переписывать котировки с сайта брокера, можно настроить ежедневное обновление данных через API или веб-запросы, сэкономив часы времени. Это особенно ценно для портфельных инвесторов, которые отслеживают десятки бумаг одновременно. Однако не все способы импорта одинаково надёжны: некоторые требуют знания программирования, другие ограничены лимитами бесплатных запросов.
В этой статье мы разберём 5 методов — от простейшего копирования данных до профессиональных решений с Power Query и VBA, — а также покажем, как избежать типичных ошибок при работе с финансовыми данными в Excel.
Способ 1: Ручной ввод и копирование с биржевых сайтов
Самый очевидный, но и самый трудоёмкий способ — скопировать котировки с сайта брокера или финансового портала (например, Investing.com, TradingView или Finam.ru) и вставить их в Excel. Этот метод подходит для разовых задач, когда нужны данные по 1–2 акциям за ограниченный период.
Как это сделать:
- 📊 Перейдите на сайт с котировками (например, Investing.com), найдите нужную бумагу через поиск.
- 📋 Выделите таблицу с историческими данными (дату, цены открытия/закрытия, объёмы). Для этого кликните по первой ячейке, зажмите
Shiftи выделите последнюю. - 🖱️ Скопируйте данные (
Ctrl+C) и вставьте в Excel (Ctrl+V). ИспользуйтеСпециальная вставка → Текст, чтобы избежать проблем с форматом. - 🔄 Если данные вставляются в одну ячейку, воспользуйтесь инструментом
Текст по столбцам(вкладкаДанные).
Преимущества метода: не требует технических навыков и работает даже без интернета (после копирования). Однако у него есть критические недостатки:
⚠️ Внимание: При ручном копировании высок риск ошибок — пропущенные строки, неверные форматы дат или чисел (например, десятичные разделители в виде запятых вместо точек). Всегда проверяйте первые 10–20 строк на корректность!
Для регулярного анализа этот способ не подходит: обновление данных займёт слишком много времени. Но его можно оптимизировать с помощью горячих клавиш:
Способ 2: Импорт через Google Finance (бесплатно и без API)
Google Таблицы предоставляют встроенную функцию GOOGLEFINANCE, которая позволяет получать текущие и исторические котировки акций, валют и даже криптовалют. Это полуавтоматический метод, не требующий знания программирования.
Синтаксис функции:
=GOOGLEFINANCE("ТИКЕР"; ["АТРИБУТ"]; [НАЧАЛЬНАЯ_ДАТА]; [КОНЕЧНАЯ_ДАТА]; [ИНТЕРВАЛ])
Примеры:
- 📈 Текущая цена акции Газпрома:
=GOOGLEFINANCE("GAZP:MCX") - 📊 Исторические данные Сбербанка за месяц:
=GOOGLEFINANCE("SBER:MCX"; "price"; TODAY()-30; TODAY()) - 💱 Курс доллара к рублю:
=GOOGLEFINANCE("CURRENCY:USDRUB")
Преимущества:
- ✅ Данные обновляются автоматически при открытии файла.
- ✅ Поддерживаются не только акции, но и ETF, облигации, валюты.
- ✅ Можно тянуть данные за период до 20 лет (с дневным интервалом).
Ограничения:
- ❌ Работает только в Google Таблицах, а не в десктопном Excel.
- ❌ Для российских акций (MOEX) может потребоваться указывать биржу явно (например,
"SBER:MCX"вместо"SBER"). - ❌ Интервал обновления — раз в 20 минут (для бесплатных аккаунтов).
Чтобы перенести данные из Google Таблиц в Excel, экспортируйте файл в формате .xlsx через меню Файл → Скачать → Microsoft Excel.
Способ 3: Веб-запросы через Power Query (Excel 2016 и новее)
Power Query — это инструмент ETL (Extract, Transform, Load), встроенный в современные версии Excel. Он позволяет подключаться к веб-страницам, API и базам данных, преобразовывать данные и загружать их в таблицу. Для котировок это один из самых гибких методов.
Пошаговая инструкция:
- Перейдите на вкладку
Данные→Получить данные→Из других источников→Из веб. - Вставьте URL страницы с котировками. Например, для Yahoo Finance это может быть:
https://finance.yahoo.com/quote/AAPL/history?period1=0&period2=9999999999&interval=1d&filter=history&frequency=1d - В открывшемся окне Power Query выберите таблицу с данными (обычно она одна).
- Нажмите
Преобразовать данные, чтобы очистить лишние столбцы, исправить форматы дат и т. д. - Сохраните запрос и загрузите данные в Excel.
Преимущества Power Query:
- 🔄 Возможность настроить автоматическое обновление при открытии файла или по расписанию.
- 🛠️ Гибкая обработка данных: удаление пустых строк, замена текста, добавление вычисляемых столбцов.
- 🌍 Поддержка множества источников: от Yahoo Finance до Alpha Vantage API.
Типичные ошибки и их решения:
| Проблема | Причина | Решение |
|---|---|---|
| Данные не загружаются | Сайт блокирует веб-запросы | Используйте API или прокси |
| Неверный формат даты | Региональные настройки Excel | В Power Query замените тип данных на Дата |
| Пустые ячейки в столбцах | На сайте отсутствуют данные за выходные | Добавьте шаг фильтрации: Удалить строки → Удалить пустые |
Для российских акций лучше использовать источники, поддерживающие MOEX, например:
https://iss.moex.com/iss/engines/stock/markets/shares/boardgroups/57/securities/{ТИКЕР}/candles.json?from={ДАТА_НАЧАЛА}&till={ДАТА_КОНЦА}&interval=24
Где {ТИКЕР} — это код акции (например, SBER), а даты указываются в формате YYYY-MM-DD.
Установить Excel 2016 или новее|Скачать пример файла с запросом к MOEX|Заменить {ТИКЕР} на нужную акцию|Настроить обновление по расписанию-->
Способ 4: Автоматизация через API (Yahoo Finance, Alpha Vantage, MOEX)
Для профессионального анализа ручные методы не подходят — нужны API (Application Programming Interface). Они позволяют получать данные в структурированном виде (JSON/CSV) и обновлять их по расписанию. Рассмотрим три популярных API:
1. Yahoo Finance API (неофициальный)
Хотя официального API у Yahoo Finance нет, можно использовать неофициальные обёртки, такие как библиотека yfinance для Python. Пример кода:
import yfinance as yf
data = yf.download("AAPL", start="2023-01-01", end="2023-12-31")
data.to_excel("AAPL_data.xlsx")
Чтобы запустить этот скрипт, установите Python и библиотеку yfinance через команду pip install yfinance.
2. Alpha Vantage (бесплатный тариф)
Alpha Vantage предоставляет бесплатный API с лимитом 5 запросов в минуту. Для начала работы:
- Зарегистрируйтесь на alphavantage.co и получите ключ API.
- Используйте URL вида:
https://www.alphavantage.co/query?function=TIME_SERIES_DAILY&symbol=IBM&apikey=YOUR_API_KEY - Импортируйте данные в Excel через Power Query (как в Способе 3) или парсите ответ с помощью VBA.
3. MOEX ISS API (для российских акций)
Московская биржа предоставляет бесплатный API для исторических данных. Пример запроса для акций Сбербанка:
https://iss.moex.com/iss/history/engines/stock/markets/shares/boards/TQBR/securities/SBER.json?from=2023-01-01
Ответ приходит в формате JSON, который можно преобразовать в таблицу с помощью Power Query или скрипта на Python.
⚠️ Внимание: Бесплатные API часто имеют ограничения по количеству запросов. Например, Alpha Vantage разрешает 500 запросов в день на бесплатном тарифе. Превышение лимита приведёт к блокировке ключа на 24 часа.
Для автоматизации обновления в Excel можно использовать VBA-скрипты. Пример макроса для загрузки данных с Alpha Vantage:
Пример VBA-кода для Alpha Vantage
Dim apiKey As String, symbol As String, url As String apiKey = "YOUR_API_KEY" ' Замените на ваш ключ symbol = "SBER" url = "https://www.alphavantage.co/query?function=TIME_SERIES_DAILY&symbol=" & symbol & "&apikey=" & apiKey With ActiveSheet.QueryTables.Add(Connection:="URL;" & url, Destination:=Range("A1")) .RefreshStyle = xlOverwriteCells .WebSelectionType = xlAllTables .Refresh End With End SubSub GetStockData()
Чтобы запустить макрос, нажмите Alt+F11, вставьте код в модуль и выполните его через F5.
Способ 5: Готовые надстройки для Excel (TradingView, Bloomberg)
Если вы не хотите разбираться в API или Power Query, можно воспользоваться готовыми надстройками. Они платные, но экономят время и предлагают расширенную функциональность.
Популярные решения:
- 📉 TradingView Excel Add-in: Подключается к аккаунту TradingView и позволяет экспортировать данные с графиков прямо в Excel. Стоимость — от $15/месяц.
- 💼 Bloomberg Excel Add-in (BDP): Профессиональный инструмент с данными по акциям, облигациям и макроэкономическим показателям. Требует подписку на Bloomberg Terminal (от $24 000/год).
- 📊 Excel Price Feed: Надстройка для загрузки котировок с Yahoo Finance, Alpha Vantage и других источников. Единоразовая покупка — ~$50.
Преимущества надстроек:
- ⚡ Реальное время: Данные обновляются с задержкой в несколько секунд (в отличие от ручного копирования).
- 📈 Технический анализ: Встроенные функции для расчёта скользящих средних, RSI, Bollinger Bands.
- 🔄 Автоматизация: Настройка триггеров для обновления при изменении цены на заданный процент.
Недостатки:
- 💰 Платное использование (кроме пробных периодов).
- 🔌 Требует установки дополнительного ПО.
- 🛡️ Возможны ограничения по количеству запрашиваемых тикеров.
Пример работы с Excel Price Feed:
- Установите надстройку через
Файл → Параметры → Надстройки → Управление надстройками Excel. - Вставьте функцию вида:
=EPF.Yahoo.Historical("AAPL", "2023-01-01", "2023-12-31", "daily"). - Настройте автоматическое обновление в параметрах надстройки.
Типичные ошибки и как их избежать
Даже опытные пользователи Excel сталкиваются с проблемами при работе с биржевыми данными. Вот самые распространённые ошибки и способы их решения:
1. Неверный формат даты
Excel может воспринимать даты как текст (например, 01.12.2023 вместо 01-дек-2023). Это приводит к ошибкам в формулах и графиках.
- 🔹 Решение: Выделите столбец с датами →
Главная → Формат → Формат ячеек → Дата. - 🔹 В Power Query: измените тип данных на
Датана этапе преобразования.
2. Разделители дробных чисел
В российской версии Excel дробные числа разделяются запятой (1 234,56), а в американской — точкой (1,234.56). При импорте данных с зарубежных сайтов это вызывает ошибки в формулах.
- 🔹 Решение: Замените запятые на точки через
Найти и заменить(Ctrl+H) или в Power Query добавьте шагЗаменить значения.
3. Пропущенные данные (выходные/праздники)
Биржи не работают по выходным, поэтому в исторических данных будут пропуски. Это искажает расчёты скользящих средних или волатильности.
- 🔹 Решение: Используйте функцию
ЕСЛИОШИБКАдля заполнения пропусков. Например:=ЕСЛИОШИБКА(СМЕЩ(B2;-1);B2)где
B2— ячейка с ценой закрытия.
4. Ограничения API
Бесплатные API (например, Alpha Vantage) ограничивают количество запросов. При превышении лимита вы получите ошибку 429 Too Many Requests.
- 🔹 Решение: Разбивайте запросы на пакеты (например, по 5 тикеров за раз) или используйте платные тарифы.
5. Несовпадение временных зон
Данные с NYSE приходят в формате UTC-5, а MOEX работает по UTC+3. Это важно для интрадей-трейдеров.
- 🔹 Решение: Добавляйте/вычитайте разницу во времени в Excel. Например, для перевода из UTC в MSK:
=A2 + (3/24)где
A2— ячейка с временем в формате Excel.
FAQ: Частые вопросы по загрузке котировок в Excel
Можно ли загрузить котировки в Excel с сайта брокера (Тинькофф, ВТБ, Сбербанк)?
Да, но не все брокеры предоставляют такой функционал. Например, Тинькофф Инвестиции позволяет экспортировать историю сделок в CSV, но не котировки. Для загрузки ценовых данных придётся использовать API (например, MOEX ISS) или парсить веб-страницы через Power Query.
Исключение — Quik (терминал для торговли на MOEX). В нём можно сохранить исторические данные в CSV и затем импортировать в Excel.
Как обновить котировки в Excel автоматически без моего участия?
Есть три способа:
- Power Query: Настройте запрос и включите
Свойства → Обновлять каждые X минут. - VBA-скрипт: Напишите макрос с таймером, который будет запускать обновление. Пример:
Application.OnTime Now + TimeValue("00:30:00"), "UpdateData" - Надстройки: Например, Excel Price Feed поддерживает фоновое обновление.
Важно: Автоматическое обновление работает только при открытом файле Excel. Для фоновой работы нужен сервер (например, Python-скрипт на VPS).
Почему в Excel не отображаются русские названия акций (Сбербанк, Газпром)?
Это связано с кодировкой данных. При импорте из API или CSV кириллические символы могут отображаться как ??????. Решения:
- В Power Query: на этапе загрузки выберите кодировку
Windows-1251илиUTF-8. - В VBA: используйте
ADODB.Streamс указанием charset:stream.CharSet = "windows-1251" - При ручном копировании: вставляйте данные через
Специальная вставка → Текст.
Можно ли в Excel построить график котировок с несколькими временными рамками (дневной, недельный, месячный)?
Да, но для этого нужно:
- Загрузить данные с разными интервалами (например, через Alpha Vantage с параметром
interval=daily|weekly|monthly). - Создать отдельные таблицы для каждого интервала.
- Построить график с вторичной осью:
- Выделите данные →
Вставка → График. - Кликните правой кнопкой по ряду данных →
Формат ряда данных → Построить на вторичной оси.
- Выделите данные →
Пример формулы для агрегации дневных данных в недельные:
=СРЗНАЧ(ЕСЛИ(НЕДЕЛЯ(B2:B100)=НЕДЕЛЯ(B2);C2:C100))
(вводится как CTRL+SHIFT+ENTER).
Как в Excel рассчитать доходность портфеля акций с учётом дивидендов?
Для этого нужно:
- Загрузить исторические цены и даты дивидендов (например, с Dividend.com или через API MOEX).
- Добавить столбец с начисленными дивидендами. Пример:
=ЕСЛИ(A2=дата_дивиденда;размер_дивиденда;0) - Рассчитать совокупную доходность:
=((Последняя_цена - Первая_цена + СУММ(Дивиденды)) / Первая_цена) - 1
Для автоматизации можно использовать Power Query для слияния таблиц с ценами и дивидендами по столбцу с датой.