МЕТОДИКА · ДАННЫЕ

Архив и таймлапс Индекса МосБиржи: источники и правила

Помесячные составы Индекса МосБиржи с февраля 2001 года: 309 кадров, 292 изменения. Методика описывает источники, даты весов и правила сопоставления выпусков.

Номера выпусков и даты в тексте относятся к редакции методики. Действующие данные — выпуск 0.5.2.20261026, рыночный срез 26.10.2026; правила расчёта описаны ниже.

Версия экспортера: 1. Формат: portfolio-lab-index-history, версия 1. Данные: архив PortfolioLab MOEX Monthly 1.0.0 от 18 октября 2026 года.

Назначение и фактическое покрытие

Раздел показывает наблюдаемый состав индекса в прошлом, а не переносит современный список акций на прежние даты. Каждая точка — первое календарное число месяца. Доступны 309 срезов с 01.02.2001 по 01.10.2026: 10 946 наблюдений участников, 137 идентификаторов выпусков и 154 исторических кода. Состав до февраля 2001 года в сохранённом архиве отсутствует. Общая месячная база начинается в апреле 1997 года; её первые 46 месяцев не являются доказанной историей состава индекса и в таймлапс не добавляются.

Основание — оригинальные ответы официального MOEX ISS: https://iss.moex.com/iss/statistics/engines/stock/markets/index/analytics/IMOEX.json. Каждый использованный ответ сохраняет URL, дату загрузки и SHA-256. История выгружается из готового выпуска, без сетевых запросов и пересмотра источника. Веб-сайт загружает небольшой статический JSON по запросу пользователя; исходная SQLite в публикацию не входит.

Даты, веса и идентичность

  • date — дата месячного среза. membership_date — последняя доступная официальная сессия состава не позднее этой даты.
  • weight_date — последняя доступная официальная сессия строго раньше даты среза. Вес соединяется с составом по issue_id, а не по похожему названию. Это вес предыдущего закрытия, а не утверждение о весе на конец текущего дня.
  • weight_pct выражен в процентах. Его сумма не нормализуется: исходные округления сохранены. Веса двух участников неизвестны на предыдущем закрытии: RU0009046700 в срезе 01.10.2003 и URKA (RU0007661302) в срезе 01.11.2011. Они остаются null в JSON и пустыми ячейками CSV; доля не распределяется между другими акциями и не принимается равной нулю. Круговая диаграмма или показатель концентрации с полными весами не должны строиться для этих двух срезов.
  • symbol — исторический код, сохранённый базой после применения официального технического журнала смен кодов. source_symbol — буквально код, который вернул архивный ответ ISS при загрузке. Они различаются в 582 наблюдениях; оба сохранены. issue_id — ключ выпуска (ISIN, а при его отсутствии отдельный SECID: ключ). Четыре ранних выпуска (BKBK, INUR, NKEL, UMAS) имеют только подтверждённый архивный код, без ISIN и полного названия: это самостоятельные SECID: ключи, а не догадки о современном правопреемнике. Обыкновенные и привилегированные акции, разные выпуски и юридические лица не объединяются по сходству имён. Преемственность при корпоративной реорганизации без достаточного подтверждения не создаётся.
  • Название, ISIN и тип бумаги получены из справочника, наблюдавшегося 18.10.2026. Это подписи и идентификационные сведения справочника, а не доказанные названия компаний на каждую историческую дату. Полный исторический журнал изменений ISIN без смены кода и первоначальная дата публикации справочника не подтверждены.

Метаданные источника прямо устанавливают статус RETROSPECTIVE_ASOF: исторические наблюдения восстановлены ретроспективно; доступность каждого числа в первоначальный момент публикации и отсутствие позднейших исправлений не сертифицированы. Архив подходит для исследования исторического состава с этой оговоркой; он не является сертифицированной базой без ошибок заглядывания вперёд.

Входы, выходы и уровни индексов

entered и exited — разность наборов issue_id между соседними месячными срезами. Всего 292 наблюдаемых события. Они означают изменение между двумя срезами, а не установленную точную дату ребалансировки или юридического делистинга. Первый срез — начальное наблюдение; его акции не считаются вновь включёнными. Техническая смена кода при сохранении выпуска не создаёт ложного входа или выхода.

index_level — официальный ценовой IMOEX; total_return_level — отдельный официальный MCFTR полной доходности из замороженного финансового выпуска 0.5.0. Берётся только точная отметка на market_cutoff_date исходной месячной базы, строго до первого числа месяца. У каждого уровня сохранена собственная дата. IMOEX доступен во всех 309 срезах, MCFTR — в 262; до начала его истории значение остаётся null. Значения не интерполируются, не экстраполируются и не заменяются друг другом. Разные базы индексов не следует сравнивать как доходность по абсолютной высоте: для сравнения графиков нужна общая начальная дата и нормирование к ней.

Архив состава расширяет информационный раздел сайта. Он не изменяет финансовый календарь, цены, ставки, синтетические ряды или расчётный движок портфелей.

Файлы и контракт

Файл Содержание
/index-history/timelapse.json Все 309 срезов, участники, даты, уровни, месячные изменения и источники
/index-history/composition.csv Полная таблица состава, включая ключи и ссылки на источники идентичности и весов
/index-history/changes.csv Месячные входы/выходы с предыдущей датой сравнения
/index-history/provenance.json Покрытие, хеши исходного архива, базы, финансовых рядов, URL источников
/index-history/validation.json Результаты проверок и конкретные пропуски весов

JSON содержит format, version, data_version, provenance, coverage, sources и snapshots. В каждом срезе сохранены date, membership_date, weight_date, два *_source_id, members, entered, exited, member_count, known_weights, weight_sum_pct и значения/даты двух индексов. Участник содержит symbol, source_symbol, issue_id, name, isin, weight_pct, instrument_type, identity_basis. Показатели known_weights и weight_sum_pct относятся только к известным весам. data_version — SHA-256 канонического JSON до добавления самого поля хеша.