Исторические данные о котировках: что такое архив цен и зачем он нужен

Раскройте секреты рынка с полным архивом исторических котировок. Анализируйте прошлое, чтобы предсказывать будущее и зарабатывать увереннее.

Бесплатная консультация юриста

+7 (800) 301-07-30

Реклама jurik.ru

Исторические данные о котировках — это фундамент, на котором строится любая серьезная инвестиционная стратегия. Архив цен на акции (или исторические котировки) представляет собой хронологически упорядоченный набор данных о ценах открытия, закрытия, максимумах, минимумах и объемах торгов за определенные временные интервалы. Без доступа к качественному архиву невозможно провести бэктестинг стратегий, технический анализ или фундаментальную оценку динамики бизнеса.

Что включает в себя архив цен?

Стандартный набор данных (OHLCV) для каждого торгового периода (минута, час, день, неделя, месяц) состоит из пяти ключевых параметров:

  • Open (Цена открытия) — цена первой сделки в периоде.
  • High (Максимум) — наивысшая цена сделки за период.
  • Low (Минимум) — низшая цена сделки за период.
  • Close (Цена закрытия), цена последней сделки в периоде (часто используется как базовая для расчетов).
  • Volume (Объем) — количество акций, обменянных руками за период.

Кроме базовых OHLCV, профессиональные архивы часто содержат:

  1. Adjusted Close (Скорректированная цена закрытия), цена с учетом дивидендов и сплитов. Это критически важный показатель для расчета реальной доходности за длительные периоды.
  2. Dividends (Дивиденды) — даты и суммы выплат.
  3. Stock Splits (Сплиты/Консолидации) — коэффициенты дробления или объединения акций.
  4. Turnover (Оборот в деньгах) — объем торгов в денежном выражении.
  5. Open Interest (Открытый интерес) — для деривативов (фьючерсов/опционов) на акции.

Зачем нужен архив цен? Основные сценарии использования

Бэктестинг торговых стратегий

Проверка гипотез на исторических данных — единственный способ оценить жизнеспособность алгоритма или торговой системы без риска потери реальных денег. Качественный архив позволяет смоделировать проскальзывание, комиссии и влияние спреда.

Технический анализ и построение графиков

Все индикаторы (скользящие средние, RSI, MACD, Боллинджер и др.) рассчитываются исключительно на основе исторических цен. «Сырые» некорректированные данные дадут ложные сигналы на длинных таймфреймах из-за сплитов и дивидендных зазоров.

Фундаментальный анализ и оценка мультипликаторов

Для расчета P/E, P/S, P/B и других мультипликаторов в динамике нужна историческая рыночная капитализация (Цена × Кол-во акций). Архив цен позволяет построить график «Честной стоимости» компании во времени.

Риск-менеджмент и VaR (Value at Risk)

Расчет волатильности, корреляций между активами, просадок (drawdowns) и параметров распределения доходностей требует длинных исторических рядов (желательно 10+ лет).

Налоговый учет и отчетность

Инвесторы часто нуждаются в цене акции на конкретную дату в прошлом (например, дату покупки 5 лет назад) для расчета налоговой базы при продаже или для отчетов перед регулятором.

Критически важные нюансы работы с архивами: «Подводные камни»

Самое главное помнить, что «сырые» цены из архива часто не подходят для расчетов доходности без предварительной обработки. Игнорирование корректировок приводит к систематическим ошибкам.

Проблема сплитов (Stock Splits)

Если компания провела сплит 1:10, цена акции на графике упадет в 10 раз за одну ночь. Без корректировки это выглядит как крах на 90%, хотя стоимость портфеля инвестора не изменилась. Всегда используйте Adjusted Close для расчета доходности.

Проблема дивидендных зазоров (Dividend Gaps)

В дату отсечки (ex-dividend date) цена открытия обычно ниже цены закрытия предыдущего дня на сумму дивиденда (с учетом налога). На «сыром» графике это выглядит как падение. Скорректированные данные «закрывают» этот зазор, добавляя дивиденд к стоимости акции.

Выжившие компании (Survivorship Bias)

Бесплатные архивы часто содержат только те тикеры, которые торгуются прямо сейчас. Банкротные, делистированные или поглощенные компании исключены. Это завышает средние доходности индексов и стратегий. Для серьезных исследований нужны базы с «мертвыми» тикерами (например, Norgate, CRSP, или специализированные датасеты Kaggle).

Таймзоны и торговые сессии

Для американских акций архив обычно в EST/EDT (Нью-Йорк), для российских, в MSK (UTC+3). При объединении данных с разных бирж (например, MOEX и LSE для двойных листингов) необходимо привести время к единому стандарту (UTC).

Источники архивов цен: От бесплатных к профессиональным

Уровень 1: Бесплатные публичные API и сайты (Для обучения и быстрой проверки)

  • Yahoo Finance (finance.yahoo.com) — де-факто стандарт для ретейла. Есть удобный CSV-экспорт и неофициальные Python-библиотеки (yfinance). Минусы: задержки, ошибки в корректировках на старых данных, ограничения по запросам.
  • Investing.com / TradingView — хорошие графики, но выгрузка массивов данных часто ограничена или платная.
  • MOEX ISS (iss.moex.com) — официальный бесплатный источник для российского рынка. Дает максимально точные «сырые» данные по сделкам и стакану. Требует навыков работы с REST API.
  • Alpha Vantage, Twelve Data, Finnhub — бесплатные тиеры API (обычно 25-500 запросов в день), подходят для пет-проектов.

