Нет публикации — не значит пропуск: календарь курсов ЕЦБ за 2016–2025 годы

2560 справочных курсов USD за 1 EUR, 49 закрытых будних дней TARGET и проверка календаря. Таблицы, график, код и упражнение.

В снимке за 2016–2025 годы есть 2560 публикаций справочного курса USD за 1 EUR на 2609 дат с понедельника по пятницу. Все 49 будних дней без наблюдения совпали с плановыми закрытиями TARGET. На ожидаемые дни публикации приходятся 2560 наблюдений; неожиданных пропусков в этом снимке нет. Это проверка полноты конкретных файлов, а не доступности сайта ЕЦБ в прошлом или своевременности первой публикации.

Метод и результаты

Для каждой даты с 1 января 2016 года по 31 декабря 2025 года выбираем одно официальное наблюдение USD за 1 EUR из XML ЕЦБ. Отдельный официальный CSV из API совпадает с XML по всем 2560 датам и точным десятичным значениям. Сравнение не использует округленные числа с плавающей точкой.

Календарь строим отдельно от списка наблюдений. Исключаем субботы, воскресенья и плановые закрытия TARGET: 1 января, Страстную пятницу, Пасхальный понедельник, 1 мая, 25 и 26 декабря. Пасхальные даты здесь определяются по григорианскому календарю; российский календарь праздников для этой проверки не подходит. Праздник в выходной не считаем второй раз как отсутствие публикации в будний день.

По годам с 2016-го по 2025-й число публикаций равно 257, 255, 255, 255, 257, 258, 257, 255, 256 и 255. Число будних дней без наблюдения: 4, 5, 6, 6, 5, 3, 3, 5, 6 и 6. Дневной CSV раскрывает классификацию каждой из 3653 календарных дат; годовой CSV содержит также ожидаемые открытые дни и максимальные интервалы.

В каждом году максимальная разность соседних дат публикации составляет пять календарных дней. Например, в 2025 году это 17–22 апреля. Между этими датами находятся четыре календарные даты: два дня закрытия TARGET и два выходных. Разность дат в пять дней не означает пять пропущенных наблюдений.

Чего не показывает дневной справочный курс

Одно справочное наблюдение не дает цену открытия, максимум, минимум, закрытие, спред, объем или последовательность тиков. По нему нельзя установить, был ли внутри дня задет стоп-лосс, или воспроизвести исполнение сделки. Если перенести последнее значение на праздник, получится искусственно заполненное значение, а не новая наблюдавшаяся торговая котировка.

Время публикации менялось: с 1 июля 2016 года ЕЦБ перенес его примерно с 14:30 на 16:00 CET. Поэтому одно время нельзя применять ко всему периоду. При сопоставлении с UTC также нельзя игнорировать переход на летнее время. Эта работа не восстанавливает внутридневные цены или историческое время первого выпуска данных.

По описанию ЕЦБ, справочные курсы служат информационным целям; использовать их как цену для сделки не рекомендуется. Валютная пара и направление единицы здесь принципиальны: значение означает USD за 1 EUR.

Источник: ECB statistics. Исходные файлы были загружены 7 октября 2026 года; это дата исторического снимка, а не новая загрузка при переводе. В отдельном пересчете проверены 2560 пар XML/CSV, 3653 дневные строки и 10 годовых строк. Классификация дат и выводы — наши расчеты. Будущие выгрузки ЕЦБ могут содержать пересмотры.

ЕЦБ EUR/USD: будни без публикации, 2016–2025Каждый будний день без наблюдения совпал с плановым закрытием TARGET; неожиданных пропусков нет.ЕЦБ EUR/USD: будни без публикации, 2016–202501234564,0020165,0020176,0020186,0020195,0020203,0020213,0020225,0020236,0020246,002025Будни. Источник: ECB statistics; наши расчеты; снимок 07.10.2026.
Все будние дни без наблюдения в этом снимке совпали с плановыми закрытиями TARGET. Историческая своевременность публикации не проверялась. Источник: ECB statistics; классификация и график — наши расчеты. Открыть полный график.

Годовая таблица

Наш расчет календаря публикаций по данным ЕЦБ
ГодДаты пн–птПубликацииЗакрытия TARGET в будниНеожиданные пропуски
201626125740
201726025550
201826125560
201926125560
202026225750
202126125830
202226025730
202326025550
202426225660
202526125560

Практический пример: сначала определите ожидаемые даты

Гипотетическое упражнение, не обнаруженный дефект данных. Возьмем окно 17–22 апреля 2025 года включительно. В действительном снимке обе ожидаемые записи, за 17 и 22 апреля, присутствуют. Только для упражнения мысленно удалим запись за 22 апреля.

Реальная классификация дат до гипотетического удаления
ДатаКалендарьОжидается публикация
17.04.2025Четверг, TARGET открытДа; запись есть
18.04.2025Страстная пятницаНет
19.04.2025СубботаНет
20.04.2025ВоскресеньеНет
21.04.2025Пасхальный понедельникНет
22.04.2025Вторник, TARGET открытДа; запись есть

В окне шесть календарных дат, четыре даты пн–пт, но только два ожидаемых дня публикации. После условного удаления одной записи комплектность составила бы 1 / 2 × 100% = 50%. Если ошибочно взять знаменатель из четырех дат пн–пт, получится 1 / 4 × 100% = 25%. Сначала задайте календарь источника, затем проверяйте отсутствие записей; не заполняйте праздники автоматически и не выдавайте заполненные значения за наблюдения.

Данные и воспроизведение

Распакуйте ZIP в отдельную папку и выполните python reproduce.py с Python 3.10 или новее. Используется только стандартная библиотека, сетевых запросов нет. Программа проверяет хеши двух исходных файлов, точное совпадение XML/CSV, календарь и все строки двух производных таблиц. Изменение исходных файлов или результатов останавливает проверку. Английские имена машинных полей оставлены неизменными; русская расшифровка находится в TXT. Этот пакет не содержит данных NBP и результатов исследования A.

Согласно условиям повторного использования статистики ЕЦБ, указываем источник ECB statistics и оставляем исходную статистику вместе с метаданными без изменения. Наши таблицы и график являются производными расчетами редакции. Они не означают одобрения или проверки со стороны ЕЦБ. Для данных третьих сторон его разрешение само по себе не действует.

При подготовке кода, расчетов и текста использовался ИИ. Повторный расчет и автоматические проверки не заменяют независимую экспертизу методологии. Результат относится к двум указанным снимкам, выбранной серии и периоду 2016–2025; он не доказывает точность любой другой базы, отсутствие прошлых ревизий, работоспособность сайта в прошлом или качество торгового исполнения.