Уровень 2: Брокерские терминалы и платформы (Для активной торговли)

  • Quik / Transaq / T-Investments API / БКС Express — предоставляют историю по инструментам, доступным у брокера. Качество высокое, но глубина истории и доступность API зависят от конкретного брокера;
  • TradingView (Pine Script) — позволяет тестировать стратегии на их серверах с глубокой историей (до 20+ лет на фьючерсах/индексах).

Уровень 3: Профессиональные данные (Для квантов, фондов, серьезного бэктестинга)

  • Refinitiv (Eikon) / Bloomberg Terminal, золотой стандарт. Исключительное качество, корректировки, корпоративные действия, данные по делистированным бумагам. Стоимость: $2000–$2500/мес.
  • Norgate Data / CSI Data / Pinnacle Data, специализированные провайдеры EOD (End-of-Day) данных для бэктестинга. Учитывают выживших (no survivorship bias). Стоимость: $300–$1000/год.
  • Polygon.io / Intrinio / Tiingo — современные API-first провайдеры. Дают тиковые данные (tick data), Level 2 (стакан), фундаменталку. Подходят для HFT и алготрейдинга. Оплата за объем запросов.

Форматы хранения и обработка данных

Получив данные, нужно эффективно их хранить. Выбор формата зависит от объема и задач:

Формат Плюсы Минусы Для чего лучше
CSV / Excel Читаемость человеком, открывается везде Медленный парсинг, большой вес, нет типизации, сложно хранить тиковые данные Разовый анализ, передача коллегам, небольшие EOD выборки
Parquet (Apache Parquet) Колоночное сжатие, быстрый чтение нужных колонок, поддержка типов, стандарт Big Data Не читается в Excel напрямую (нужен Python/R) Стандарт де-факто для Data Science и квантов. Идеален для Pandas/Polars/DuckDB
HDF5 / Feather Очень быстрая запись/чтение, поддержка метаданных Менее универсален, чем Parquet (Feather), сложнее миграция (HDF5) Внутренние пайплайны высокой частоты
БД: TimescaleDB / ClickHouse / DuckDB SQL-запросы, компрессия, агрегация на лету, работа с данными > RAM Требует настройки инфраструктуры Продакшн-системы, сервисы бэктестинга, мультипользовательский доступ

Практический пример: Загрузка и корректировка данных на Python

Ниже приведен минимальный рабочий скрипт с использованием библиотеки yfinance (обертка над Yahoo Finance) и pandas. Он демонстрирует загрузку, проверку на сплиты/дивиденды и сохранение в Parquet.

import yfinance as yf
import pandas as pd

tickers = ["SBER.MO", "AAPL"]
data = yf.download(tickers, start="2019-01-01", end="2024-01-01", group_by='ticker', auto_adjust=False, progress=False)

frames = []
for ticker in tickers:
 df = data[ticker].copy
 df['Ticker'] = ticker
 df.reset_index(inplace=True)
 frames.append(df)

full_df = pd.concat(frames, ignore_index=True)

print("Пример данных по AAPL (последний сплит 4:1 был в августе 2020):")
print(full_df[full_df['Ticker']=='AAPL'][['Date', 'Close', 'Adj Close', 'Volume']].tail(3))

full_df.to_parquet("stock_archive.parquet", compression="snappy")
print("
Данные сохранены в stock_archive.parquet")
print(f"Размер файла: {round(pd.io.common.file_size('stock_archive.parquet')/1024, 2)} KB")

Чек-лист: Как выбрать источник архива для вашей задачи

  1. Глубина истории: Нужны ли 20 лет или достаточно 1 года? (Для VaR и стратегий на низких частотах — минимум 10-15 лет, лучше с кризисами 2008, 2020, 2022).
  2. Тип данных: EOD (End of Day) достаточно для свинг-трейдинга/инвестиций. Для внутридневного (Intraday) нужны 1m/5m/1h бары или тики (Tick Data).
  3. Корректировки: Дает ли провайдер Adjusted Close и отдельные таблицы дивидендов/сплитов? Если нет — придется корректировать самому (сложно и ошибочно).
  4. Survivorship Bias: Критично для тестирования на индексах (S&P 500, MOEX Index). Нужен ли доступ к делистированным тикерам?
  5. Покрытие рынков: Только MOEX? Только US? Крипта? Форекс? Фьючерсы? (Фьючерсы требуют склейки контрактов, отдельная боль).
  6. API / Формат доставки: REST API, WebSocket, FTP-дампы, S3 бакет? Подходит ли под ваш стек (Python, C++, R, Excel)?
  7. Бюджет: $0 (Yahoo/MOEX ISS) -> $500/год (Norgate/Tiingo) -> $24k/год (Bloomberg/Refinitiv).

Архив цен на акции, это не просто таблица чисел, а сырье для принятия финансовых решений. Качество этого сырья напрямую определяет качество ваших моделей, бэктестов и, в конечном счете, PnL (прибыли и убытков).

Начинающим достаточно бесплатных источников (Yahoo Finance, MOEX ISS) и формата Parquet для локальной работы. Профессионалам, чьи стратегии чувствительны к качеству данных (кванты, HFT, управление большими активами), неизбежно приходится переходить на платные провайдеры уровня Norgate или Bloomberg, чтобы избежать ошибок выживших, некорректных сплитов и пропусков в данных.

Помните: «Garbage In, Garbage Out» (Мусор на входе — мусор на выходе). Инвестируйте время в проверку и очистку архива до того, как начнете строить на нем стратегии.